14.04 trusty: 'apt-get install' ปฏิเสธแพคเกจการอัปเกรดที่ไม่มีการอ้างอิงที่น่าพอใจ


0

นี่คือการจำลองแบบมากขึ้นหรือน้อยกว่าของคำถามนี้ ฉันหวังว่า AskUbuntu เป็นสถานที่ที่เหมาะสมกว่าสำหรับมัน

คำอธิบายสั้น:

apt ไม่สามารถอัพเกรดแพ็คเกจหากการพึ่งพาบางอย่างหายไป (มันก็โอเค) แต่สิ่งที่ฉันสังเกตเห็นใน Ubuntu 14.04 คือมันทำเช่นนั้นด้วยรหัสทางออก 0 (ปัญหา 1) และไม่มีการรายงานว่า 'การพึ่งพาไม่ได้' (ฉบับที่ 2)

คำอธิบายโดยละเอียด:

ฉันใช้ Ubuntu 14.04 รุ่น apt 1.0.1ubuntu2.6

# uname -a       
Linux myhost 3.13.0-30-generic #55-Ubuntu SMP Fri Jul 4 21:40:53 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux

# lsb_release -c      
Codename:       trusty

# dpkg -l apt         
||/ Name            Version        Architecture Description
+++-===============-==============-============-====================================
ii  apt             1.0.1ubuntu2.6 amd64        commandline package manager

ฉันมีแพ็คเกจที่ติดตั้งเวอร์ชัน 0.03 ไม่มีการอ้างอิง:

# dpkg -l fake-test-package
||/ Name                  Version         Architecture    Description
+++-=====================-===============-===============-===============================================
ii  fake-test-package     0.03-1          all             package to test apt

# apt-cache depends fake-test-package=0.03-1
fake-test-package

ฉันต้องการอัพเกรดแพ็คเกจเป็นรุ่น 0.04 (ซึ่งมีการพึ่งพาแบบไม่แน่นอนvery-strange-dependency):

# apt-cache depends fake-test-package=0.04-1
fake-test-package
  Depends: <very-strange-dependency>

ดังนั้นฉันแสดงapt-get install:

# apt-get install fake-test-package=0.04-1         
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following extra packages will be installed:
  fake-test-package
0 upgraded, 0 newly installed, 0 to remove and 217 not upgraded.

# echo $?
0

ทุกอย่างดูเหมือนว่าตกลงและรหัสออกเป็น 0 แต่แพ็คเกจไม่ได้รับการอัพเดต:

# dpkg -l fake-test-package
||/ Name                  Version         Architecture    Description
+++-=====================-===============-===============-===============================================
ii  fake-test-package     0.03-1          all             package to test apt

นี่คือปัญหาเนื่องจากaptปฏิเสธที่จะอัปเกรดแพ็คเกจอย่างเงียบ ๆ และฉันไม่รู้ว่ามันเกิดขึ้นหรือทำไม

ใน Ubuntu 12.04 ฉันสังเกตเห็นพฤติกรรมที่แตกต่างกัน: exit code = 100 และรายงาน 'unmet dependencies'

precise# apt-get install fake-test-package=0.04-1
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:

The following packages have unmet dependencies:
 fake-test-package : Depends: very-strange-dependency but it is not installable
E: Unable to correct problems, you have held broken packages.

precise# echo $?
100

สิ่งที่น่าสนใจคือปัญหาเกิดขึ้นเมื่ออัพเกรดแพ็คเกจที่มีอยู่เท่านั้น หากฉันลบเวอร์ชัน 0.03 ออกจากระบบและพยายามติดตั้ง 0.04 โดยตรงให้aptทำตามวิธีที่คาดไว้:

trusty# apt-get purge fake-test-package
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following packages will be REMOVED:
  fake-test-package*
0 upgraded, 0 newly installed, 1 to remove and 217 not upgraded.
After this operation, 13.3 kB disk space will be freed.
Do you want to continue? [Y/n] y
(Reading database ... 157742 files and directories currently installed.)
Removing fake-test-package (0.03-1) ...
Purging configuration files for fake-test-package (0.03-1) ...

trusty# apt-get install fake-test-package=0.04-1
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:

The following packages have unmet dependencies:
 fake-test-package : Depends: very-strange-dependency but it is not installable
E: Unable to correct problems, you have held broken packages.

trusty# echo $?
100 

คำถามหลัก:

ฉันaptจะรายงานการพึ่งพาแบบไม่อัปเดตเกี่ยวกับการอัปเกรดแพคเกจที่ติดตั้งไว้และเพื่อแสดงการอัปเกรดที่ล้มเหลวผ่านรหัสออกที่ไม่ใช่ศูนย์ได้อย่างไร


ฉันไม่ได้ร้อยเปอร์เซ็นต์ฉันได้รับปัญหาของคุณดังนั้นฉันไม่ได้ถ้าฉันจริงช่วยคุณ แต่อย่างไรก็ตามเพื่อแสดงการพึ่งพา unmet ใน apt เพียงแค่เรียกใช้ "unmet" หรือ "apt-get -f install" เพื่อลองพึ่งพาการแก้ไขอัตโนมัติ ยังนี่คือคู่มือสำหรับ apt manpages.ubuntu.com/manpages/trusty/man8/apt-cache.8.html
Mark Kirby

ฉันลงคะแนนให้ปิดคำถามนี้เป็นแบบปิดหัวข้อเนื่องจากมีการโพสต์ในเว็บไซต์ Stack Exchange หลายแห่ง
muru

ดีฉันไม่คิดว่าคำถามนี้คือ "offtopic" เพื่อ AskUbuntu และปัญหานี้ค่อนข้างร้ายแรงเนื่องจาก Ubuntu Server ได้รับผลกระทบเช่นกัน อย่างไรก็ตามฉันเป็นสามเณรที่นี่ดังนั้นทำในสิ่งที่คุณคิดว่าถูกต้อง
Hln

@Helena ที่โพสต์คำถามเดียวกันในหลายไซต์ของ Exchange Exchange ไม่ยอมรับ
muru

คำตอบ:


3

ดูเหมือนว่าจะเป็นข้อบกพร่องของ apt เวอร์ชั่น 1.0.1 ได้รับผลกระทบ

เราได้สร้างเวอร์ชั่น 1.0.9.2 จากแหล่งที่มาและทำงานตามที่คาดไว้: รายงานการพึ่งพาและออกจากสถานะไม่เป็นศูนย์

บางทีนี่อาจเป็นข้อผิดพลาดเดียวกัน: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=745046

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.