dpkg: ปัญหาการพึ่งพาป้องกันการกำหนดค่าของ initramfs-tools


10

ฉันเริ่มอัพเกรดระบบ Kubuntu 12.04 ของฉันด้วยคำสั่งนี้ตามปกติ:

sudo apt-get --show-upgraded dist-upgrade

ฉันกลับมาใหม่ในภายหลังและล้มเหลว:

Preconfiguring packages ...
(Reading database ... 478306 files and directories currently installed.)
Preparing to replace  ...
Unpacking replacement base-files ...
Processing triggers for man-db ...
Processing triggers for install-info ...
...
Processing triggers for initramfs-tools ...
update-initramfs: Generating /boot/initrd.img-3.8.0-32-lowlatency

gzip: stdout: No space left on device
E: mkinitramfs failure cpio 141 gzip 1
update-initramfs: failed for /boot/initrd.img-3.8.0-32-lowlatency with 1.
dpkg: error processing initramfs-tools (--unpack):
 subprocess installed post-installation script returned error exit status 1
Errors were encountered while processing:
 initramfs-tools
E: Sub-process /usr/bin/dpkg returned an error code (1)

นี่คือปัญหา: เอาต์พุต $ df -h:

Filesystem                    Size  Used Avail Use% Mounted on
/dev/sda1                     894M  879M     0 100% /boot

ลบไฟล์เก่าด้วยตนเองและตอนนี้พื้นที่ว่างบางอย่างฟรี

Filesystem                    Size  Used Avail Use% Mounted on
/dev/sda1                     894M  129M  717M  16% /boot

ฉันวิ่งต่อไปนี้:

sudo apt-get autoremove

ต่อไป:

sudo apt-get -f install เอาท์พุท:

The following extra packages will be installed:
  initramfs-tools
The following packages will be upgraded:
  initramfs-tools

dpkg: dependency problems prevent configuration of initramfs-tools:
 initramfs-tools depends on initramfs-tools-bin (<< 0.99ubuntu13.3.1~); however:
  Version of initramfs-tools-bin on system is 0.99ubuntu13.4.
dpkg: error processing initramfs-tools (--configure):
 dependency problems - leaving unconfigured
No apport report written because the error message indicates its a followup error from a previous failure.
                         Errors were encountered while processing:
 initramfs-tools
E: Sub-process /usr/bin/dpkg returned an error code (1)

sudo apt-get install initramfs-tools
ข้างต้นล้มเหลว

dpkg -l initramfs-tools เอาท์พุท:

Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Name           Version        Description
+++-==============-==============-============================================
iF  initramfs-tool 0.99ubuntu13.3 tools for generating an initramfs

sudo apt-get install --reinstall initramfs-tools เอาท์พุท:

The following packages will be upgraded:
  initramfs-tools
1 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
1 not fully installed or removed.
Need to get 0 B/49.2 kB of archives.
After this operation, 0 B of additional disk space will be used.
dpkg: dependency problems prevent configuration of initramfs-tools:
 initramfs-tools depends on initramfs-tools-bin (<< 0.99ubuntu13.3.1~); however:
  Version of initramfs-tools-bin on system is 0.99ubuntu13.4.
dpkg: error processing initramfs-tools (--configure):
 dependency problems - leaving unconfigured
No apport report written because the error message indicates its a followup error from a previous failure.
                         Errors were encountered while processing:
 initramfs-tools
E: Sub-process /usr/bin/dpkg returned an error code (1)

นี่คือผลลัพธ์ของapt-cache policy initramfs-tools-bin initramfs-tools:

initramfs-tools-bin:
  Installed: 0.99ubuntu13.4
  Candidate: 0.99ubuntu13.4
  Version table:
 *** 0.99ubuntu13.4 0
        500 http://us.archive.ubuntu.com/ubuntu/ precise-updates/main amd64 Packages
        100 /var/lib/dpkg/status
     0.99ubuntu13 0
        500 http://us.archive.ubuntu.com/ubuntu/ precise/main amd64 Packages
