前言
ubuntu22.04支持cuda10.7以上的版本,而在一些情况下我们需要用到低级的cuda版本,本文以用ubuntu22.04安装cuda10.1为例。而在ubuntu中最主要的是gcc的变化,我们需要7.5+的gcc,而一般情况下ubuntu22.04只有gcc 11和gcc 12,本文首先教大家如何对gcc进行降级。
参考链接:gcc降级、Ubuntu22.04安装gcc7、apt-get update出现NO_PUBKEY错误的解决方法,感谢以上大佬们的帮助。
gcc降级
添加软件源
Ubuntu22.04 自带的软件源无法成功安装低版本的gcc,我们需要手动添加软件源,通过sudo vim /etc/apt/sources.list 在末尾增加下面源:
deb http://dk.archive.ubuntu.com/ubuntu/ xenial main
deb http://dk.archive.ubuntu.com/ubuntu/ xenial universe
更新软件源
sudo apt update
此时可能出现如下错误:
error: http://security.ubuntu.com trusty-security Release:
The following signatures couldn't be verified because the public key is not
available: NO_PUBKEY 40976EAF437D05B5 NO_PUBKEY 3B4FE6ACC0B21F32
这时我们将key进行替换:
apt-key adv --recv-keys --keyserver keyserver.ubuntu.com 3B4FE6ACC0B21F32
apt-key adv --recv-keys --keyserver keyserver.ubuntu.com 40976EAF437D05B5
再执行:
sudo apt update
安装gcc-7
sudo apt-get install gcc-7
此时可能出现如下错误:
shimo@shimo-X542UN:~$ sudo apt-get install gcc-7 g++-7
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
Package g++-7 is not available, but is referred to by another package.
This may mean that the package is missing, has been obsoleted, or
is only available from another source
Package gcc-7 is not available, but is referred to by another package.
This may mean that the package is missing, has been obsoleted, or
is only available from another source
E: Package 'gcc-7' has no installation candidate
E: Package 'g++-7' has no installation candidate
这是因为ubuntu22.04只支持gcc11以上的版本,并且gcc7的软件源不在package中,因此再在source.list添加源,方法如下:
首先vim进入source.list
sudo vim /etc/apt/sources.list
再将源填写到最后一行:
deb [arch=amd64] http://archive.ubuntu.com/ubuntu focal main universe
最后执行安装gcc7
sudo apt-get install gcc-7
更换gcc版本
ls /usr/bin/gcc*
查看当前Ubuntu系统中的所有 gcc 编译器版本,我们会发现刚才安装的gcc-7 版本的编译器也在里面。
此时执行如下代码更换gcc优先顺序:
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-7 2 # 将 gcc 11的优先级设为 1
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-11 1
再次查看gcc版本:
gcc --version
检查是否替换到gcc-7。
安装CUDA10.1
链接:cuda10.1版本
选择对应版本进行安装,可以参考Linux下安装cuda的教程,比较简单这里不再展开介绍。