我一直在嘗試在 Debian 中安裝一些程序,這是我第一次使用 Linux,所以我遇到了一些麻煩。當我嘗試安裝build-essential
時:
sudo apt-get install build-essential
或其他類似的命令,它表示沒有“安裝候選者”
我在類似這個問題的其他問題中尋找答案,但找不到解決方案。
答案1
以下錯誤表示您的電腦上E: Package 'build-essential' has no installation candidate
沒有該儲存庫main
sources.list
該build-essential
軟體包可在main
儲存庫。
首先,你應該編輯你的sources.list
:
sudo apt edit-sources
新增以下行(範例sources.list
為main
和contrib
成分):
deb http://httpredir.debian.org/debian jessie main contrib
deb-src http://httpredir.debian.org/debian jessie main contrib
deb http://httpredir.debian.org/debian jessie-updates main contrib
deb-src http://httpredir.debian.org/debian jessie-updates main contrib
deb http://security.debian.org/ jessie/updates main contrib
deb-src http://security.debian.org/ jessie/updates main contrib
儲存並執行以下命令來安裝build-essential
套件:
sudo apt update
sudo apt upgrade
sudo apt install build-essential
答案2
為了讓 Apt 了解可用的軟體包,它需要有效的配置/etc/apt/sources.list
(通常在安裝發行版時正確初始化),並且需要Packages
從配置的網路位置成功下載檔案。常見的錯誤場景包括
- 過時的配置。如果您嘗試使用不再支援的發行版,則曾經正確的 URL 將
/etc/apt/sources.list
不再有效。如果整個伺服器消失,症狀是「找不到檔案」錯誤或「沒有到主機的路由」。 - 防火牆問題阻止 Apt 下載
Packages
文件,具有類似的症狀。如果您能夠從其他地方連接到 Apt 配置的位置,也許您需要使用代理? - 暫時性伺服器錯誤通常會在幾分鐘或幾小時後自行消失。
- 運行失敗
apt-get update
。如果檔案的本機副本Packages
太舊,它們將指向伺服器上的存檔中不再存在的套件版本。
不太常見但可以想像的問題原因可能是錯誤地切換配置文件(從備份恢復?在您的問題中包含足夠的信息,以便我們可以告訴您發行版的常見默認值?),物理連接問題(接口已啟動,您正在執行)能夠連接到例如Googlecurl
或類似的? )和本機磁碟問題(Packages
檔案損壞?磁碟安裝為唯讀?)。如果您從 DVD 安裝,則 Apt 中也可能僅將 DVD 配置為軟體套件來源。
為了更詳細地進行故障排除,任何錯誤訊息或其他症狀都有助於識別錯誤,但了解此等級的系統通常足以自行診斷。
一個小煩惱是,設定 URL 從常規 Apt 輸出中無法清晰可見。配置看起來像
deb http://example.net/path distribution section another
Packages
Apt 本身會填入一些部分來建構伺服器上一個或多個檔案的完整 URL 路徑。透過該--print-uris
選項,您可以看到它到底試圖獲得什麼。