initramfs-tools:
  Installed: 0.99ubuntu13.3
  Candidate: 0.99ubuntu13.4
  Version table:
     0.99ubuntu13.4 0
        500 http://us.archive.ubuntu.com/ubuntu/ precise-updates/main amd64 Packages
 *** 0.99ubuntu13.3 0
        100 /var/lib/dpkg/status
     0.99ubuntu13 0
        500 http://us.archive.ubuntu.com/ubuntu/ precise/main amd64 Packages

ตามที่แนะนำด้านล่างนี่คือขั้นตอนต่อไปของฉัน:

$ sudo apt-get update
$ sudo apt-get -f install initramfs-tools=0.99ubuntu13 initramfs-tools-bin=0.99ubuntu13

Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following packages were automatically installed and are no longer required:
  ...
Use 'apt-get autoremove' to remove them.
The following packages will be DOWNGRADED:
  initramfs-tools initramfs-tools-bin
0 upgraded, 0 newly installed, 2 downgraded, 0 to remove and 4 not upgraded.
1 not fully installed or removed.
Need to get 59.2 kB of archives.
After this operation, 2,048 B disk space will be freed.
Do you want to continue [Y/n]? 
Get:1 http://us.archive.ubuntu.com/ubuntu/ precise/main initramfs-tools all 0.99ubuntu13 [49.2 kB]
Get:2 http://us.archive.ubuntu.com/ubuntu/ precise/main initramfs-tools-bin amd64 0.99ubuntu13 [9,988 B]
Fetched 59.2 kB in 0s (124 kB/s)            
dpkg: warning: downgrading initramfs-tools-bin from 0.99ubuntu13.4 to 0.99ubuntu13.
(Reading database ... 478624 files and directories currently installed.)
Preparing to replace initramfs-tools-bin 0.99ubuntu13.4 (using .../initramfs-tools-bin_0.99ubuntu13_amd64.deb) ...
Unpacking replacement initramfs-tools-bin ...
Setting up initramfs-tools-bin (0.99ubuntu13) ...
dpkg: dependency problems prevent configuration of initramfs-tools:
 initramfs-tools depends on initramfs-tools-bin (>= 0.99ubuntu13.3); however:
  Version of initramfs-tools-bin on system is 0.99ubuntu13.
dpkg: error processing initramfs-tools (--configure):
 dependency problems - leaving unconfigured
No apport report written because the error message indicates its a followup error from a previous failure.
                         Errors were encountered while processing:
 initramfs-tools
E: Sub-process /usr/bin/dpkg returned an error code (1)

ต่อไปฉันลองคำแนะนำของไจล์ส:

sudo dpkg --configure -a --force-depends
sudo apt-get install -f
sudo apt-get dist-upgrade

ฉันสับสนเล็กน้อย กรุณาโพสต์ผลลัพธ์ของapt-cache policy initramfs-tools-bin initramfs-tools
Gilles 'SO- หยุดความชั่วร้าย'

@Gilles - ขอบคุณที่มองมัน ฉันอัปเดตคำถามด้วยข้อมูลนี้
MountainX

ลองระบุรุ่นด้วยตนเอง:apt-get install initramfs-tools=0.99ubuntu13.4
jordanm

อืมดูเหมือนว่าบั๊กในการขึ้นต่อกันของinitramfs-toolsแพ็กเกจหรือในวิธีที่ dpkg จัดการกับมัน ฉันคิดว่าระบบของคุณไม่ควรจะอยู่ในสถานะนี้เมื่อinitramfs-tools-binมีการทำเครื่องหมายใหม่ว่าติดตั้งแล้ว แต่ระบบเก่าinitramfs-toolsยังคงอยู่ ไม่dpkg --configure -a --force-dependsช่วยเหลือ?
Gilles 'ดังนั้นหยุดความชั่วร้าย'

