![系统升级问题](https://linux22.com/image/993325/%E7%B3%BB%E7%BB%9F%E5%8D%87%E7%BA%A7%E9%97%AE%E9%A2%98.png)
我使用的是 ubuntu 14.04,上次升级系统时遇到了问题。我正在寻找解决方案,发现了这个: sudo apt-get -y purge
我正在使用它,最后它说我无法删除任何旧内核,因为它依赖于 linux-image-3.13.0-93-generic。所以,我知道我必须安装 linux-image-3.13.0-93-generic。但问题是我没有足够的空间。这很愚蠢,因为我的电脑上还剩下近 500GB 的内存,但我仍然不能将它们用作系统内存?这很荒谬,我的电脑上有很多内存,但由于这个系统的内存不足,我陷入了困境,因为所有内核都相互依赖,所以我甚至无法删除它们
有人能帮助我吗?
谢谢。
答案1
这个答案是从这个复制而来的文章。
正如您在错误消息中看到的那样,一些软件包有未满足依赖项。这意味着有一些第三方依赖项混入其中。APT 包管理器易于安装、删除等,但在与第三方依赖项混入时,apt-get 有时会出现您遇到的这种错误。
请按照以下步骤操作:
备份配置文件如下:
/etc/apt/sources.list
现在先删除损坏的软件包数据库:
sudo apt-get clean
或者
sudo apt-get autoclean
现在请运行这个:
sudo apt-get -f install
这是修复依赖问题的最基本命令。
现在运行:
sudo dpkg --configure -a
然后,
sudo apt-get -f install
查看输出,如果像这样:0 upgraded, 0 newly installed, 0 to remove and 1 not upgraded.
则表示失败。
现在运行这个:
sudo apt-get -u dist-upgrade
如果它显示任何被保留的包,那么你必须用这个命令将其消除:
sudo apt-get -o Debug::pkgProblemResolver=yes dist-upgrade
再次查看输出。如果它是这样的:
0 upgraded, 0 newly installed, 0 to remove and 6 not upgraded.
也就是说它再次失败了。
dist-upgrade
现在,您必须通过每次运行来逐个删除保留的包。使用--dry-run
并注意每个事件。
sudo apt-get remove --dry-run package-name
如果没有运气,那么您必须自己找到并删除依赖项。
禁用 PPA:
打开软件中心 > 编辑 > 软件源,然后单击其他软件。您将看到每个 PPA 都有两行,一行用于已编译的包一个用于来源, 取消选中两行以禁用 PPA。
清除:
这意味着将所选 PPA 中的软件包降级为官方 Ubuntu 存储库中的版本并禁用该 PPA。运行以下命令:
sudo apt-get install ppa-purge
如果上述操作失败则运行以下命令:
mkdir ppa-purge && cd ppa-purge && wget http://mirror.pnl.gov/ubuntu/pool/universe/p/ppa-purge/ppa-purge_0.2.8+bzr56_all.deb && wget http://mirror.pnl.gov/ubuntu//pool/main/a/aptitude/aptitude_0.6.6-1ubuntu1_i386.deb && sudo dpkg -i ./*.deb
使用 PPA 清除:
sudo ppa-purge ppa:someppa/ppa
消除:
运行以下命令:
sudo apt-get autoremove --purge package-name
sudo add-apt-repository --remove ppa:someppa/ppa
sudo apt-get autoclean
此后再试一次。
阅读原来的文章,您的概念将会更加清晰。
另一种方法:
显示所有已安装的带有“linux-”并包含数字的软件包。(根据您的要求编辑):
dpkg -l linux-* | awk '/^ii/{ print $2 }' | grep -e [0-9]
现在指定您想要清除的包的名称:
sudo apt-get -y purge linux-headers-3.13.0-24 linux-headers-3.13.0-24-generic linux-headers-3.13.0-29 linux-headers-3.13.0-29-generic linux-image-3.13.0-24-generic linux-image-3.13.0-29-generic linux-image-extra-3.13.0-24-generic linux-image-extra-3.13.0-29-generic
替代命令:
dpkg -l 'linux-*' | sed '/^ii/!d;/'"$(uname -r | sed "s/\(.*\)-\([^0-9]\+\)/\1/")"'/d;s/^[^ ]* [^ ]* \([^ ]*\).*/\1/;/[0-9]/!d' | xargs sudo apt-get -y purge
这是高级命令,它删除除最新内核之外的所有内核。