apt - 如何解决dpkg依赖关系?

分享于 

9分钟阅读

ubuntu

  繁體

问题


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)



我搜索了google,并尝试了各种修复方法。

(清理/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


 dpkg --configure -a 



确保软件包列表已更新,并且没有问题显示在:

  apt-get update



可选你可以在更新之前删除所有旧数据,方法是:


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



软件包将始终依赖于最新的完整的Linux内核,可用于服务器设备。


 dpkg --remove linux-server



在此步骤之后,检查所有当前依赖项是否已安装:

 
apt-get install -f



如果一切正常。您现在可以再次安装linux-server了:


apt-get install linux-server




答案2

sudo su开始

然后转到/boot,做一个ls -lSrh

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

  • DEP  dependency  APT  Resolve  DPKG  
    相关文章