讓舊版 Ubuntu 的 apt-get 重新運作

 當 Linux 的 Repository(軟體庫) 線上化:

早期 Linux 發行版的 Repository 都是以附加光碟的方式發行,克服網路傳輸不便的問題,線上軟體庫並不算十分流行,多數也可能是第二個選項。但以光碟發行的軟體庫,經常會有軟體庫無法即時更新的問題。這時軟體更新就變得麻煩。隨著網際網路發展,個人頻寬變得充裕,網路軟體庫的做法就變的可行。

但過度集中化的方式提供軟體庫服務,導致軟體庫的可用性是掌握在提供商。為了提供有效的服務,許多軟體庫提供商會把舊版的軟體庫從主要的伺服器中移除。這使得老 Linux 版本面臨安裝軟體麻煩的窘境。


最近這個問題不僅僅只在 Linux 上出現,許多軟體廠商也陸續出現類似的問題: 像是 Windows Update 不再提供 Windows 9x 的更新檔案,部分 Windows XP 的更新KB 也從 Windows Update 中移除。


然而... 一般人是不會受到這件事情的影響,只有在安裝舊的軟體,需要環境時,才發覺這個問題惱人至極 (尤其要安裝 gcc 時),但... 有什麼辦法呢 ? 學校 Matlab 的 License 就是 Matlab 7,新的 Ubuntu 沒辦法安裝...


Ubuntu 軟體庫服務的限期:

依據 Canonical 官網的說法,只有符合這些版本的 Ubuntu,Canonical 才會提供軟體庫服務

  1. 從今起算 9個月內 發行的 Ubuntu 版本 (撰寫時是 21.10)
  2. 仍在支援期間的 Ubuntu 長期支援版 (LTS) (撰寫時是 22.04 LTS / 20.04 LTS / 18.04 LTS)
  3. 進入延伸安全維護的 Ubuntu 長期支援版 (LTS) (撰寫時是 16.04 LTS / 14.04 LTS)

如果不是上列的 Ubuntu 版本,其軟體庫會從 Canonical 伺服器中轉移至其他地方。

當使用者使用非上列 Ubuntu 試圖透過 apt-get 安裝軟體時,就會出現類似以下的錯誤:


Ubuntu 舊版軟體庫:

事實上,Canonical 並沒有丟掉這些軟體庫,而是將其從常存取的 release.ubuntu.com 轉移到 old-releases.ubuntu.com。但這就需要我們自己動手修改 「軟體庫來源」,讓這些發行版能重新存取這些資訊。

若要修改 (請注意: $ -> 普通權限,# -> Root 權限):

# gedit /etc/apt/sources.list

用取代工具,把所有不是 old-releases.ubuntu.com 的 *.ubuntu.com 全部改為 old-releases.ubuntu.com

最後儲存,並關閉檔案。


更改軟體庫來源後:

這時重新執行 apt-get 並嘗試安裝軟體,一切正常。


後話:

典藏就像圖書館的封藏書一樣... 仍然會有空間壓力。我並不知道這個服務能持續多久... 也許最後我們都需要自己下載一份屬於這個版本的軟體庫吧 ?


[1] Canonical, "Ubuntu Releases," https://releases.ubuntu.com/

[2] Canonical, "Old Ubuntu Releases," http://old-releases.ubuntu.com/releases/

留言

熱門文章