Ubuntu18.04离线安装gcc及其依赖,make工具
相当折磨的一次经历,gcc及其相关依赖离线安装。
这台服务器,没有gcc,也没有make。
安装gcc需要make编译,而安装make会提示需要C依赖库。我陷入了沉思。
网上的离线安装教程很多杂而乱,走了大量的弯路试错。
下面我提供一个最简洁的方式去破局:
1.下载gcc7.5整合依赖包
依赖实在是太多太繁琐了,我直接整理一波好吧
总共有18个需要安装,如下:
百度云地址:
链接:https://pan.baidu.com/s/1sHYZMW2-B3A84yD0erFpAA?pwd=lh3f
提取码:lh3f
安装顺序有时候会失败,需要其他的依赖先安装,总之最后都安装完就行。
安装命令:后面加文件名,如:
sudo dpkg -i libatomic1_8.4.0-1ubuntu1~18.04_amd64.deb
依次安装完18个,就可以使用gcc了。
2.安装make
make百度云地址:
链接:https://pan.baidu.com/s/1789DFVFsN1WR52u2xVly2g?pwd=uhk3
提取码:uhk3
安装命令
sudo dpkg -i make_4.1-9.1ubuntu1_amd64.deb
安装成功~
3.安装make工具另一种方法(不推荐)
很多教程的方法, 可以使用make,但会有环境变量问题。
离线安装如下:
1.下载make-3.81.tar.bz2
官网:
百度云地址:
链接:https://pan.baidu.com/s/1uiYYm9J31d6kvlbwuX0J-w?pwd=4ruc
提取码:4ruc
2.解压
tar -xvf make-3.81.tar.bz2
3.编译
./configure
然后
sudo sh build.sh
注意!!!!此时会报一堆乱七八糟的错误,解决方案是
打开文件glob/glob.c,注释掉210行左右的两行代码,具体如下:
//#if !defined __alloca && !defined __GNU_LIBRARY__ 注释这一行
# ifdef __GNUC__
# undef alloca
# define alloca(n) __builtin_alloca (n)
# else /* Not GCC. */
# ifdef HAVE_ALLOCA_H
# include <alloca.h>
# else /* Not HAVE_ALLOCA_H. */
# ifndef _AIX
# ifdef WINDOWS32
# include <malloc.h>
# else
extern char *alloca ();
# endif /* WINDOWS32 */
# endif /* Not _AIX. */
# endif /* sparc or HAVE_ALLOCA_H. */
# endif /* GCC. */
# define __alloca alloca
//#endif 注视这一行
然后再make clean清理之前的失败,之后再make
make clean
make
4.make install
make install
5.配置(有待商榷)
export PATH=/你的make路径/make-3.81:$PATH
source /etc/profile
6.验证
make -v
无法安装驱动,怀疑是make 路径问题,把make 那个文件转移到/usr/bin 目录下
4.GCC的另一种安装方式(编译,不推荐)
为啥不推荐这个呢,因为我失败了,在编译那步,我也不知道为啥失败了
但原博客很多人成功了,所以我放在这里仅供参考。
反正自己编译就会有一堆问题,难顶。。。。。
1.在其他有网的服务器下载安装包
wget https://mirrors.tuna.tsinghua.edu.cn/gnu/gcc/gcc-9.3.0/gcc-9.3.0.tar.gz
wget https://mirrors.tuna.tsinghua.edu.cn/gnu/gmp/gmp-6.1.0.tar.xz
wget https://mirrors.tuna.tsinghua.edu.cn/gnu/mpfr/mpfr-3.1.4.tar.gz
wget https://mirrors.tuna.tsinghua.edu.cn/gnu/mpc/mpc-1.0.3.tar.gz
百度云链接:
链接:https://pan.baidu.com/s/175kWX9oOpzTZivalqMRP-w?pwd=zhdo
提取码:zhdo
2.将所有压缩包移动至/usr/local目录下
/usr/local
3.解压所有压缩包
tar -xvf gcc-9.3.0.tar.gz
然后进入解压的gcc文件夹中,
cd gcc-9.3.0
并将剩余三个压缩包移动到此文件夹中,解压在gcc文件夹中,并依次改名
tar -xvf gmp-6.1.0.tar.xz
mv gmp-6.1.0 gmp
tar -xvf mpfr-3.1.4.tar.gz
mv mpfr-3.1.4 mpfr
tar -xvf mpc-1.0.3.tar.gz
mv mpc-1.0.3 mpc
4.编译安装
注意,建夹实在gcc-9.3.0文件夹内建的
mkdir gcc-build
cd gcc-build
../configure --prefix=/usr/local/gcc-9.3.0 --disable-multilib --enable-languages=c,c++
5.编译
make -j 4
make install -j 4
(或者直接make,make install)
6.更新链接配置
ln -s /usr/local/gcc-9.3.0 /usr/local/gcc
export PATH=/usr/local/gcc/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/gcc/lib64
export MANPATH=/usr/local/gcc/share/man:$MANPATH
7.验证
gcc -v