非root权限升级(修改当前用户)Linux gcc版本
参考链接:
非root权限升级(修改当前用户)Linux gcc版本
没有root权限,Linux离线升级gcc
步骤记录
- 下载指定版本gcc(以5.50为例)以及对应版本的4个包
不同的gcc版本对其他四个包的依赖版本不一样,所以需要先下载gcc 安装包,然后查看需要的依赖包的对应版本,再安装gcc
- GCC下载地址:
https://ftp.gnu.org/gnu/gcc/ - 解压GCC压缩包(
tar -zxvf gcc-5.5.0.tar.gz
),查看目录下的./contrib/download_prerequisites文件:
cat gcc-5.5.0/contrib/download_prerequisites
如下图红色部分,查看四个版本包对应的版本,到蓝色框的地址进行下载(身份选访客)。
下载结果:
- 将4个包拷贝到gcc解压后的根目录下,并执行上上图中绿色的指令
cd gcc-5.5.0
tar xjf mpfr-2.4.2.tar.bz2
ln -sf mpfr-2.4.2 mpfr
tar xjf gmp-4.3.2.tar.bz2
ln -sf gmp-4.3.2 gmp
tar xzf mpc-0.8.1.tar.gz
ln -sf mpc-0.8.1 mpc
tar xjf isl-0.14.tar.bz2
ln -sf isl-0.14 isl
- 编译gcc(用系统的gcc去编译新的gcc),安装
在gcc解压缩根目录下新建一个文件夹,然后进入在里面配置编译安装
- 注意!要把下面的path/to/install改成要安装GCC的目录
mkdir objdir
cd objdir
../configure --disable-checking --enable-languages=c,c++ --disable-multilib --prefix=/path/to/install/gcc-5.4 --enable-threads=posix
make -j64 # 多线程编译,否则很慢很慢很慢,能多开就多开几个线程【如果这一步报错,见下面解决】
make install
- 为当前用户配置系统环境变量
打开~/.bashrc文件:
vim ~/.bashrc
在末尾加入:
export PATH=/path/to/install/gcc-5.5/bin:/path/to/install/gcc-5.5/lib64:$PATH
export LD_LIBRARY_PATH=/path/to/install/gcc-5.5/lib/:$LD_LIBRARY_PATH
更新一下:执行
source ~/.bashrc
完成!
报错记录和解决
- 在执行
make -j64
的时候报错:*** LIBRARY_PATH shouldn‘t contain the current directory when *** building gcc.
解决办法,执行:
export LIBRARY_PATH=$(echo $LIBRARY_PATH | sed 's/:$//; s/^://;')
export C_INCLUDE_PATH=$(echo $C_INCLUDE_PATH | sed 's/:$//; s/^://;')
再重新执行make -j64