Score:5

เซิร์ฟเวอร์ Centos 7 ที่มี Nginx รายงานข้อผิดพลาดเมื่ออัปเดตแพ็คเกจ

ธง cn

ฉันมี CentOS 7 VM ที่ติดตั้ง Nginx ฉันใช้ Webmin เพื่อดูแลเซิร์ฟเวอร์

โดยปกติจะติดตั้งการอัปเดตโดยอัตโนมัติ แต่การอัปเดต nginx ล้มเหลว ดังนั้นฉันจึงพยายามอัปเดตด้วยตนเอง มันส่งคืนสิ่งนี้:

การติดตั้งแพ็คเกจด้วยคำสั่ง /bin/yum -y install nginx ..
ปลั๊กอินที่โหลด: กระจกที่เร็วที่สุด
กำลังโหลดความเร็วมิเรอร์จากไฟล์โฮสต์แคช
 * ฐาน: mirror.netsite.dk
 * คำนำหน้านาม: mirror.netsite.dk
 * พิเศษ: mirror.netsite.dk
 * อัปเดต: mirror.netsite.dk
การแก้ไขการพึ่งพา
-> ตรวจสอบการทำธุรกรรม
---> แพ็คเกจ nginx.x86_64 1:1.20.1-9.el7 จะได้รับการอัปเดต
-> การพึ่งพาการประมวลผล: nginx(abi) = 1.20.1 สำหรับแพ็คเกจ: 1:nginx-mod-mail-1.20.1-9.el7.x86_64
-> การพึ่งพาการประมวลผล: nginx(abi) = 1.20.1 สำหรับแพ็คเกจ: 1:nginx-mod-stream-1.20.1-9.el7.x86_64
-> การพึ่งพาการประมวลผล: nginx(abi) = 1.20.1 สำหรับแพ็คเกจ: 1:nginx-mod-http-perl-1.20.1-9.el7.x86_64
-> การพึ่งพาการประมวลผล: nginx(abi) = 1.20.1 สำหรับแพ็คเกจ: 1:nginx-mod-http-image-filter-1.20.1-9.el7.x86_64
-> การพึ่งพาการประมวลผล: nginx(abi) = 1.20.1 สำหรับแพ็คเกจ: 1:nginx-mod-http-xslt-filter-1.20.1-9.el7.x86_64
---> แพ็คเกจ nginx.x86_64 1:1.20.2-1.el7.ngx จะเป็นการอัปเดต
-> การแก้ปัญหาการพึ่งพาเสร็จสิ้น
ข้อผิดพลาด: แพ็คเกจ: 1:nginx-mod-http-perl-1.20.1-9.el7.x86_64 (@epel)
           ต้องการ: nginx(abi) = 1.20.1
           การลบ: 1:nginx-1.20.1-9.el7.x86_64 (@epel)
               nginx(เอบี) = 1.20.1
           อัปเดตโดย: 1:nginx-1.20.2-1.el7.ngx.x86_64 (nginx)
               ไม่พบ
ข้อผิดพลาด: แพ็คเกจ: 1:nginx-mod-stream-1.20.1-9.el7.x86_64 (@epel)
           ต้องการ: nginx(abi) = 1.20.1
           การลบ: 1:nginx-1.20.1-9.el7.x86_64 (@epel)
               nginx(เอบี) = 1.20.1
           อัปเดตโดย: 1:nginx-1.20.2-1.el7.ngx.x86_64 (nginx)
               ไม่พบ
ข้อผิดพลาด: แพ็คเกจ: 1:nginx-mod-mail-1.20.1-9.el7.x86_64 (@epel)
           ต้องการ: nginx(abi) = 1.20.1
           การลบ: 1:nginx-1.20.1-9.el7.x86_64 (@epel)
               nginx(เอบี) = 1.20.1
           อัปเดตโดย: 1:nginx-1.20.2-1.el7.ngx.x86_64 (nginx)
               ไม่พบ
ข้อผิดพลาด: แพ็คเกจ: 1:nginx-mod-http-image-filter-1.20.1-9.el7.x86_64 (@epel)
           ต้องการ: nginx(abi) = 1.20.1
           การลบ: 1:nginx-1.20.1-9.el7.x86_64 (@epel)
               nginx(เอบี) = 1.20.1
           อัปเดตโดย: 1:nginx-1.20.2-1.el7.ngx.x86_64 (nginx)
               ไม่พบ
