ubuntu18.04离线安装gcc4.8.5
如果按照网上直接在官网下载gcc4.8.5的源码包安装,make的时候会遇到很多问题,而且并不能保证一定能安装成功。在摸索了一天走了无数弯路之后总算找到一种简单的方式。
下面这两个链接在是网上搜到的常见解决方案,但由于ubuntu18.04自带gcc7.5.0,而且make版本都比较高,对gcc依赖的库也有一定要求,通过手动编译安装费时费力。
- (亲自操刀)Ubuntu18.04 的GCC7.3.0 降级为GCC5.5.0_xrinosvip的博客-CSDN博客
- 记录在Ubuntu18.04编译gcc-4.4.7与glibc-2.20遇到的坑 - Xsuns - 博客园 (cnblogs.com)
下面我介绍一种通用的解决方案,不止用于解决gcc离线安装的问题,也可以解决其他复杂软件离线安装的问题。
-
先找到一台能联网的电脑,清除之前下载应用的缓存。目的是存储完整的gcc包和依赖包到该目录,后续方便移植。
rm -rf /var/cache/apt/archives/*
-
使用apt下载gcc-4.8到缓存目录
sudo apt-get -d install gcc-4.8
- 根据上一步建议安装的内容,按顺序下载
gcc-4.8-locales
、gcc-4.8-multilib
、gcc-4.8-doc
,dbg包可下可不下。 - 使用同样的方式下载g++-4.8,也会提示建议安装其他依赖包,这里只需要下载不重复的
g++-4.8-multilib
至此,gcc的包和其完整依赖包下载完成,打开/var/cache/apt/archives/,将里面所有内容压缩出来,复制到离线环境中。
在离线环境中cd到目录解压后的目录,执行:
sudo dpkg -i *
- gcc4.8.5安装完成,可以通过ll /usr/bin/gcc*查看当前装的gcc都有哪些版本
ll /usr/bin/gcc*
- ubuntu18.04默认gcc版本为7.5.0,如果要使用gcc4.8.5,需要切换。先将gcc4.8.5的软链接加入。
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.7 30 --slave /usr/bin/g++ g++ /usr/bin/g++-4.7
- 再使用
sudo update-alternatives --config gcc
配置,选择对应的编号即可。如图,选择1即可将gcc版本切换到4.8.5。
sudo update-alternatives --config gcc
- 验证当前gcc版本,大功告成。
gcc --version
常见问题:
Q1:下载gcc包时提示有部分包下载失败,无法下载部分文件,报404
A1:删除ppa文件,删除命令
sudo add-apt-repository --remove ppa:/pwntools/binutils
sudo apt-get update