ubuntu 安装问题
出现问题
使用apt-get install 安装软件报错E: Sub-process /usr/bin/dpkg returned an error code (1)
原因分析及解决思路:
如果要安装某个软件包xxx,遇到此错误,最简单的方法是使用以下命令进行修复:
sudo apt-get -f install
很明显,相信你已经试过该命令不行,才在网络上找其他解决办法。更常用的方法如下:
该命令会删除/var/lib/dpkg/info/目录下所有与软件包xxx相关的文件,不放心的同学可以先对目录进行备份:sudo cp -rp /var/lib/dpkg/info/ /var/lib/dpkg/info.bak/
sudo rm -rf /var/lib/dpkg/info/*xxx*
sudo apt-get -f install
如果到这里还没有解决你的问题,很可能是我们力气用错了地方,执行下面的命令查看boot分区的占用情况:
sudo df -h
如果发现有boot分区占用100%的情况,不妨看一下之前的报错:
E: Sub-process /usr/bin/dpkg returned an error code (1)
看这条报错前面有没有类似分区空间不足的报错提示,我们看错误往往只关注到了最后一条,很容易忽略关键信息。
解决办法:
先查看系统自动更新了多少内核:
sudo dpkg --get-selections|grep linux-image
确定自己系统当前使用的内核:
sudo uname -a
按理说应该使用以下命令卸载不用的内核:
sudo apt-get autoremove [内核名称]
但是现在apt-get 命令已经用不了了,所以将几个比当前系统所使用内核版本低的内核移动到其他文件夹:
先看看boot分区的内核文件:
再查看系统当前内核
我们可以选几个最低版本的内核,把它们移动到其他文件夹。在本例截图中,只要比4.4.0-206版本低内核都可以移动:
cd /boot
sudo mv *[要移动的系统内核版本号]* /home/
两个*表示通配符,上述命令移动了所有文件名与要移动系统内核版本号相关的文件。带有此时boot分区应该多了一定的空间,我们使用下面命令修复最初遇到的问题:
sudo apt-get -f install
修复完成后,我们再卸载剩下多余的内核:
查看当前有的内核:
sudo dpkg --get-selections|grep linux-image
卸载内核:
sudo apt-get autoremove [想卸载的内核]
接着我们把刚才移动的内核再移动到boot分区,使用apt卸载:
sudo mv /home/*[刚才移动的系统内核版本号]* /boot
sudo apt-get autoremove [刚才移动的内核]
原文链接:https://blog.csdn.net/lizheng2017/article/details/116228341