顯示具有 apt-get 標籤的文章。 顯示所有文章
顯示具有 apt-get 標籤的文章。 顯示所有文章

2021年7月7日 星期三

[Linux] 修復 Ubuntu 12.04 無法安裝軟體 - W: Failed to fetch 404 @ Ubuntu 12.04

老機器環境:

$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 12.04.5 LTS
Release: 12.04
Codename: precise

主要是在 server 運行 apt-get update 時,會出現一堆 404 問題:

W: Failed to fetch http://archive.ubuntu.com/ubuntu/dists/precise-backports/multiverse/binary-i386/Packages 404

追了一下應當是 12.04 已經不維護了。運氣不錯,有找到 old-releases.ubuntu.com 位置:
  • https://archive.ubuntu.com/ubuntu/
  • https://old-releases.ubuntu.com/ubuntu/
接著就動手換掉 /etc/apt/sources.lis 即可,包括來源 server 換完後,記得要再把 /var/lib/apt/lists 先移除:

$ sudo mv /var/lib/apt/lists /var/lib/apt/lists-backup
$ sudo mkdir -p /var/lib/apt/lists
$ sudo apt-get update

如此就會修復相關資訊,可以在靠 apt-get 安裝軟體了。

此外,若剛好在除錯時,刪除了已安裝過的軟體,接著做了上述後,又要安裝時,會碰到資訊對不上的問題,如:

dpkg:error processing package XXX (--configure):
subprocess installed post-installation script returned error exit status 10

解法就是清除 /var/lib/dpkg/info/ 下相關套件的資料後,重新安裝或是跑完後續流程:

$ sudo mkdir /var/lib/dpkg/info/backup
$ sudo mv /var/lib/dpkg/info/XXX* /var/lib/dpkg/info/backup/
$ sudo apt-get install -f

2015年3月18日 星期三

[Linux] 透過 dpkg 指令,完整移除軟體 @ Ubuntu 14.04

有時為了製作乾淨的測試環境,多安裝的軟體會透過 apt-get remove package 來移除,並用 apt-get autoremove 清掉相依軟體。例如原本想安裝 php,偷懶用:

$ sudo apt-get install php5

結果系統就幫你裝了一卡車 apache2 相關東西,但你其實是想用 nginx 而已。

這時若只透過 apt-get remove 反安裝 apache2 後,系統還會遺留 /etc/apache2 的設定檔,為了避免後續維護誤導其他人,最佳的方式還是把這些東西都清光,此時就可透過 dpkg -P package 的方式清一清。

$ sudo dpkg -P apache2

如果有一卡車的東西,可以用 dpkg --get-selections 來查詢。連續動作(強烈建議先看過 dpkg --get-selections | grep deinstall 結果再使用):

$ dpkg --get-selections | grep deinstall | xargs sudo dpkg -P