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

image

如果发现有boot分区占用100%的情况,不妨看一下之前的报错:

E: Sub-process /usr/bin/dpkg returned an error code (1)

看这条报错前面有没有类似分区空间不足的报错提示,我们看错误往往只关注到了最后一条,很容易忽略关键信息。

解决办法:

先查看系统自动更新了多少内核:

sudo dpkg --get-selections|grep linux-image

image

确定自己系统当前使用的内核:

sudo uname -a
image

按理说应该使用以下命令卸载不用的内核:

sudo apt-get autoremove [内核名称]

但是现在apt-get 命令已经用不了了,所以将几个比当前系统所使用内核版本低的内核移动到其他文件夹:

先看看boot分区的内核文件:

image

再查看系统当前内核
image

我们可以选几个最低版本的内核,把它们移动到其他文件夹。在本例截图中,只要比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

posted @ 2024-03-02 22:27  Lafite-1820  阅读(32)  评论(0编辑  收藏  举报