Ubuntu 18.10 - 如何安装特定版本的gcc

6

免责声明:我已经搜索并阅读了类似的帖子,但它们没有回答我的问题。

我正在运行Ubuntu 18.10,需要安装gcc 8.2.0来构建内核模块。 apt-get想要安装8.3,这与我的内核构建方式不匹配。

我尝试过:

sudo apt-get update
sudo apt-get install gcc:8.2.0

但是我收到了一个错误消息,说找不到该软件包。

我尝试过安装8.3版本然后构建8.2.0并将其安装到/usr/local/bin。这对于一些模块起作用,但是当我尝试为VMWare构建内核模块时,它抱怨该软件包未正确安装。我是CentOS的用户,对基于Debian的发行版不太熟悉。

我在这里找到了gcc 8.2.0,它是Cosmic (18.10)核心的一部分,但我不确定如何安装它。

我还尝试了以下方法:

sudo apt-get install gcc=4:8.2.0-1ubuntu1 --no-upgrade

而且它仍然想要安装8.3版。我需要更改默认设置才能使其正常工作吗?它完全忽略了--no-upgrade选项。


我已经基本确定我想做的事情是不可能的。我下载了8.2.0软件包并尝试在本地安装。它抱怨需要安装8.3版本。Ubuntu如何期望开发人员能够使用用于构建内核的编译器来构建内核模块仍然是个谜。是时候找另一个发行版了。 - Not a machine
2个回答

5
我想在现有的gcc-9安装版本旁边安装gcc-6,并且以下是我的安装步骤。首先,运行sudo apt install gcc-6无法找到软件包,因此我必须添加一个新的包含gcc-6的存储库。为了做到这一点,我首先从Google中找到一个包含gcc-6的存储库,最终进入了https://packages.ubuntu.com/bionic/gcc-6

在那里,我选择了体系结构(amd64),跳转到一个页面上,显示了所有的镜像源。我将第一个镜像源(mirrors.kernel.org/ubuntu)添加到/etc/apt/sources.list中,并运行sudo apt update,然后使用sudo apt install gcc-6安装gcc-6。

为切换gcc版本,我使用以下命令:

sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-6 6
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-9 9

sudo update-alternatives --config g++

恭喜你成功同时安装了两个。只需使用适当的路径即可调用正确的编译器版本。需要设置更新替代才能执行不同版本似乎很麻烦,难道我误读了你的帖子吗? - Not a machine
可能是的,但我还没有尝试过这种方法。使用update-alternatives,我必须使用--install进行一次设置,然后现在可以通过--config选项在不同的版本之间切换。我觉得这并不太麻烦,但如果您不喜欢,我相信您可以设置正确的路径并执行特定的g++/gcc版本。 - Michael Kiros

3

请查看我在 OP 中的新评论。 - Not a machine
根据您提供的链接,我可以将默认的gcc设置为8.2.0,即使安装了8.3,但如果我无法安装8.2.0,这并没有帮助。 - Not a machine

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接