如何解決錯誤:「軟體包 gcc-8 沒有安裝候選」?我正在嘗試透過 sudo-apt install gcc-8 安裝它

如何解決錯誤:「軟體包 gcc-8 沒有安裝候選」?我正在嘗試透過 sudo-apt install gcc-8 安裝它

我正在嘗試使用 Ubuntu 20.04 終端在我的系統上安裝 OpenFace 工具包。安裝需要 gcc/g++ 版本 8 進行安裝。我檢查了系統上目前的gcc版本,它顯示安裝的版本是gcc-11。有沒有辦法用 gcc-8 取代 gcc-11 版本,或下載 gcc-8 軟體包,然後安裝它?幫助將不勝感激,謝謝。

答案1

gcc-8 軟體包已在 Ubuntu 22.04 及更高版本的預設儲存庫中停止使用,但在 Ubuntu 20.04 預設儲存庫中仍然可用。若要在 Ubuntu 22.04 中安裝 Ubuntu 20.04 的 gcc-8 軟體包,請執行以下命令:

sudo apt update
wget http://mirrors.kernel.org/ubuntu/pool/universe/g/gcc-8/gcc-8_8.4.0-3ubuntu2_amd64.deb
wget http://mirrors.edge.kernel.org/ubuntu/pool/universe/g/gcc-8/gcc-8-base_8.4.0-3ubuntu2_amd64.deb
wget http://mirrors.kernel.org/ubuntu/pool/universe/g/gcc-8/libgcc-8-dev_8.4.0-3ubuntu2_amd64.deb
wget http://mirrors.kernel.org/ubuntu/pool/universe/g/gcc-8/cpp-8_8.4.0-3ubuntu2_amd64.deb
wget http://mirrors.kernel.org/ubuntu/pool/universe/g/gcc-8/libmpx2_8.4.0-3ubuntu2_amd64.deb
wget http://mirrors.kernel.org/ubuntu/pool/main/i/isl/libisl22_0.22.1-1_amd64.deb
sudo apt install ./libisl22_0.22.1-1_amd64.deb ./libmpx2_8.4.0-3ubuntu2_amd64.deb ./cpp-8_8.4.0-3ubuntu2_amd64.deb ./libgcc-8-dev_8.4.0-3ubuntu2_amd64.deb ./gcc-8-base_8.4.0-3ubuntu2_amd64.deb ./gcc-8_8.4.0-3ubuntu2_amd64.deb

原始答案(現已廢棄):

Ubuntu 22.04 及更高版本的預設儲存庫中已停止使用 gcc-8 軟體包。若要在 Ubuntu 22.04 中安裝 Ubuntu 21.10 的 gcc-8 軟體包,請執行以下命令:

sudo apt update
sudo apt remove gcc-11 # optional
wget http://mirrors.kernel.org/ubuntu/pool/universe/g/gcc-8/gcc-8_8.5.0-0ubuntu4_amd64.deb
wget http://mirrors.kernel.org/ubuntu/pool/universe/g/gcc-8/gcc-8-base_8.5.0-0ubuntu4_amd64.deb
wget http://mirrors.kernel.org/ubuntu/pool/universe/g/gcc-8/libgcc-8-dev_8.5.0-0ubuntu4_amd64.deb
wget http://mirrors.kernel.org/ubuntu/pool/universe/g/gcc-8/cpp-8_8.5.0-0ubuntu4_amd64.deb
wget http://mirrors.kernel.org/ubuntu/pool/universe/g/gcc-8/libmpx2_8.5.0-0ubuntu4_amd64.deb
sudo apt install ./libmpx2_8.5.0-0ubuntu4_amd64.deb ./cpp-8_8.5.0-0ubuntu4_amd64.deb ./gcc-8-base_8.5.0-0ubuntu4_amd64.deb ./libgcc-8-dev_8.5.0-0ubuntu4_amd64.deb ./gcc-8_8.5.0-0ubuntu4_amd64.deb

我在上面的命令中刪除了 gcc-11 ,因為您在問題中提到您也想刪除它。如果您想要將 gcc-11 與 gcc-8 一起安裝,請省略該sudo apt remove gcc-11指令。

答案2

另一個解決方案是 Jodeli 提出的“gcc-7”沒有安裝候選者問題。

在終端機中鍵入sudo nano /etc/apt/sources.list並在文件末尾添加以下內容:

deb [arch=amd64] http://archive.ubuntu.com/ubuntu focal main universe

然後執行:

sudo apt update
sudo apt install gcc-8 g++-8

另一個好的做法是使用update-alternatives來管理不同版本的 gcc。例如,如果在執行這些步驟後,您的 /usr/bin 目錄中有 gcc-8 和 gcc-11,請在終端機中執行:

sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-8 10
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-11 20
sudo update-alternatives --config gcc

我不確定它是否比卡雷爾的好很多,因為它們都會導致依賴問題。我想編輯/etc/apt/sources.list會更舒服,因為不必手動下載所有包。

答案3

我認為您沒有將 OpenFace 版本從 2.0.0 升級到 2.2.0

該腳本已在 14 個月前升級。

 ...
 # If we're not on 18.04 
 sudo apt-get -y update
 
 if [[ `lsb_release -rs` != "18.04" ]]   then   
     echo "Adding ppa:ubuntu-toolchain-r/test apt-repository "
     sudo add-apt-repository ppa:ubuntu-toolchain-r/test -y
     sudo apt-get -y update 
 fi
 
 sudo apt-get -y install build-essential
 sudo apt-get -y install gcc-8 g++-8 
 ...

有關的:

https://github.com/TadasBaltrusaitis/OpenFace

希望這可以幫助。

相關內容