ฉันจะแก้ไขการอ้างอิง dpkg ได้อย่างไร


32
administrator@zlounes:~$ sudo apt-get dist-upgrade
Reading package lists... Done
Building dependency tree       
Reading state information... Done
You might want to run 'apt-get -f install' to correct these.
The following packages have unmet dependencies:
 linux-server : Depends: linux-headers-server (= 3.2.0.37.44) but 3.2.0.37.45 is installed
E: Unmet dependencies. Try using -f.
administrator@zlounes:~$ sudo apt-get -f install
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Correcting dependencies... Done
The following extra packages will be installed:
  linux-image-server linux-server
The following packages will be upgraded:
  linux-image-server linux-server
2 upgraded, 0 newly installed, 0 to remove and 9 not upgraded.
4 not fully installed or removed.
Need to get 0 B/4,458 B of archives.
After this operation, 0 B of additional disk space will be used.
Do you want to continue [Y/n]? y
Traceback (most recent call last):
  File "/usr/bin/apt-listchanges", line 237, in <module>
    main()
  File "/usr/bin/apt-listchanges", line 48, in main
    debs = apt_listchanges.read_apt_pipeline(config)
  File "/usr/share/apt-listchanges/apt_listchanges.py", line 83, in read_apt_pipeline
    return map(lambda pkg: filenames[pkg], order)
  File "/usr/share/apt-listchanges/apt_listchanges.py", line 83, in <lambda>
    return map(lambda pkg: filenames[pkg], order)
KeyError: 'linux-image-server'
Setting up initramfs-tools (0.99ubuntu13.1) ...
update-initramfs: deferring update (trigger activated)
Setting up linux-image-3.2.0-37-generic (3.2.0-37.58) ...
Running depmod.
update-initramfs: deferring update (hook will be called later)
The link /initrd.img is a dangling linkto /boot/initrd.img-3.2.0-37-generic
Examining /etc/kernel/postinst.d.
run-parts: executing /etc/kernel/postinst.d/initramfs-tools 3.2.0-37-generic /boot/vmlinuz-3.2.0-37-generic
update-initramfs: Generating /boot/initrd.img-3.2.0-37-generic

gzip: stdout: No space left on device
E: mkinitramfs failure cpio 141 gzip 1
update-initramfs: failed for /boot/initrd.img-3.2.0-37-generic with 1.
run-parts: /etc/kernel/postinst.d/initramfs-tools exited with return code 1
Failed to process /etc/kernel/postinst.d at /var/lib/dpkg/info/linux-image-3.2.0-37-generic.postinst line 1010.
dpkg: error processing linux-image-3.2.0-37-generic (--configure):
 subprocess installed post-installation script returned error exit status 2
dpkg: dependency problems prevent configuration of linux-image-server:
 linux-image-server depends on linux-image-3.2.0-37-generic; however:
  Package linux-image-3.2.0-37-generic is not configured yet.
dpkg: error processing linux-image-server (--configure):
 dependency problems - leaving unconfigured
dpkg: dependency problems prevent configuration of linux-server:
 linux-server depends on linux-image-server (= 3.2.0.37.44); however:
  Package linux-image-server is not configured yet.
 linux-server depends on linux-headers-server (= 3.2.0.37.44); however:
  Version of linux-headers-server on system is 3.2.0.37.45.
dpkg: error processing linux-server (--configure):
 dependency problems - leaving unconfigured
Processing triggers for initramfs-tools ...
update-initramfs: Generating /boot/initrd.img-3.2.0-36-generic
No apport report written because the error message indicates its a followup error from a previous failure.
                                                                                                          No apport report written because the error message indicates its a followup error from a previous failure.

gzip: stdout: No space left on device
E: mkinitramfs failure cpio 141 gzip 1
update-initramfs: failed for /boot/initrd.img-3.2.0-36-generic with 1.
dpkg: error processing initramfs-tools (--configure):
 subprocess installed post-installation script returned error exit status 1
No apport report written because MaxReports is reached already
                                                              Errors were encountered while processing:
 linux-image-3.2.0-37-generic
 linux-image-server
 linux-server
 initramfs-tools
