參考鏈接:http://www.maybe520.net/blog/999/
最近一直不斷地拿ubuntu來做實驗,安裝了各種軟件,終於出現問題了。使用sudo apt-get install 安裝軟件到最后時總是給我這樣的提示:Sub-process /usr/bin/dpkg returned an error code (1)
當我在終端輸入 sudo apt-get autoremove 時則提示:
Errors were encountered while processing:
foomatic-filters
libapache2-mod-php5
php5-cli
php-pear
php5
php5-gd
php5-mysql
samba-common
samba-common-bin
smbclient
E: Sub-process /usr/bin/dpkg returned an error code (1)
看來是我的ubuntu中的一些軟件包出現依賴問題了。該怎么解決呢?
我在網上找到了兩種方法。
方法一是:
打開終端,輸入
cd /var/lib/dpkg/info
sudo rm -f foomatic-filters #即刪掉上面提示到的那些出錯的軟件包
sudo apt-get update -f
sudo apt-get -f install
sudo apt-get upgrade
sudo apt-get install foomatic-filters #即又重新安裝回原來出錯的軟件包
不過由於原文作者提示這種方法可能會有風險,所以我沒有嘗試,我用的是第二種解決方法。
出現E: Sub-process /usr/bin/dpkg returned an error code (1)錯誤提示的第二種解決方法是:
cd /var/lib/dpkg
sudo mv info info.bak #即備份一個info
sudo mkdir info #新建一個新的info目錄
然后采用以下命令重裝那些出錯的軟件包
sudo apt-get –reinstall install 軟件包名
開始我是想在一條命令中同時安裝幾個軟件包,結果還是出現E: Sub-process /usr/bin/dpkg returned an error code (1) 。於是把新的info刪掉,一個個地來安裝,每裝好一個軟件包,就把info刪掉,再新建一個,這樣就沒有提示E: Sub-process /usr/bin/dpkg returned an error code (1) 了。
最后用原來的info.bak 替換新的info
sudo -rf info
sudo mv info.bak info
之后輸入 sudo apt-get update 和 sudo apt-get upgrade 以及sudo apt-get autoremove 都不再有E: Sub-process /usr/bin/dpkg returned an error code (1)了。