當前位置: 首頁>>技術教程>>正文


apt – 如何刪除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

但是我沒有得到任何結果。我無法安裝突觸。有什麽想法可以刪除損壞的包裝嗎?

最佳方案

運行此命令以刪除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

然後再試一次

參考資料

本文由Ubuntu問答整理, 博文地址: https://ubuntuqa.com/zh-tw/article/10754.html,未經允許,請勿轉載。