ข้อผิดพลาด: แพ็คเกจ: 1:nginx-mod-http-xslt-filter-1.20.1-9.el7.x86_64 (@epel)
           ต้องการ: nginx(abi) = 1.20.1
           การลบ: 1:nginx-1.20.1-9.el7.x86_64 (@epel)
               nginx(เอบี) = 1.20.1
           อัปเดตโดย: 1:nginx-1.20.2-1.el7.ngx.x86_64 (nginx)
               ไม่พบ
 คุณสามารถลองใช้ --skip-broken เพื่อแก้ไขปัญหา
 คุณสามารถลองเรียกใช้: rpm -Va --nofiles --nodigest
.. ติดตั้งไม่สำเร็จ!

ฉันพยายามเรียกใช้คำสั่ง rpm ที่แนะนำ - จากนั้นทำซ้ำการอัปเดตแพ็คเกจ แต่นั่นไม่ได้สร้างความแตกต่าง

ฉันพยายามติดตั้งแพ็คเกจอื่นอีก 19 แพ็คเกจด้วย - ติดตั้งทั้งหมดอย่างถูกต้อง จากนั้นฉันลอง Nginx ใหม่ - แต่ก็ยังล้มเหลวด้วยข้อผิดพลาดเดิม ...ฉันได้ลองปิดการใช้งาน nginx repo และ epel repo ในทางกลับกัน (ในกรณีที่เป็นการปะทะกันระหว่าง repo ทั้งสอง) - แต่มันก็ไม่ได้สร้างความแตกต่าง

ไม่มีใครรู้ว่าอะไรทำให้เกิดปัญหานี้ - และจะแก้ไขได้อย่างไร

ขอบคุณล่วงหน้า!

/จอห์น

