如何在 Ubuntu 18.04 上升级 gcc 到 9.4:一步步详细指南
草莓奶忻 2024-07-12 11:37:02 阅读 71
文章目录
问题描述问题解决1.添加 Toolchain 测试 PPA2.安装 GCC 和 G++3.更新替代版本4.验证安装
5.出现报错在执行 sudo apt install gcc-9 g++-9 时,出现以下报错。解决方案更换默认的Ubuntu软件源
问题描述
在尝试编译 PyTorch 时遇到的报错提示需要 GCC 版本 9.3 或更高,但系统中安装的是版本 7.5.0。因此,需要升级 GCC 到至少 9.3 版本。
<code>damon@damon-virtual-machine:/opt/pytorch/build$ sudo python ../tools/build_libtorch.py
cmake -DBUILD_PYTHON=False -DBUILD_TEST=True -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/opt/pytorch/torch -DCMAKE_PREFIX_PATH=/usr/lib/python3.6/site-packages -DNUMPY_INCLUDE_DIR=/usr/lib/python3/dist-packages/numpy/core/include -DPYTHON_EXECUTABLE=/usr/bin/python -DPYTHON_INCLUDE_DIR=/usr/include/python3.6m -DUSE_NUMPY=True /opt/pytorch
-- The CXX compiler identification is GNU 7.5.0
-- The C compiler identification is GNU 7.5.0
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/c++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /usr/bin/cc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
CMake Error at CMakeLists.txt:54 (message):
GCC-9.3 or newer is required to compile PyTorch, but found 7.5.0
-- Configuring incomplete, errors occurred!
See also "/opt/pytorch/build/build/CMakeFiles/CMakeOutput.log".
问题解决
1.添加 Toolchain 测试 PPA
Ubuntu 18.04 默认的源中可能没有 GCC-9.3 或更新版本,因此可以通过添加 Ubuntu Toolchain 测试 PPA 来获取更新的编译器版本。在终端运行以下命令来添加 PPA:
sudo add-apt-repository ppa:ubuntu-toolchain-r/test
sudo apt update
2.安装 GCC 和 G++
安装 GCC-9 和 G+±9(如果你的系统是用 C++ 编写的,也需要 G++):
sudo apt install gcc-9 g++-9
3.更新替代版本
如果系统中安装了多个 GCC 版本,需要配置系统使用新安装的版本作为默认版本。使用以下命令更新替代配置:
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-9 90 --slave /usr/bin/g++ g++ /usr/bin/g++-9
4.验证安装
验证安装的 GCC 版本是否正确:
gcc --version
5.出现报错
在执行 sudo apt install gcc-9 g+±9 时,出现以下报错。
damon@damon-virtual-machine:~$ sudo apt install gcc-9 g++-9
[sudo] damon 的密码:
正在读取软件包列表... 完成
正在分析软件包的依赖关系树
正在读取状态信息... 完成
下列软件包是自动安装的并且现在不需要了:
gir1.2-goa-1.0 gir1.2-snapd-1 linux-hwe-5.4-headers-5.4.0-147
使用'sudo apt autoremove'来卸载它(它们)。
将会同时安装下列软件:
cpp-9 gcc-11-base gcc-13-base gcc-9-base libasan5 libatomic1 libcc1-0
libgcc-9-dev libgcc-s1 libgomp1 libitm1 liblsan0 libquadmath0
libstdc++-9-dev libstdc++6 libtsan0 libubsan1
建议安装:
gcc-9-locales g++-9-multilib gcc-9-doc libstdc++6-9-dbg gcc-9-multilib
libgcc1-dbg libgomp1-dbg libitm1-dbg libatomic1-dbg libasan5-dbg
liblsan0-dbg libtsan0-dbg libubsan1-dbg libquadmath0-dbg libstdc++-9-doc
下列【新】软件包将被安装:
cpp-9 g++-9 gcc-11-base gcc-13-base gcc-9 gcc-9-base libasan5 libgcc-9-dev
libgcc-s1 libstdc++-9-dev libubsan1
下列软件包将被升级:
libatomic1 libcc1-0 libgomp1 libitm1 liblsan0 libquadmath0 libstdc++6
libtsan0
升级了 8 个软件包,新安装了 11 个软件包,要卸载 0 个软件包,有 99 个软件包未被升级。
需要下载 29.7 MB/30.5 MB 的归档。
解压缩后会消耗 122 MB 的额外空间。
N: 忽略‘99proxy.save.1’(于目录‘/etc/apt/apt.conf.d/’),鉴于它的文件扩展名无效
N: 忽略‘99proxy.save.2’(于目录‘/etc/apt/apt.conf.d/’),鉴于它的文件扩展名无效
您希望继续执行吗? [Y/n] Y
获取:1 http://ppa.launchpad.net/ubuntu-toolchain-r/test/ubuntu bionic/main amd64 cpp-9 amd64 9.4.0-1ubuntu1~18.04 [7,489 kB]
获取:2 http://ppa.launchpad.net/ubuntu-toolchain-r/test/ubuntu bionic/main amd64 libcc1-0 amd64 13.1.0-8ubuntu1~18.04 [43.8 kB]
获取:3 http://ppa.launchpad.net/ubuntu-toolchain-r/test/ubuntu bionic/main amd64 libgomp1 amd64 13.1.0-8ubuntu1~18.04 [127 kB]
错误:3 http://ppa.launchpad.net/ubuntu-toolchain-r/test/ubuntu bionic/main amd64 libgomp1 amd64 13.1.0-8ubuntu1~18.04
无法发起与 ppa.launchpad.net:80 (2620:2d:4000:1::81) 的连接 - connect (101: 网络不可达) 无法连接上 ppa.launchpad.net:80 (185.125.190.80)。 - connect (111: 拒绝连接) [IP: 185.125.190.80 80]
错误:4 http://ppa.launchpad.net/ubuntu-toolchain-r/test/ubuntu bionic/main amd64 libitm1 amd64 13.1.0-8ubuntu1~18.04
无法发起与 ppa.launchpad.net:80 (2620:2d:4000:1::81) 的连接 - connect (101: 网络不可达) [IP: 185.125.190.80 80]
错误:5 http://ppa.launchpad.net/ubuntu-toolchain-r/test/ubuntu bionic/main amd64 libatomic1 amd64 13.1.0-8ubuntu1~18.04
无法发起与 ppa.launchpad.net:80 (2620:2d:4000:1::81) 的连接 - connect (101: 网络不可达) [IP: 185.125.190.80 80]
错误:6 http://ppa.launchpad.net/ubuntu-toolchain-r/test/ubuntu bionic/main amd64 libasan5 amd64 9.4.0-1ubuntu1~18.04
无法发起与 ppa.launchpad.net:80 (2620:2d:4000:1::81) 的连接 - connect (101: 网络不可达) [IP: 185.125.190.80 80]
错误:7 http://ppa.launchpad.net/ubuntu-toolchain-r/test/ubuntu bionic/main amd64 liblsan0 amd64 13.1.0-8ubuntu1~18.04
无法发起与 ppa.launchpad.net:80 (2620:2d:4000:1::81) 的连接 - connect (101: 网络不可达) [IP: 185.125.190.80 80]
错误:8 http://ppa.launchpad.net/ubuntu-toolchain-r/test/ubuntu bionic/main amd64 gcc-11-base amd64 11.4.0-2ubuntu1~18.04
无法发起与 ppa.launchpad.net:80 (2620:2d:4000:1::81) 的连接 - connect (101: 网络不可达) [IP: 185.125.190.80 80]
错误:9 http://ppa.launchpad.net/ubuntu-toolchain-r/test/ubuntu bionic/main amd64 libtsan0 amd64 11.4.0-2ubuntu1~18.04
无法发起与 ppa.launchpad.net:80 (2620:2d:4000:1::81) 的连接 - connect (101: 网络不可达) [IP: 185.125.190.80 80]
错误:10 http://ppa.launchpad.net/ubuntu-toolchain-r/test/ubuntu bionic/main amd64 libubsan1 amd64 13.1.0-8ubuntu1~18.04
无法发起与 ppa.launchpad.net:80 (2620:2d:4000:1::81) 的连接 - connect (101: 网络不可达) [IP: 185.125.190.80 80]
错误:11 http://ppa.launchpad.net/ubuntu-toolchain-r/test/ubuntu bionic/main amd64 libquadmath0 amd64 13.1.0-8ubuntu1~18.04
无法发起与 ppa.launchpad.net:80 (2620:2d:4000:1::81) 的连接 - connect (101: 网络不可达) [IP: 185.125.190.80 80]
错误:12 http://ppa.launchpad.net/ubuntu-toolchain-r/test/ubuntu bionic/main amd64 libgcc-9-dev amd64 9.4.0-1ubuntu1~18.04
无法发起与 ppa.launchpad.net:80 (2620:2d:4000:1::81) 的连接 - connect (101: 网络不可达) [IP: 185.125.190.80 80]
错误:13 http://ppa.launchpad.net/ubuntu-toolchain-r/test/ubuntu bionic/main amd64 gcc-9 amd64 9.4.0-1ubuntu1~18.04
无法发起与 ppa.launchpad.net:80 (2620:2d:4000:1::81) 的连接 - connect (101: 网络不可达) [IP: 185.125.190.80 80]
错误:14 http://ppa.launchpad.net/ubuntu-toolchain-r/test/ubuntu bionic/main amd64 libstdc++-9-dev amd64 9.4.0-1ubuntu1~18.04
无法发起与 ppa.launchpad.net:80 (2620:2d:4000:1::81) 的连接 - connect (101: 网络不可达) [IP: 185.125.190.80 80]
错误:15 http://ppa.launchpad.net/ubuntu-toolchain-r/test/ubuntu bionic/main amd64 g++-9 amd64 9.4.0-1ubuntu1~18.04
无法发起与 ppa.launchpad.net:80 (2620:2d:4000:1::81) 的连接 - connect (101: 网络不可达) [IP: 185.125.190.80 80]
已下载 7,171 kB,耗时 1分 26秒 (83.3 kB/s)
E: 无法下载 http://ppa.launchpad.net/ubuntu-toolchain-r/test/ubuntu/pool/main/g/gcc-13/libgomp1_13.1.0-8ubuntu1~18.04_amd64.deb 无法发起与 ppa.launchpad.net:80 (2620:2d:4000:1::81) 的连接 - connect (101: 网络不可达) 无法连接上 ppa.launchpad.net:80 (185.125.190.80)。 - connect (111: 拒绝连接) [IP: 185.125.190.80 80]
E: 无法下载 http://ppa.launchpad.net/ubuntu-toolchain-r/test/ubuntu/pool/main/g/gcc-13/libitm1_13.1.0-8ubuntu1~18.04_amd64.deb 无法发起与 ppa.launchpad.net:80 (2620:2d:4000:1::81) 的连接 - connect (101: 网络不可达) [IP: 185.125.190.80 80]
E: 无法下载 http://ppa.launchpad.net/ubuntu-toolchain-r/test/ubuntu/pool/main/g/gcc-13/libatomic1_13.1.0-8ubuntu1~18.04_amd64.deb 无法发起与 ppa.launchpad.net:80 (2620:2d:4000:1::81) 的连接 - connect (101: 网络不可达) [IP: 185.125.190.80 80]
E: 无法下载 http://ppa.launchpad.net/ubuntu-toolchain-r/test/ubuntu/pool/main/g/gcc-9/libasan5_9.4.0-1ubuntu1~18.04_amd64.deb 无法发起与 ppa.launchpad.net:80 (2620:2d:4000:1::81) 的连接 - connect (101: 网络不可达) [IP: 185.125.190.80 80]
E: 无法下载 http://ppa.launchpad.net/ubuntu-toolchain-r/test/ubuntu/pool/main/g/gcc-13/liblsan0_13.1.0-8ubuntu1~18.04_amd64.deb 无法发起与 ppa.launchpad.net:80 (2620:2d:4000:1::81) 的连接 - connect (101: 网络不可达) [IP: 185.125.190.80 80]
E: 无法下载 http://ppa.launchpad.net/ubuntu-toolchain-r/test/ubuntu/pool/main/g/gcc-11/gcc-11-base_11.4.0-2ubuntu1~18.04_amd64.deb 无法发起与 ppa.launchpad.net:80 (2620:2d:4000:1::81) 的连接 - connect (101: 网络不可达) [IP: 185.125.190.80 80]
E: 无法下载 http://ppa.launchpad.net/ubuntu-toolchain-r/test/ubuntu/pool/main/g/gcc-11/libtsan0_11.4.0-2ubuntu1~18.04_amd64.deb 无法发起与 ppa.launchpad.net:80 (2620:2d:4000:1::81) 的连接 - connect (101: 网络不可达) [IP: 185.125.190.80 80]
E: 无法下载 http://ppa.launchpad.net/ubuntu-toolchain-r/test/ubuntu/pool/main/g/gcc-13/libubsan1_13.1.0-8ubuntu1~18.04_amd64.deb 无法发起与 ppa.launchpad.net:80 (2620:2d:4000:1::81) 的连接 - connect (101: 网络不可达) [IP: 185.125.190.80 80]
E: 无法下载 http://ppa.launchpad.net/ubuntu-toolchain-r/test/ubuntu/pool/main/g/gcc-13/libquadmath0_13.1.0-8ubuntu1~18.04_amd64.deb 无法发起与 ppa.launchpad.net:80 (2620:2d:4000:1::81) 的连接 - connect (101: 网络不可达) [IP: 185.125.190.80 80]
E: 无法下载 http://ppa.launchpad.net/ubuntu-toolchain-r/test/ubuntu/pool/main/g/gcc-9/libgcc-9-dev_9.4.0-1ubuntu1~18.04_amd64.deb 无法发起与 ppa.launchpad.net:80 (2620:2d:4000:1::81) 的连接 - connect (101: 网络不可达) [IP: 185.125.190.80 80]
E: 无法下载 http://ppa.launchpad.net/ubuntu-toolchain-r/test/ubuntu/pool/main/g/gcc-9/gcc-9_9.4.0-1ubuntu1~18.04_amd64.deb 无法发起与 ppa.launchpad.net:80 (2620:2d:4000:1::81) 的连接 - connect (101: 网络不可达) [IP: 185.125.190.80 80]
E: 无法下载 http://ppa.launchpad.net/ubuntu-toolchain-r/test/ubuntu/pool/main/g/gcc-9/libstdc++-9-dev_9.4.0-1ubuntu1~18.04_amd64.deb 无法发起与 ppa.launchpad.net:80 (2620:2d:4000:1::81) 的连接 - connect (101: 网络不可达) [IP: 185.125.190.80 80]
E: 无法下载 http://ppa.launchpad.net/ubuntu-toolchain-r/test/ubuntu/pool/main/g/gcc-9/g++-9_9.4.0-1ubuntu1~18.04_amd64.deb 无法发起与 ppa.launchpad.net:80 (2620:2d:4000:1::81) 的连接 - connect (101: 网络不可达) [IP: 185.125.190.80 80]
E: 有几个软件包无法下载,要不运行 apt-get update 或者加上 --fix-missing 的选项再试试?
damon@damon-virtual-machine:~$
解决方案
检查网络连接:
确保你的设备已连接到互联网并可以访问外部网站。如果你使用代理服务器,检查代理设置是否正确。确认没有防火墙或其他网络安全设备阻止你访问外部 PPA 源。
更新软件源和系统:
在终端运行 sudo apt-get update 命令更新你的软件源列表。这可以确保你的系统有最新的软件信息运行 sudo apt-get upgrade 来更新已安装的软件包到最新版本。
尝试使用 --fix-missing 选项:
使用命令 sudo apt install gcc-9 g+±9 --fix-missing 可以尝试解决因缺失软件包而导致的问题。
更换或禁用问题 PPA 源:
如果持续无法从当前 PPA 源下载,考虑暂时禁用该源。你可以编辑 /etc/apt/sources.list 或
/etc/apt/sources.list.d/ 目录下的相关文件,注释掉引起问题的 PPA 源。可以考虑添加其他可靠的 PPA源或使用默认的 Ubuntu 软件源。
更换默认的Ubuntu软件源
使用主服务器即可
声明
本文内容仅代表作者观点,或转载于其他网站,本站不以此文作为商业用途
如有涉及侵权,请联系本站进行删除
转载本站原创文章,请注明来源及作者。