问题描述
我无法删除破损的包裹。使用以下命令: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
但是我没有得到任何结果。我无法安装突触。有什么想法可以删除损坏的包装吗?
最佳方案
运行此命令以删除ubuntu中损坏的软件包。
sudo dpkg --remove --force-remove-reinstreq package_name
删除软件包后,使用命令更新系统
sudo apt-get update
成功更新后重新启动系统。
次佳方案
我发现:
sudo dpkg --remove --force-remove-reinstreq <packagename>
效果最好。如果它提示您由于另一个软件包所依赖而无法删除该软件包,则也请删除该另一个软件包。您必须多次重复此步骤,然后重新安装已删除的软件包。
force-remove-reinstreq
是删除程序包的”nuclear option”。只有根据要删除的软件包有另一个软件包时,此操作才会失败-同样,在这种情况下,请删除相关软件包。
第三种方案
打开终端并使用以下命令
sudo dpkg --purge nodejs-legacy
sudo apt-get install -f
它应该可以解决您的问题。
第四种方案
这解决了我的问题:
sudo dpkg -i --force-overwrite /var/cache/apt/archives/nodejs_0.10.28-1chl1~trusty1_amd64.deb
第五种方案
以上都不对我有用。最终,我编辑了/var /lib /dpkg /status文件,并从那里删除了软件包。
艰难的是我不建议这样做,即使其他事情失败了…
第六种方案
打开您的终端,然后逐行粘贴这些行
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
然后再试一次