อะไรคือผลลัพธ์ของsudo apt-get checkและdpkg --audit?
Braiam

คำตอบ:


26

ระบบของคุณอยู่ในสถานะที่ฉันคิดว่าไม่น่าจะเกิดขึ้น: คุณมีเวอร์ชันใหม่ของการพึ่งพาinitramfs-tools-binในสถานะที่ติดตั้ง แต่เวอร์ชันเก่าของการพึ่งพาinitramfs-toolsในสถานะครึ่งติดตั้ง ฉันไม่แน่ใจว่าปัญหาคือ APT กำลังปล่อยให้ระบบเข้าสู่สถานะที่ไม่สามารถกู้คืนได้หรือไม่ dpkg กำลังปล่อยให้ระบบเข้าสู่สถานะที่ไม่สามารถกู้คืนได้ผู้ดูแลแพ็คเกจใช้การรวมกันของการพึ่งพา ซึ่งไม่รองรับหรือความเข้าใจที่ จำกัด ของฉันไม่ครอบคลุมกรณีนี้

ลองใช้dpkgโดยตรง:

dpkg --configure -a

หากยังคงบ่นเกี่ยวกับการอ้างอิงให้ลอง

dpkg --configure -a --force-depends

หากใช้งานได้แสดงว่าคุณมีฐานข้อมูล dpkg ในสถานะที่สอดคล้องกัน คุณต้องรับ APT ในสถานะที่ดี (ซึ่งไม่จำเป็นต้องมีการพึ่งพาที่ขาด):

apt-get -f install

หลังจากนี้คุณสามารถทำการอัพเกรดต่อได้ตามปกติ


หากการล้างข้อมูลของคุณ/bootถูกลบเมล็ดเก่าที่อยู่ในแพ็คเกจคุณจะไม่สามารถลบแพคเกจเคอร์เนลได้อีก คุณจะต้องสร้างไฟล์ใหม่ คุณสามารถสร้างไฟล์เปล่า ( touch `cat /var/lib/dpkg/info/linux-image-1.2.3-foo`) หากคุณลบlinux-image-1.2.3-fooแพ็กเกจและลบบางไฟล์ด้วยตนเอง


1
ขอบคุณตัน !!! dpkg กับ - บังคับขึ้นอยู่กับสร้างความแตกต่างและจากนั้นแก้ไขแพคเกจที่แตกได้ทำเคล็ดลับ
omuthu

2
update-initramfs: Generating /boot/initrd.img-3.8.0-32-lowlatency

gzip: stdout: No space left on device

ซึ่งหมายความว่าคุณต้องลบเมล็ดบางส่วนออก เมล็ดข้าวเก่าไม่ได้ใช้เป็นทางเลือกที่ดีที่สุด

sudo dpkg --purge linux-generic-someold-version

ลบไฟล์เก่าด้วยตนเองและตอนนี้พื้นที่ว่างเป็นอิสระ

NO!

คุณไม่ควรลบอะไรด้วยตนเอง เคย มีเพียงสิ่งของจาก/homeและ/tmpที่สามารถกู้คืนได้อย่างง่ายดายด้วยมือฉันไม่เช่นนั้นจะใช้เครื่องมือ นั่นคือจุดของการมี DPKG / APT กับบริการของคุณ หากคุณต้องการลบบางสิ่งออกให้ใช้ apt / dpkg แทนและทำสิ่งต่าง ๆ ด้วยมือให้เป็นทางเลือกสุดท้าย ฉันคิดว่าปัญหาปัจจุบันของคุณเป็นเพราะเรื่องนี้


ในการแก้ปัญหาการพึ่งพาคุณสามารถลดระดับจากนั้นอัปเกรด:

sudo apt-get update
sudo apt-get -f install initramfs-tools=0.99ubuntu13 initramfs-tools-bin=0.99ubuntu13
sudo apt-get upgrade

ณ จุดนี้คุณควรบอก dpkg / apt เพื่อลบเมล็ดเก่าด้วย


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