E: Sub-process /usr/bin/dpkg returned an error code (1)

ฉันพยายามมากและไม่สามารถทำงานได้ ฉันคิดว่าฉันขัดจังหวะการติดตั้งและมันทำให้เมามันทั้งหมด ฉัน googled และลองใช้การแก้ไขต่างๆ

แก้ไข (หลังจากทำความสะอาดโฟลเดอร์ / boot ของฉัน):

administrator@zlounes:/boot$ sudo apt-get -f install
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Correcting dependencies... Done
The following extra packages will be installed:
  linux-server
The following packages will be upgraded:
  linux-server
1 upgraded, 0 newly installed, 0 to remove and 9 not upgraded.
1 not fully installed or removed.
Need to get 0 B/1,734 B of archives.
After this operation, 0 B of additional disk space will be used.
Do you want to continue [Y/n]? y
Traceback (most recent call last):
  File "/usr/bin/apt-listchanges", line 237, in <module>
    main()
  File "/usr/bin/apt-listchanges", line 48, in main
    debs = apt_listchanges.read_apt_pipeline(config)
  File "/usr/share/apt-listchanges/apt_listchanges.py", line 83, in read_apt_pipeline
    return map(lambda pkg: filenames[pkg], order)
  File "/usr/share/apt-listchanges/apt_listchanges.py", line 83, in <lambda>
    return map(lambda pkg: filenames[pkg], order)
KeyError: 'linux-server'
dpkg: dependency problems prevent configuration of linux-server:
 linux-server depends on linux-image-server (= 3.2.0.37.44); however:
  Version of linux-image-server on system is 3.2.0.37.45.
 linux-server depends on linux-headers-server (= 3.2.0.37.44); however:
  Version of linux-headers-server on system is 3.2.0.37.45.
dpkg: error processing linux-server (--configure):
 dependency problems - leaving unconfigured
No apport report written because the error message indicates its a followup error from a previous failure.
                                                                                                          E: Sub-process /usr/bin/dpkg returned an error code (1)
administrator@zlounes:/boot$

1
ทำไมคุณถือว่ามีปัญหากับการพึ่งพาแพคเกจเมื่อสภาวะข้อผิดพลาดgzip: stdout: No space left on device? ดูเหมือนว่าฉันไม่ได้ติดตั้งการพึ่งพาเนื่องจากคุณไม่มีพื้นที่ในการติดตั้งซอฟต์แวร์
Rinzwind

dfกรุณาเพิ่มในผลของ ฉันเดาว่า/bootพาร์ทิชันของคุณเต็มแล้ว
Rinzwind

ขอขอบคุณ :). ฉันมีการล้างโฟลเดอร์ / boot ของฉัน แต่ฉันมีข้อผิดพลาดเดียวกันอีกครั้ง (ฉันได้แก้ไขการโพสต์ครั้งแรกของฉันด้วยรหัสข้อผิดพลาด) ขอขอบคุณล่วงหน้าและขอโทษสำหรับภาษาอังกฤษที่ยากจนของฉัน
zlounes

โดย "การล้างโฟลเดอร์การบูตของฉัน" หมายความว่าคุณลบไฟล์ในโฟลเดอร์นั้นหรือไม่ คุณอาจไม่ชอบผลลัพธ์ของการทำเช่นนั้น
แจ็ค

ไม่เป็นไรฉันเลือกไฟล์แล้ว)
zlounes

คำตอบ:


65

ความพยายามที่ดีเพื่อให้แน่ใจว่าระบบของคุณอยู่ในสภาพดีและไม่มีปัญหากับการยกเลิกการติดตั้งคือการเรียกใช้

  dpkg --configure -a 

ตรวจสอบให้แน่ใจว่ารายการแพ็กเกจถูกอัพเดตและไม่มีปัญหาปรากฏขึ้น:

 apt-get update

ไม่บังคับคุณสามารถลบข้อมูลเก่าทั้งหมดก่อนการอัพเดทด้วย:

 find /var/lib/apt/lists -type f  |xargs rm -f >/dev/null \

