彻底解决ubuntu下报错E: Sub-process /usr/bin/dpkg returned an error code (1)

问题描述:

使用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 [刚才移动的内核]

  • 24
    点赞
  • 89
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
引用\[1\]和\[2\]中提到的错误信息是由于在使用apt-get安装软件时出现的问题。这些错误通常是由于软件包的配置脚本返回了错误的退出状态所致。解决这些问题的方法可以是删除相关的文件夹并重新创建,或者解决依赖关系问题。引用\[3\]中提到的解决方法是删除info文件夹并重新创建。对于你提到的错误信息"Errors were encountered while processing: docker-ce E: Sub-process /usr/bin/dpkg returned an error code (1)",你可以尝试使用类似的方法来解决问题。具体来说,你可以尝试删除相关的文件夹并重新创建,或者解决可能存在的依赖关系问题。 #### 引用[.reference_title] - *1* [UbuntuSub-process /usr/bin/dpkg returned an error code (1)解决方法](https://blog.csdn.net/zong596568821xp/article/details/82316558)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [E: Sub-process /usr/bin/dpkg returned an error code (1)解决办法](https://blog.csdn.net/stickmangod/article/details/85316142)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [ubuntudpkg: Error processing package或Sub-process /usr/bin/dpkg returned an error code (1)解决方法](https://blog.csdn.net/shizheng_Li/article/details/124572096)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值