在ubuntu中,如何删除损坏的软件包

分享于 

3分钟阅读

ubuntu

  繁體

问题

我我无法删除损坏的软件包。我使用了以下命令:sudo apt-get -f install 但得到了以下响应:


Preparing to unpack .../nodejs_0.10.28-1chl1~trusty1_amd64.deb ...


Unpacking nodejs (0.10.28-1chl1~trusty1) over (0.10.25~dfsg2-2ubuntu1) ...


dpkg: error processing archive /var/cache/apt/archives/nodejs_0.10.28-1chl1~trusty1_amd64.deb (--unpack):


 trying to overwrite '/usr/share/man/man1/node.1.gz', which is also in package nodejs-legacy 0.10.25~dfsg2-2ubuntu1


dpkg-deb: error: subprocess paste was killed by signal (Broken pipe)


Processing triggers for man-db (2.6.7.1-1) ...


Errors were encountered while processing:


 /var/cache/apt/archives/nodejs_0.10.28-1chl1~trusty1_amd64.deb


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



我尝试了各种命令


 2015 sudo apt-get clean


 2020 sudo dpkg --configure -a


 2023 sudo apt-get autoremove


 2034 sudo apt-get upgrade && sudo apt-get -f install



没有得到结果。


答案1

运行此命令删除ubuntu中损坏的软件包。


sudo dpkg --remove --force-remove-reinstreq package_name 



删除软件包后用命令更新系统

sudo apt-get update

成功更新后重新启动系统。


答案2

打开终端并使用以下命令


sudo dpkg --purge nodejs-legacy


sudo apt-get install -f



应该能解决你的问题。


答案3

我发现:


sudo dpkg --remove --force-remove-reinstreq <packagename>



效果最好。如果它提示您由于另一个软件包所依赖而无法删除该软件包,则删除另一个软件包。你必须重复此步骤几次,然后重新安装已删除的软件包。

force-remove-reinstreq是删除软件包的"核选项"。


答案4

打开终端,并逐行粘贴这些行


sudo rm -rf /var/cache/apt/archives/nodejs_0.10.28-1chl1~trusty1_amd64.deb


sudo apt-get autoclean


sudo apt-get update


sudo apt-get upgrade



然后再试一次


答案5

这解决了问题:


sudo dpkg -i --force-overwrite /var/cache/apt/archives/nodejs_0.10.28-1chl1~trusty1_amd64.deb





bro  PAC  PACK  Ubuntu  DEL  APT  
相关文章