cn flag
สำหรับฉันดูเหมือนว่าไม่พบแพ็คเกจใหม่บนเซิร์ฟเวอร์ที่เก็บ คุณตรวจสอบกระจกว่ายังใช้ได้อยู่หรือไม่?
cn flag
ฉันมีปัญหาเดียวกันและดูเหมือนว่าจะเป็นสถานการณ์เดียวกัน (CentOS 7, EPEL, Nginx repo, แพ็คเกจเดียวกันคือ 'ไม่พบ')
it flag
ฉันมีปัญหาเดียวกันกับการตั้งค่าเดียวกัน (CentOS 7, EPEL, nginx repo) ข้อผิดพลาดของฉันเหมือนกัน เซิร์ฟเวอร์ C7 ของเราไม่สามารถอัปเกรดได้ในวันที่ 16 พฤศจิกายน ซึ่งเป็น [เมื่อ nginx repo เพิ่ม 1.20.2](http://nginx.org/packages/centos/7/x86_64/RPMS/) ข้อผิดพลาดแนะนำ (สำหรับฉัน อย่างน้อย) ว่า `yum update` กำลังพยายามอัปเดต nginx เป็น 1.20.2 แต่แพ็คเกจ nginx ที่ EPEL จัดหาให้ (เช่น [nginx-mod-mail](https://centos.pkgs. org/7/epel-x86_64/nginx-mod-mail-1.20.1-9.el7.x86_64.rpm.html)) มีข้อกำหนด nginx 1.20.1 (ดู "ข้อกำหนด") ดังนั้นการพึ่งพาจึงทำได้ ' ไม่สามารถแก้ไขได้
Score:5
ธง it

ฉันได้แก้ไขปัญหานี้สำหรับระบบของฉันแล้ว แม้ว่าโซลูชันของฉันอาจใช้ไม่ได้กับทุกคน ขึ้นอยู่กับว่าคุณใช้หรือไม่ nginx-* โมดูลที่เป็นสาเหตุของปัญหาการพึ่งพา


วิธีแก้ปัญหาของฉันคือ ลบ nginx-mod-http-perl, nginx-mod-สตรีม, nginx-mod-mail, nginx-mod-http-image-filter, และ nginx-mod-http-xslt-ตัวกรองและฉันก็สามารถ ยำอัพเกรด เพื่อรับ nginx เวอร์ชันล่าสุด

แก้ไขเพื่อเพิ่ม: นอกเหนือจากการลบแพ็คเกจเหล่านั้นแล้ว ฉันได้อัปเดต /etc/yum.repos.d/epel.repo เพื่อที่จะมี ไม่รวม = nginx *, เพื่อหลีกเลี่ยง @อีเพล- ให้แพ็คเกจ nginx จากการติดตั้งใหม่

สิ่งนี้ใช้ได้สำหรับฉันเพราะฉันไม่ได้ใช้ฟังก์ชันที่มีให้โดยแพ็คเกจเหล่านั้น ฉันมีลางสังหรณ์ว่าพวกเขาติดตั้งโดย Webmin (ซึ่งฉันก็ใช้เช่นเดียวกับ OP) เพื่อรองรับคุณสมบัติบางอย่างที่มัน สามารถ จัดเตรียม.

หากคุณกำลังใช้ฟังก์ชันการทำงานที่โมดูลเหล่านี้มีให้ ฉันคิดว่าวิธีแก้ปัญหาอย่างน้อยตอนนี้ก็คือ ปิดการใช้งาน repo nginxและเปิดใช้งานอีกครั้งหาก/เมื่อใด @อีเพล เผยแพร่โมดูลที่เข้ากันได้ หากคุณทำเช่นนี้ คุณจะไม่มีการอัปเกรด nginx ใดๆ เนื่องจากไม่มีเวอร์ชัน 1.20.2 ให้ใช้งาน @อีเพล.


ปัญหาหลักน่าจะเป็นที่คุณ (และฉัน) มี nginx-1.20.1-9.el7.x86_64 (@epel) ติดตั้งแต่ทั้งสอง @อีเพล และ จิงซ์ เปิดใช้งานที่เก็บแล้ว

ในวันที่/ประมาณวันที่ 16 พ.ย จิงซ์ ซื้อคืนออก nginx-1.20.2ดังนั้น yum จึงพยายามอัปเดตเป็นเวอร์ชันนั้น อย่างไรก็ตามไม่มีสิ่งที่สอดคล้องกัน 1.20.2 การปรับปรุงสำหรับต่างๆ nginx-* ติดตั้งโมดูล (ทั้งบน @อีเพล หรือบน จิงซ์) ดังนั้นจึงไม่สามารถอัปเดตได้ โมดูลเหล่านั้นยังต้องการ nginx(เอบี) = 1.20.1ซึ่งเป็นตัวที่ @อีเพล จัดให้(แต่นั่น จิงซ์ ทำ ไม่ ดูเหมือนจะให้) ดังนั้นการตรวจสอบการพึ่งพาจึงล้มเหลว

ข้อสังเกต: ในกรณีของเรา เรา ทำ มี จิงซ์- แพ็คเกจหลักที่มีให้ติดตั้ง ณ เวลาใดเวลาหนึ่งและมันถูกแทนที่ในบางจุดด้วย @อีเพล เวอร์ชัน - นี่มาจากบันทึกของ yum:

# zgrep -h nginx.x86 /var/log/yum.log-202* /var/log/yum.log
22 เมษายน 03:55:37 น. อัปเดต: nginx.x86_64 1:1.18.0-1.el7.ngx
30 ตุลาคม 09:27:11 น. อัปเดต: nginx.x86_64 1:1.18.0-2.el7.ngx
21 เมษายน 08:48:33 น. อัปเดต: nginx.x86_64 1:1.20.0-1.el7.ngx
26 พฤษภาคม 04:20:28 น. อัปเดต: nginx.x86_64 1:1.20.1-1.el7.ngx
18 มิ.ย. 06:46:31 ติดตั้ง: nginx.x86_64 1:1.20.1-2.el7
27 ต.ค. 04:51:03 น. อัปเดต: nginx.x86_64 1:1.20.1-9.el7

เมื่อวันที่ 18 มิ.ย .ngx แพ็คเกจถูกแทนที่ด้วยแพ็คเกจที่ให้มา @อีเพล. สิ่งนี้อาจหรือไม่เกี่ยวข้องกับปัญหาในมือ

John Dalsgaard avatar
cn flag
สวัสดี @joel - ขอบคุณสำหรับการอัปเดตของคุณฉันพยายามถอนการติดตั้งโมดูลเหล่านั้นด้วย (ต้องเพิกเฉยต่อการอ้างอิง) - จากนั้นการอัปเดตก็สำเร็จ
red_shift avatar
cn flag
ฉันเพิ่งผ่านกระบวนการเดียวกันที่อธิบายไว้ที่นี่ ขอบคุณ! ฉันเพิ่ม "exclude=nginx*" ใน EPEL repo ของฉันและลบ nginx หลังจากนั้นฉันลบ nginx โดยใช้ 'yum remove nginx' ซึ่งลบโมดูลของฉันด้วย ฉันสามารถค้นหาโมดูลบางส่วนที่ฉันใช้ใน repo nginx หลัก (https://centos.pkgs.org/7/nginx-x86_64/) แต่ไม่มีบางโมดูล ตอนนี้ฉันไม่มี "nginx-mod-mail" และ "nginx-mod-stream" รูปแบบใหม่คือ "nginx-module-{module name}" นอกจากนี้ โปรดจำไว้ว่าการกำหนดค่า nginx เก่าของคุณถูกบันทึกเป็น /etc/nginx/nginx.conf.rpmsave

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา