如何解决错误:“软件包 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

管理不同版本的 gcc也是一种很好的做法update-alternatives。例如,如果完成这些步骤后,您的 /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

我不确定它是否比 karel 的更好,因为它们都可能导致依赖性问题。我猜编辑/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

希望这可以帮助。

相关内容