Làm thế nào tôi có thể giải quyết phụ thuộc 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)

Tôi đã cố gắng rất nhiều và không thể làm việc này. Tôi nghĩ rằng tôi đã làm gián đoạn một cài đặt và nó chỉ làm hỏng tất cả. Tôi đã googled và thử nhiều bản sửa lỗi.

EDIT (Sau khi làm sạch thư mục / boot của tôi):

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
Tại sao bạn giả sử một vấn đề với các phụ thuộc gói khi lỗi xảy ra gzip: stdout: No space left on device? Đối với tôi có vẻ như các phần phụ thuộc KHÔNG được cài đặt vì bạn thiếu không gian để cài đặt phần mềm.
Rinzwind

Vui lòng thêm vào kết quả của df. Tôi đoán /bootphân vùng của bạn đã đầy.
Rinzwind

Cảm ơn bạn :). Tôi đã làm sạch thư mục / boot của mình nhưng tôi lại gặp lỗi tương tự (tôi đã chỉnh sửa bài đăng đầu tiên của mình với lỗi mã), cảm ơn trước và xin lỗi vì tiếng Anh kém của tôi
zlounes 8/213

Bằng cách "làm sạch thư mục khởi động của tôi", bạn có nghĩa là bạn đã xóa các tệp trong thư mục đó? Bạn có thể sẽ không thích kết quả của việc đó.
Jack

Không, nó tốt, tôi đã chọn tập tin;)
zlounes

Câu trả lời:


65

Một nỗ lực tốt để đảm bảo rằng hệ thống của bạn đang hoạt động tốt và không gặp vấn đề với việc cài đặt bị hủy bỏ là gọi

  dpkg --configure -a 

Đảm bảo rằng danh sách gói được cập nhật và không có vấn đề nào được hiển thị trên:

 apt-get update

Tùy chọn bạn có thể xóa tất cả dữ liệu cũ trước khi cập nhật với:

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

Bước tiếp theo để giải quyết vấn đề là gỡ bỏ gói máy chủ linux trong một thời gian. Điều này có thể được thực hiện bởi vì nó không có nội dung thực sự và chỉ giới thiệu một phụ thuộc:

Gói này sẽ luôn phụ thuộc vào nhân Linux hoàn chỉnh mới nhất có sẵn cho Thiết bị Máy chủ.

 dpkg --remove linux-server

Sau bước này kiểm tra xem tất cả các phụ thuộc hiện tại đã được cài đặt chưa:

apt-get install -f

Nếu mọi thứ đều ổn, bây giờ bạn có thể cài đặt lại máy chủ linux :

apt-get install linux-server

Đoạn tái bút

máy chủ linux không dùng nữa trong 12.04 . Ngoài ra đối với thiết bị máy chủ , nhân chung được sử dụng. Xemapt-cache show linux-image-server

Gói: máy chủ linux-image ...

Phần: siêu dữ liệu

....

Phụ thuộc: linux-image-3.2.0-23- chung , linux-firmware


Cảm ơn nhiều. Tôi nghĩ rằng tôi sẽ dành một ngày để cài đặt lại máy chủ ..
mở ra

8

Tôi thường xuyên phải dọn dẹp / khởi động máy của mình và thường quá đầy đủ để phá vỡ bản cập nhật - không chắc giải pháp cuối cùng là gì nhưng quy trình tôi sử dụng dường như hoạt động:

Bắt đầu với một sudo su

Sau đó, đi đến / khởi động và làm một ls -lSrh- những cái ở phía dưới là lớn nhất - rmđủ của những cái cũ hơn để dọn sạch đủ không gian.

Sau đó thử các cách sau (như được trích một chút từ phía trên):

  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

Nếu bất cứ điều gì thất bại, hãy bình luận ở đây và tôi sẽ xem vấn đề có thể là gì.

Tôi đã thấy loại điều này hoạt động cho các vấn đề gói postgresql-9.1 khi sử dụng PPA pitti.

Một lần khi tôi chạy thủ tục, tôi gặp vấn đề với grub. Làm một cái apt-get install --reinstall grubcố định nó.

Cảm ơn bạn đã đi đến: http://ubuntuforums.org/showpost.php?p=12180959&postcount=7

Chúc may mắn!


Bước 6 có vẻ như đã bị cắt: dpkg --get-select | grep 'linux-image *' | awk '{print $ 1}' | egrep -v "linux-image - $ (uname -r) | linux-image -generic "| trong khi đọc n; do apt-get -y xóa $ n; xong
Tom Swifty

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.