我知道类似的问题已经解决了,但我有点不知所措。我的 / 分区空间不足,需要删除一些软件包,因为 apt-get remove、autoremove 和 clean 无法执行任何操作。然后我执行了apt-get update
and apt-get upgrade
-ed,但过程中出了点问题。现在的情况是:
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-server linux-server
The following packages will be upgraded:
linux-headers-server linux-server
2 upgraded, 0 newly installed, 0 to remove and 56 not upgraded.
2 not fully installed or removed.
Need to get 0 B/3,996 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-server:
linux-headers-server depends on linux-headers-3.2.0-55-generic; however:
Package linux-headers-3.2.0-55-generic is not installed.
dpkg: error processing linux-headers-server (--configure):
dependency problems - leaving unconfigured
No apport report written because MaxReports is reached already
dpkg: dependency problems prevent configuration of linux-server:
linux-server depends on linux-image-server (= 3.2.0.55.65); however:
Version of linux-image-server on system is 3.2.0.56.66.
linux-server depends on linux-headers-server (= 3.2.0.55.65); however:
Package linux-headers-server is not configured yet.
dpkg: error processing linux-server (--configure):
dependency problems - leaving unconfigured
No apport report written because MaxReports is reached already
Errors were encountered while processing:
linux-headers-server
linux-server
E: Sub-process /usr/bin/dpkg returned an error code (1)
因此系统想要安装,linux-image-server=3.2.0.56.66
尽管其他组件依赖于版本3.2.0.55.65
。我尝试安装dpgk --remove
软件包然后重新安装,但遇到了问题。据我了解,我需要降级 linux-image-server,然后修复依赖项,然后根据需要选择升级?
答案1
因此,我强制删除了所有相关软件包,重新启动后apt-get -f install
就好了。我所做的是:
dpkg --remove --force-remove-reinstreq linux-headers-server
dpkg --remove --force-remove-reinstreq linux-image-server
dpkg --remove --force-remove-reinstreq linux-headers-3.2.0-56-generic
dpkg --remove --force-remove-reinstreq linux-headers-3.2.0-56
dpkg --remove --force-remove-reinstreq linux-server
进而
apt-get -f install
这样就解决了问题。要获取我使用的所有软件包的列表dpkg --get-selections
。有一个此处有关清理先前版本的帖子非常有用。
答案2
这篇文章对我来说真是天大的福音,谢谢。我无法告诉你我浪费了多少时间,但这是解决我的问题的最佳帖子。同样,我的启动驱动器容量为 100%,并且存在类似的依赖性问题,必须解决,否则 apt-get upgrade 将失败。简而言之,下面是我执行的命令,用 xx 替换标题版本号,因为我的版本号略有不同。其他遇到类似错误的人需要仔细阅读,以找出他们需要添加的版本号。
dpkg --remove --force-remove-reinstreq linux-headers-server
dpkg --remove --force-remove-reinstreq linux-image-server
dpkg --remove --force-remove-reinstreq linux-headers-3.2.0-xx-generic
dpkg --remove --force-remove-reinstreq linux-headers-3.2.0-xx
dpkg --remove --force-remove-reinstreq linux-server
现在重启服务器
shutdown -r now
apt-get autoremove
apt-get -f install
apt-get remove --purge $(dpkg -l 'linux-*' | sed '/^ii/!d;/'"$(uname -r | sed "s/\(.*\)-\([^0-9]\+\)/\1/")"'/d;s/^[^ ]* [^ ]* \([^ ]*\).*/\1/;/[0-9]/!d')
最后一个命令将我的启动驱动器的使用率降低到了 16%,有关命令的更多信息,请参阅以下 URL 如何删除旧内核版本来清理启动菜单?。
非常感谢 miha 发布您的解决方案。
答案3
我想知道仅仅移除它linux-server
是否会造成伤害。
毕竟,安装linux-server
的原因linux-headers-server
在于如果标题不是必需的,那么只要linux-image-server
安装了,整个系统就应该可以正常工作。
我在一台小型虚拟主机上遇到了空间问题,于是我删除了linux-server
头文件包。服务器运行良好,但还有大约 700MB 的可用硬盘空间,这对于 5 GB 的虚拟主机来说已经很多了。