ขั้นตอนถัดไปเพื่อแก้ไขปัญหาคือการลบแพ็คเกจlinux-serverชั่วครู่หนึ่ง สิ่งนี้สามารถทำได้เพราะไม่มีเนื้อหาจริงและแนะนำการพึ่งพาเท่านั้น:

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

 dpkg --remove linux-server

หลังจากขั้นตอนนี้ตรวจสอบว่ามีการติดตั้งการอ้างอิงปัจจุบันทั้งหมด:

apt-get install -f

หากทุกอย่างเรียบร้อยคุณสามารถติดตั้งlinux-server ได้อีกครั้ง:

apt-get install linux-server

Postscriptum

ลินุกซ์เซิร์ฟเวอร์จะเลิกใน12.04 นอกจากนี้สำหรับอุปกรณ์เซิร์ฟเวอร์จะใช้เคอร์เนลทั่วไป ดูapt-cache show linux-image-server

แพ็คเกจ: linux-image-server ...

ส่วน: metapackages

....

ขึ้นอยู่กับ: linux-image-3.2.0-23- generic , linux-firmware


ขอบคุณมาก. ฉันคิดว่าฉันจะใช้เวลาหนึ่งวันในการติดตั้งเซิร์ฟเวอร์ใหม่อีกครั้ง ..
uncletall

8

ฉันต้องทำความสะอาด / boot เครื่องเป็นประจำและมักจะทำให้การอัปเดตสมบูรณ์เกินไป - ไม่แน่ใจว่าทางออกที่ดีที่สุดคืออะไร แต่กระบวนการที่ฉันใช้ดูเหมือนจะทำงานได้:

เริ่มต้นด้วย sudo su

จากนั้นไปที่ / boot แล้วทำ a ls -lSrh- อันที่อยู่ด้านล่างสุดที่ใหญ่ที่สุด - rmเพียงพอของอันที่เก่ากว่าเพื่อล้างพื้นที่ให้เพียงพอ

จากนั้นลองทำสิ่งต่อไปนี้ (ตามที่ตัดตอนมาจากด้านบน):

  1. sudo apt-get remove linux-server
  2. dpkg --configure -a
  3. apt-get update
  4. apt-get install -f
  5. apt-get autoremove
  6. dpkg --get-selections|grep 'linux-image*'|awk '{print $1}'|egrep -v "linux-image-$(uname -r)|linux-image-generic" |while read n;done
  7. apt-get install linux-image-server linux-server
  8. reboot

หากมีสิ่งใดล้มเหลวให้แสดงความคิดเห็นที่นี่และฉันจะดูว่าปัญหานี้อาจเป็นอะไร

ฉันได้เห็นการเรียงลำดับของสิ่งนี้ทำงานสำหรับปัญหาแพคเกจ postgresql-9.1 เมื่อใช้ pitti PPA เช่นกัน

ครั้งหนึ่งเมื่อฉันทำตามขั้นตอนฉันมีปัญหากับด้วง ทำการapt-get install --reinstall grubแก้ไขมัน

ขอบคุณสำหรับหนึ่งสายการบินไปที่: http://ubuntuforums.org/showpost.php?p=12180959&postcount=7

โชคดี!


ขั้นตอนที่ 6 ดูเหมือนว่ามันถูกตัดออก: dpkg - get-selections | grep 'linux-image *' | awk '{พิมพ์ $ 1}' | egrep -v "linux-image - $ (uname -r) | linux-image -generic "| ในขณะที่อ่าน n ทำ apt-get -y ลบ $ n เสร็จแล้ว
Tom Swifty

0

gzip: stdout: ไม่มีพื้นที่เหลือบนอุปกรณ์

ดูเหมือนว่าคุณไม่มีที่ว่างเหลือ เคลียร์พื้นที่และแก้ไขปัญหาแพ็กเกจโดย:

sudo apt-get purge
sudo apt-get clean
sudo apt-get check
sudo apt-get install -f
sudo dpkg --configure -a 

จากนั้นติดตั้งแพ็กเกจอีกครั้ง

แหล่งที่มา: หัวข้อ: Dpkg: ปัญหาการพึ่งพา - ปล่อยไม่ได้กำหนดค่า

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