我在虚拟机上运行 Ubuntu 12.04.2 LTS,遇到了一个小问题。每当我尝试升级时,我都会得到:
apt-get 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-headers-virtual : Depends: linux-headers-3.2.0-44-virtual but it is not installed
linux-virtual : Depends: linux-image-virtual (= 3.2.0.44.53) but 3.2.0.45.54 is installed
E: Unmet dependencies. Try using -f.
但是,如果我尝试 -f install(按照建议),我会得到:
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-headers-virtual linux-virtual
The following packages will be upgraded:
linux-headers-virtual linux-virtual
2 upgraded, 0 newly installed, 0 to remove and 38 not upgraded.
2 not fully installed or removed.
Need to get 0 B/4,234 B of archives.
After this operation, 0 B of additional disk space will be used.
Do you want to continue [Y/n]? y
dpkg: dependency problems prevent configuration of linux-headers-virtual:
linux-headers-virtual depends on linux-headers-3.2.0-44-virtual; however:
Package linux-headers-3.2.0-44-virtual is not installed.
dpkg: error processing linux-headers-virtual (--configure):
dependency problems - leaving unconfigured
No apport report written because the error message indicates its a followup error from a previous failure.
dpkg: dependency problems prevent configuration of linux-virtual:
linux-virtual depends on linux-image-virtual (= 3.2.0.44.53); however:
Version of linux-image-virtual on system is 3.2.0.45.54.
linux-virtual depends on linux-headers-virtual (= 3.2.0.44.53); however:
Package linux-headers-virtual is not configured yet.
dpkg: error processing linux-virtual (--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:
linux-headers-virtual
linux-virtual
E: Sub-process /usr/bin/dpkg returned an error code (1)
关于如何解决此问题,您有什么想法或建议吗?提前致谢。
附言:我尝试使用 apt-get autoremove 和 autoclean,但没有成功。
根据 Mitch 的建议,我尝试了 dpkg --configure --pending,但同样没有成功。同样的错误。我还尝试了建议的另外两个命令,但它们的输出没有在已提供的内容中添加任何其他信息:
sudo dpkg --configure --pending
dpkg: dependency problems prevent configuration of linux-headers-virtual:
linux-headers-virtual depends on linux-headers-3.2.0-44-virtual; however:
Package linux-headers-3.2.0-44-virtual is not installed.
dpkg: error processing linux-headers-virtual (--configure):
dependency problems - leaving unconfigured
dpkg: dependency problems prevent configuration of linux-virtual:
linux-virtual depends on linux-image-virtual (= 3.2.0.44.53); however:
Version of linux-image-virtual on system is 3.2.0.45.54.
linux-virtual depends on linux-headers-virtual (= 3.2.0.44.53); however:
Package linux-headers-virtual is not configured yet.
dpkg: error processing linux-virtual (--configure):
dependency problems - leaving unconfigured
Errors were encountered while processing:
linux-headers-virtual
linux-virtual
根据 lgarzo 的要求,这里有一些信息:
uname -r
3.2.0-45-virtual
dpkg --list linux-[hi]* | cat
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
+++-===============================-============================-===================================================================
=====
un linux-headers <none> (no description available)
un linux-headers-3 <none> (no description available)
un linux-headers-3.0 <none> (no description available)
un linux-headers-3.2.0-36 <none> (no description available)
un linux-headers-3.2.0-36-virtual <none> (no description available)
un linux-headers-3.2.0-37 <none> (no description available)
un linux-headers-3.2.0-37-virtual <none> (no description available)
un linux-headers-3.2.0-38 <none> (no description available)
un linux-headers-3.2.0-38-virtual <none> (no description available)
un linux-headers-3.2.0-39 <none> (no description available)
un linux-headers-3.2.0-39-virtual <none> (no description available)
un linux-headers-3.2.0-40 <none> (no description available)
un linux-headers-3.2.0-40-virtual <none> (no description available)
un linux-headers-3.2.0-41 <none> (no description available)
un linux-headers-3.2.0-41-virtual <none> (no description available)
ii linux-headers-3.2.0-43 3.2.0-43.68 Header files related to Linux kernel version 3.2.0
ii linux-headers-3.2.0-43-virtual 3.2.0-43.68 Linux kernel headers for version 3.2.0 on 64 bit x86 Virtual Guests
ii linux-headers-3.2.0-44 3.2.0-44.69 Header files related to Linux kernel version 3.2.0
in linux-headers-3.2.0-44-virtual <none> (no description available)
ii linux-headers-3.2.0-45 3.2.0-45.70 Header files related to Linux kernel version 3.2.0
ii linux-headers-3.2.0-45-virtual 3.2.0-45.70 Linux kernel headers for version 3.2.0 on 64 bit x86 Virtual Guests
iU linux-headers-virtual 3.2.0.44.53 Linux kernel headers for virtual machines
un linux-image <none> (no description available)
un linux-image-3.0 <none> (no description available)
ii linux-image-3.2.0-23-virtual 3.2.0-23.36 Linux kernel image for version 3.2.0 on 64 bit x86 Virtual Guests
ii linux-image-3.2.0-30-virtual 3.2.0-30.48 Linux kernel image for version 3.2.0 on 64 bit x86 Virtual Guests
ii linux-image-3.2.0-31-virtual 3.2.0-31.50 Linux kernel image for version 3.2.0 on 64 bit x86 Virtual Guests
ii linux-image-3.2.0-32-virtual 3.2.0-32.51 Linux kernel image for version 3.2.0 on 64 bit x86 Virtual Guests
ii linux-image-3.2.0-33-virtual 3.2.0-33.52 Linux kernel image for version 3.2.0 on 64 bit x86 Virtual Guests
ii linux-image-3.2.0-34-virtual 3.2.0-34.53 Linux kernel image for version 3.2.0 on 64 bit x86 Virtual Guests
ii linux-image-3.2.0-35-virtual 3.2.0-35.55 Linux kernel image for version 3.2.0 on 64 bit x86 Virtual Guests
ii linux-image-3.2.0-36-virtual 3.2.0-36.57 Linux kernel image for version 3.2.0 on 64 bit x86 Virtual Guests
rc linux-image-3.2.0-37-virtual 3.2.0-37.58 Linux kernel image for version 3.2.0 on 64 bit x86 Virtual Guests
rc linux-image-3.2.0-38-virtual 3.2.0-38.61 Linux kernel image for version 3.2.0 on 64 bit x86 Virtual Guests
rc linux-image-3.2.0-39-virtual 3.2.0-39.62 Linux kernel image for version 3.2.0 on 64 bit x86 Virtual Guests
rc linux-image-3.2.0-40-virtual 3.2.0-40.64 Linux kernel image for version 3.2.0 on 64 bit x86 Virtual Guests
rc linux-image-3.2.0-41-virtual 3.2.0-41.66 Linux kernel image for version 3.2.0 on 64 bit x86 Virtual Guests
ii linux-image-3.2.0-43-virtual 3.2.0-43.68 Linux kernel image for version 3.2.0 on 64 bit x86 Virtual Guests
ii linux-image-3.2.0-44-virtual 3.2.0-44.69 Linux kernel image for version 3.2.0 on 64 bit x86 Virtual Guests
ii linux-image-3.2.0-45-virtual 3.2.0-45.70 Linux kernel image for version 3.2.0 on 64 bit x86 Virtual Guests
ii linux-image-virtual 3.2.0.45.54 Linux kernel image for virtual machines
un linux-initramfs-tool <none> (no description available)
根据要求提供可用空间:
df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/cacti-root 3.2G 1.6G 1.5G 53% /
udev 239M 4.0K 239M 1% /dev
tmpfs 97M 236K 97M 1% /run
none 5.0M 0 5.0M 0% /run/lock
none 243M 0 243M 0% /run/shm
/dev/sda1 228M 82M 134M 38% /boot
有一件事我应该提一下,事实上我没有足够的 inode 剩余(df -i
/dev/mapper/cacti-root 显示 100% IUse%)。我不得不手动从 /usr/src/linux-headers-XXX-XX 中删除旧版本的文件。但现在,这不再是问题了。
首先,感谢 lgarzo 的帮助。我已尝试按照建议安装 linux-headers-3.2.0-44-virtual。输出如下:
dpkg --install linux-headers-3.2.0-44-virtual
dpkg: error processing linux-headers-3.2.0-44-virtual (--install):
cannot access archive: No such file or directory
Errors were encountered while processing:
linux-headers-3.2.0-44-virtual
检查了 /usr/src/ 中所需的文件后,似乎恰恰缺少了 linux-headers-3.2.0-44-virtual 中的文件:
cd /usr/src/
ls -l
total 20
drwxr-xr-x 24 root root 4096 May 16 06:57 linux-headers-3.2.0-43
drwxr-xr-x 7 root root 4096 May 16 06:57 linux-headers-3.2.0-43-virtual
drwxr-xr-x 24 root root 4096 May 24 06:41 linux-headers-3.2.0-44
drwxr-xr-x 24 root root 4096 Jun 6 14:48 linux-headers-3.2.0-45
drwxr-xr-x 7 root root 4096 Jun 6 14:48 linux-headers-3.2.0-45-virtual
我有 ...-43 和 ...-45 的普通版和虚拟版,但没有 ...-44 的虚拟版。看来 inode 问题在 5 月 24 日的自动升级期间出现,而且升级到一半就结束了。
有什么方法可以下载并提取这些文件以避免dpkg --install
失败?谢谢。
好的,看来我们正在朝着某个方向前进(希望方向正确)。我已经下载linux-headers-3.2.0-44-virtual_3.2.0-44.69_i386.deb
并尝试执行dpkg -install
。现在它因为其他原因而抱怨 :(
# wget http://launchpadlibrarian.net/140046439/linux-headers-3.2.0-44-virtual_3.2.0-44.69_i386.deb
--2013-06-12 09:49:51-- http://launchpadlibrarian.net/140046439/linux-headers-3.2.0-44-virtual_3.2.0-44.69_i386.deb
Resolving launchpadlibrarian.net (launchpadlibrarian.net)... 91.189.89.228, 91.189.89.229
Connecting to launchpadlibrarian.net (launchpadlibrarian.net)|91.189.89.228|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 979370 (956K) [application/x-debian-package]
Saving to: `linux-headers-3.2.0-44-virtual_3.2.0-44.69_i386.deb'
100%[==========================================================================================>] 979,370 --.-K/s in 0.04s
2013-06-12 09:49:51 (22.9 MB/s) - `linux-headers-3.2.0-44-virtual_3.2.0-44.69_i386.deb' saved [979370/979370]
# dpkg --install linux-headers-3.2.0-44-virtual_3.2.0-44.69_i386.deb
Selecting previously unselected package linux-headers-3.2.0-44-virtual:i386.
(Reading database ... 89164 files and directories currently installed.)
Unpacking linux-headers-3.2.0-44-virtual:i386 (from linux-headers-3.2.0-44-virtual_3.2.0-44.69_i386.deb) ...
dpkg: dependency problems prevent configuration of linux-headers-3.2.0-44-virtual:i386:
linux-headers-3.2.0-44-virtual:i386 depends on linux-headers-3.2.0-44.
linux-headers-3.2.0-44-virtual:i386 depends on libc6 (>= 2.11).
dpkg: error processing linux-headers-3.2.0-44-virtual:i386 (--install):
dependency problems - leaving unconfigured
Errors were encountered while processing:
linux-headers-3.2.0-44-virtual:i386
文件已正确提取到/usr/src/
,但我认为还有一些步骤需要遵循。
# cd /usr/src
# ls -l
total 24
drwxr-xr-x 24 root root 4096 May 16 06:57 linux-headers-3.2.0-43
drwxr-xr-x 7 root root 4096 May 16 06:57 linux-headers-3.2.0-43-virtual
drwxr-xr-x 24 root root 4096 May 24 06:41 linux-headers-3.2.0-44
drwxr-xr-x 7 root root 4096 Jun 12 09:37 linux-headers-3.2.0-44-virtual
drwxr-xr-x 24 root root 4096 Jun 6 14:48 linux-headers-3.2.0-45
drwxr-xr-x 7 root root 4096 Jun 6 14:48 linux-headers-3.2.0-45-virtual
有什么想法吗?(非常感谢您的耐心和支持)。
# dpkg --list linux-headers-3.2.0-44 libc6 linux-virtual | cat
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
+++-===================================-============================-=============================================================
ii libc6 2.15-0ubuntu10.3 Embedded GNU C Library: Shared libraries
ii linux-headers-3.2.0-44 3.2.0-44.69 Header files related to Linux kernel version 3.2.0
iU linux-virtual 3.2.0.44.53 Complete Linux kernel for virtual machines
除了 linux-virtual 之外,我还看到了大写的 U,我还尝试过:
# apt-get install linux-virtual
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-headers-3.2.0-44-virtual:i386 : Depends: linux-headers-3.2.0-44:i386 but it is not installable
Depends: libc6:i386 (>= 2.11) but it is not going to be installed
linux-headers-virtual : Depends: linux-headers-3.2.0-44-virtual but it is not going to be installed
linux-virtual : Depends: linux-headers-virtual (= 3.2.0.45.54) but 3.2.0.44.53 is to be installed
E: Unmet dependencies. Try 'apt-get -f install' with no packages (or specify a solution).
它是 x64!!!
# dpkg --print-architecture
amd64
我认为下载 x64 文件可能会有帮助;)
以下是我所采取的步骤(及其输出),现在我意识到它是一台 64 位机器。
下载并安装正确的 .deb 文件
# wget http://launchpadlibrarian.net/140040575/linux-headers-3.2.0-44-virtual_3.2.0-44.69_amd64.deb
--2013-06-14 08:08:49-- http://launchpadlibrarian.net/140040575/linux-headers-3.2.0-44-virtual_3.2.0-44.69_amd64.deb
Resolving launchpadlibrarian.net (launchpadlibrarian.net)... 91.189.89.229, 91.189.89.228
Connecting to launchpadlibrarian.net (launchpadlibrarian.net)|91.189.89.229|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 983134 (960K) [application/x-debian-package]
Saving to: `linux-headers-3.2.0-44-virtual_3.2.0-44.69_amd64.deb'
100%[==========================================================================================>] 983,134 151K/s in 20s
2013-06-14 08:09:10 (48.7 KB/s) - `linux-headers-3.2.0-44-virtual_3.2.0-44.69_amd64.deb' saved [983134/983134]
# dpkg --install linux-headers-3.2.0-44-virtual_3.2.0-44.69_amd64.deb
(Reading database ... 89164 files and directories currently installed.)
Unpacking linux-headers-3.2.0-44-virtual (from linux-headers-3.2.0-44-virtual_3.2.0-44.69_amd64.deb) ...
Setting up linux-headers-3.2.0-44-virtual (3.2.0-44.69) ...
检查 /usr/src 目录的内容
# cd /usr/src
# ls -l
total 24
drwxr-xr-x 24 root root 4096 May 16 06:57 linux-headers-3.2.0-43
drwxr-xr-x 7 root root 4096 May 16 06:57 linux-headers-3.2.0-43-virtual
drwxr-xr-x 24 root root 4096 May 24 06:41 linux-headers-3.2.0-44
drwxr-xr-x 7 root root 4096 Jun 14 08:12 linux-headers-3.2.0-44-virtual
drwxr-xr-x 24 root root 4096 Jun 6 14:48 linux-headers-3.2.0-45
drwxr-xr-x 7 root root 4096 Jun 6 14:48 linux-headers-3.2.0-45-virtual
尝试 apt-get update & upgrade
# apt-get update
[...]
[Ends successfully]
# apt-get 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-virtual : Depends: linux-image-virtual (= 3.2.0.44.53) but 3.2.0.45.54 is installed
E: Unmet dependencies. Try using -f.
它失败了,并发出抱怨,因此我尝试使用 -f(orce) 标志
# apt-get -f upgrade
Reading package lists... Done
Building dependency tree
Reading state information... Done
Correcting dependencies... Done
The following NEW packages will be installed:
linux-headers-3.2.0-48 linux-headers-3.2.0-48-virtual linux-image-3.2.0-48-virtual
The following packages have been kept back:
mysql-client-5.5 mysql-server-5.5 mysql-server-core-5.5
The following packages will be upgraded:
aptitude bash dmsetup isc-dhcp-client isc-dhcp-common libc-bin libc6 libdbus-1-3 libdevmapper-event1.02.1 libdevmapper1.02.1
libdrm-intel1 libdrm-nouveau1a libdrm-radeon1 libdrm2 libgnutls26 libmysqlclient18 libplymouth2 libssl1.0.0 libudev0 libx11-6
libx11-data libxcb-render0 libxcb-shm0 libxcb1 libxrender1 linux-headers-virtual linux-image-virtual linux-virtual lvm2
multiarch-support mysql-client-core-5.5 mysql-common mysql-server openssl plymouth python-apt python-apt-common rsyslog udev
39 upgraded, 3 newly installed, 0 to remove and 3 not upgraded.
2 not fully installed or removed.
Need to get 42.6 MB of archives.
After this operation, 102 MB of additional disk space will be used.
Do you want to continue [Y/n]? y
Get:1 http://es.archive.ubuntu.com/ubuntu/ precise-updates/main linux-image-3.2.0-48-virtual amd64 3.2.0-48.74 [12.5 MB]
Get:2 http://es.archive.ubuntu.com/ubuntu/ precise-updates/main linux-virtual amd64 3.2.0.48.58 [1,758 B]
Get:3 http://es.archive.ubuntu.com/ubuntu/ precise-updates/main linux-image-virtual amd64 3.2.0.48.58 [2,390 B]
Get:4 http://es.archive.ubuntu.com/ubuntu/ precise-updates/main linux-headers-3.2.0-48 all 3.2.0-48.74 [11.7 MB]
Get:5 http://es.archive.ubuntu.com/ubuntu/ precise-updates/main libc-bin amd64 2.15-0ubuntu10.4 [1,181 kB]
Get:6 http://es.archive.ubuntu.com/ubuntu/ precise-updates/main libc6 amd64 2.15-0ubuntu10.4 [4,653 kB]
[...]
Found linux image: /boot/vmlinuz-3.2.0-43-virtual
Found initrd image: /boot/initrd.img-3.2.0-43-virtual
Found linux image: /boot/vmlinuz-3.2.0-36-virtual
Found initrd image: /boot/initrd.img-3.2.0-36-virtual
Found linux image: /boot/vmlinuz-3.2.0-35-virtual
Found initrd image: /boot/initrd.img-3.2.0-35-virtual
Found linux image: /boot/vmlinuz-3.2.0-34-virtual
Found initrd image: /boot/initrd.img-3.2.0-34-virtual
done
Setting up linux-image-virtual (3.2.0.48.58) ...
Setting up linux-headers-3.2.0-48 (3.2.0-48.74) ...
Setting up linux-headers-3.2.0-48-virtual (3.2.0-48.74) ...
Setting up linux-headers-virtual (3.2.0.44.53) ...
dpkg: dependency problems prevent configuration of linux-virtual:
linux-virtual depends on linux-image-virtual (= 3.2.0.44.53); however:
Version of linux-image-virtual on system is 3.2.0.48.58.
dpkg: error processing linux-virtual (--configure):
dependency problems - leaving unconfigured
No apport report written because the error message indicates its a followup error from a previous failure.
Setting up libdbus-1-3 (1.4.18-1ubuntu1.4) ...
Setting up libdrm2 (2.4.43-0ubuntu0.0.1) ...
Setting up libdrm-intel1 (2.4.43-0ubuntu0.0.1) ...
Setting up libdrm-nouveau1a (2.4.43-0ubuntu0.0.1) ...
[...]
update-initramfs: deferring update (trigger activated)
Processing triggers for libc-bin ...
ldconfig deferred processing now taking place
Processing triggers for initramfs-tools ...
update-initramfs: Generating /boot/initrd.img-3.2.0-48-virtual
Errors were encountered while processing:
linux-virtual
E: Sub-process /usr/bin/dpkg returned an error code (1)
#
它再次失败,也抱怨 linux-virtual。唯一的区别是,由于我运行的时候设置了 -f(orce) 标志,现在我有3.2.0.48.58也安装了。
之前的投诉是:
linux-virtual 依赖于 linux-image-virtual (= 3.2.0.44.53),但已安装 3.2.0.45.54
现在它是:
linux-virtual 依赖于 linux-image-virtual (= 3.2.0.44.53),但已安装 3.2.0.48.58
# dpkg --configure linux-virtual
dpkg: dependency problems prevent configuration of linux-virtual:
linux-virtual depends on linux-image-virtual (= 3.2.0.44.53); however:
Version of linux-image-virtual on system is 3.2.0.48.58.
dpkg: error processing linux-virtual (--configure):
dependency problems - leaving unconfigured
Errors were encountered while processing:
linux-virtual
# ls -l /usr/src
total 32
drwxr-xr-x 24 root root 4096 May 16 06:57 linux-headers-3.2.0-43
drwxr-xr-x 7 root root 4096 May 16 06:57 linux-headers-3.2.0-43-virtual
drwxr-xr-x 24 root root 4096 May 24 06:41 linux-headers-3.2.0-44
drwxr-xr-x 7 root root 4096 Jun 14 08:12 linux-headers-3.2.0-44-virtual
drwxr-xr-x 24 root root 4096 Jun 6 14:48 linux-headers-3.2.0-45
drwxr-xr-x 7 root root 4096 Jun 6 14:48 linux-headers-3.2.0-45-virtual
drwxr-xr-x 24 root root 4096 Jun 14 08:16 linux-headers-3.2.0-48
drwxr-xr-x 7 root root 4096 Jun 14 08:16 linux-headers-3.2.0-48-virtual
# dpkg --list linux-headers-3.2.0-44 libc6 linux-virtual | cat
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
+++-===================================-============================-===============================================================
ii libc6 2.15-0ubuntu10.4 Embedded GNU C Library: Shared libraries
ii linux-headers-3.2.0-44 3.2.0-44.69 Header files related to Linux kernel version 3.2.0
iU linux-virtual 3.2.0.44.53 Complete Linux kernel for virtual machines
# uname -r
3.2.0-45-virtual
还有其他想法吗?
如果你仍然认为最简单的方法是回退到以前的内核版本并让它从那里再次更新,我想我们可以使用3.2.0.43因为我有linux-headers-3.2.0-43
和linux-headers-3.2.0-43-virtual
下/usr/src/
以及所有需要的文件/boot/
# ls -l /boot/*3.2.0-43*
-rw-r--r-- 1 root root 794949 May 15 06:33 /boot/abi-3.2.0-43-virtual
-rw-r--r-- 1 root root 140637 May 15 06:33 /boot/config-3.2.0-43-virtual
-rw-r--r-- 1 root root 4791807 May 16 06:57 /boot/initrd.img-3.2.0-43-virtual
-rw------- 1 root root 2890123 May 15 06:33 /boot/System.map-3.2.0-43-virtual
-rw------- 1 root root 4961104 May 15 06:33 /boot/vmlinuz-3.2.0-43-virtual
谢谢。
它也阻止我安装它:
# wget http://launchpadlibrarian.net/141816244/linux-virtual_3.2.0.48.58_amd64.deb
--2013-06-14 11:42:37-- http://launchpadlibrarian.net/141816244/linux-virtual_3.2.0.48.58_amd64.deb
Resolving launchpadlibrarian.net (launchpadlibrarian.net)... 91.189.89.228, 91.189.89.229
Connecting to launchpadlibrarian.net (launchpadlibrarian.net)|91.189.89.228|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 1758 (1.7K) [application/x-debian-package]
Saving to: `linux-virtual_3.2.0.48.58_amd64.deb'
100%[==========================================================================================>] 1,758 --.-K/s in 0s
2013-06-14 11:42:37 (184 MB/s) - `linux-virtual_3.2.0.48.58_amd64.deb' saved [1758/1758]
# dpkg --install linux-virtual_3.2.0.48.58_amd64.deb
(Reading database ... 120232 files and directories currently installed.)
Preparing to replace linux-virtual 3.2.0.44.53 (using linux-virtual_3.2.0.48.58_amd64.deb) ...
Unpacking replacement linux-virtual ...
dpkg: dependency problems prevent configuration of linux-virtual:
linux-virtual depends on linux-headers-virtual (= 3.2.0.48.58); however:
Version of linux-headers-virtual on system is 3.2.0.44.53.
dpkg: error processing linux-virtual (--install):
dependency problems - leaving unconfigured
Errors were encountered while processing:
linux-virtual
下载两个 .deb 文件
# wget http://launchpadlibrarian.net/141821073/linux-headers-3.2.0-48-virtual_3.2.0-48.74_amd64.deb
[...]
# wget http://launchpadlibrarian.net/141823437/linux-headers-3.2.0-48_3.2.0-48.74_all.deb
[...]
安装它们
# dpkg --install linux-headers-3.2.0-48-virtual_3.2.0-48.74_amd64.deb
(Reading database ... 120232 files and directories currently installed.)
Preparing to replace linux-headers-3.2.0-48-virtual 3.2.0-48.74 (using linux-headers-3.2.0-48-virtual_3.2.0-48.74_amd64.deb) ...
Unpacking replacement linux-headers-3.2.0-48-virtual ...
Setting up linux-headers-3.2.0-48-virtual (3.2.0-48.74) ...
# dpkg --install linux-headers-3.2.0-48_3.2.0-48.74_all.deb
(Reading database ... 120232 files and directories currently installed.)
Preparing to replace linux-headers-3.2.0-48 3.2.0-48.74 (using linux-headers-3.2.0-48_3.2.0-48.74_all.deb) ...
Unpacking replacement linux-headers-3.2.0-48 ...
Setting up linux-headers-3.2.0-48 (3.2.0-48.74) ...
尝试安装原始的 .deb 包,但依赖关系不满足
# dpkg --install linux-virtual_3.2.0.48.58_amd64.deb
(Reading database ... 120232 files and directories currently installed.)
Preparing to replace linux-virtual 3.2.0.48.58 (using linux-virtual_3.2.0.48.58_amd64.deb) ...
Unpacking replacement linux-virtual ...
dpkg: dependency problems prevent configuration of linux-virtual:
linux-virtual depends on linux-headers-virtual (= 3.2.0.48.58); however:
Version of linux-headers-virtual on system is 3.2.0.44.53.
dpkg: error processing linux-virtual (--install):
dependency problems - leaving unconfigured
Errors were encountered while processing:
linux-virtual
既然它仍然抱怨,我想我应该下载并安装缺少的软件包。这一步是我自己做的:)
# wget http://launchpadlibrarian.net/141816242/linux-headers-virtual_3.2.0.48.58_amd64.deb
[...]
# dpkg --install linux-headers-virtual_3.2.0.48.58_amd64.deb
(Reading database ... 120232 files and directories currently installed.)
Preparing to replace linux-headers-virtual 3.2.0.44.53 (using linux-headers-virtual_3.2.0.48.58_amd64.deb) ...
Unpacking replacement linux-headers-virtual ...
Setting up linux-headers-virtual (3.2.0.48.58) ...
尝试安装出现错误的软件包
# dpkg --install linux-virtual_3.2.0.48.58_amd64.deb
(Reading database ... 120232 files and directories currently installed.)
Preparing to replace linux-virtual 3.2.0.48.58 (using linux-virtual_3.2.0.48.58_amd64.deb) ...
Unpacking replacement linux-virtual ...
Setting up linux-virtual (3.2.0.48.58) ...
终于成功了!
# apt-get update
[...]
# apt-get upgrade
[...]
一切正常,没有错误。非常感谢 lgarzo!!!
请发布一些内容作为答案(而不是评论),以便我可以感谢您的宝贵帮助。
干杯。
答案1
一个更简单的解决方案,不需要手动下载包和绕过包签名等:
sudo apt-get remove linux-headers-virtual linux-virtual
sudo apt-get install linux-headers-virtual linux-virtual
sudo apt-get -f install
sudo apt-get autoremove
最后两个步骤是可选的,分别只是验证安装和清理。
答案2
前言:这是一个问答环节。这个答案总结了解决问题的步骤(省略了一些死胡同)。
首先,我们需要一些有关系统的信息。(可以通过打开终端窗口并在提示符下运行给定的命令来检索。):
- 目前使用的内核:
uname -r
- 当前安装的内核和头文件包:
dpkg --list linux-[hi]* | cat
- 当前架构:
dpkg --print-architecture
- 系统中的可用磁盘空间:
df -h
- 系统中的空闲 inode:
df -i
未满足依赖关系问题的根源是有时缺少可用空间/inode。安装内核/头文件时,始终建议至少留出 150 MB 的可用空间/lib
(或者/root
如果您在安装时使用了自动分区方法)。此外,可用 inode 的数量不应接近 100%,因为这些软件包中安装了大量文件。
在确保有足够的可用空间来保存这些文件后,我们继续通过下载并使用来安装缺失的软件包dpkg --install package.deb
。(请注意,手动安装软件包时,您有责任满足软件包依赖关系。在这种情况下,我们无法使用apt
,因为系统处于不一致状态并且无法正常工作。)
我们需要确定缺少哪些包。dpkg
( apt
) 命令的依赖性错误消息中对此进行了提示。
为了满足第一个依赖关系:
linux-headers-virtual : Depends: linux-headers-3.2.0-44-virtual but it is not installed
需要以下包:
linux-headers-3.2.0-44-virtual_3.2.0-44.69_amd64.deb
为了满足第二个(及进一步的)依赖关系:
linux-virtual : Depends: linux-image-virtual (= 3.2.0.44.53) but 3.2.0.45.54 is installed
需要以下软件包:
linux-virtual_3.2.0.48.58_amd64.deb
linux-headers-3.2.0-48-virtual_3.2.0-48.74_amd64.deb
linux-headers-3.2.0-48_3.2.0-48.74_all.deb
linux-headers-virtual_3.2.0.48.58_amd64.deb
找到这些包有点困难。但你可以使用以下方法找回它们:
- 打开Linux 内核启动板页面。
- 点击“所有套餐”,
- 选择“Precise”发行版系列和“linux”或“linux-meta”源包,然后
- 选择您正在寻找的版本。
- 单击相应的二进制包并
- 从列表中选择您的包。
- 查看可下载的文件。
要安装下载的软件包:
- 将其保存在目录中,
cd
内部和use dpkg --install downloaded_package_name.deb
安装该包。
确保在运行dpkg --list
查询之前离开目录。
满足所有依赖关系后,您可以运行
apt-get update && apt-get upgrade
并且不会出现任何错误消息。可能有新的/更新的软件包,因为系统一段时间以来无法自行更新。
答案3
试试这个。只需按下键盘上的Ctrl+ Alt+T即可打开终端。打开后,运行以下命令:
sudo dpkg --configure --pending
sudo apt-get clean
sudo apt-get update && sudo apt-get upgrade
答案4
只是想说我也遇到了同样的问题。没有人提到它,但这不是 apt 中的一个错误吗?我的意思是,如果我们可以强制安装某些软件包并手动修复它,apt 难道不应该能够自行解决这个问题并完成必要的工作吗?
我的 /boot 分区很小,过了一段时间,安装的内核太多导致分区满了。我开始收到类似的错误消息,我不会在这里重现这些信息,因为它们与已经报告的完全相同。
此消息的目的只是提醒大家注意这个问题,它正在影响其他人,并使 apt 处于安全更新未按时应用的状态。在面向互联网的服务器上,如果由于 apt 损坏而无法及时修补关键安全漏洞,这可能会成为一场噩梦。