Home

SUSE 11 SP3 编译更新GCC & 编译安装sysstat

由于需要编译安装 sysstat ,但是 SUSE 11 SP3 本身自带的 gcc 版本是 4.0.3,没办法直接编译,需要升级 gcc 版本。

报错如下:

gcc -std=gnu99 -o sadc.o -c -g -O2 -Wall -Wstrict-prototypes -pipe -O2 -fno-tree-slp-vectorize -DSA_DIR="/var/log/sa" -DSADC_PATH="/usr/local/lib64/sa/sadc" -DHAVE_SYS_SYSMACROS_H -DHAVE_LINUX_SCHED_H -DHAVE_SYS_PARAM_H sadc.c
cc1: error: unrecognized command line option "-fno-tree-slp-vectorize"

所以我们需要先源码编译更新 gcc 版本,然后在编译安装 sysstat。

本次打算从 gcc4.0.3 升级到 gcc5.5.0

尝试过直接升级 gcc10.1.0,但是会报错缺少文件,所以暂定升级到 gcc5.5.0

准备安装介质

文件名地址备注
gcc-5.5.0.tar.gzhttps://ftp.gnu.org/gnu/gcc/
mpfr-2.4.2https://gcc.gnu.org/pub/gcc/infrastructure/gcc 依赖
gmp-4.3.2https://gcc.gnu.org/pub/gcc/infrastructure/gcc 依赖
mpc-0.8.1https://gcc.gnu.org/pub/gcc/infrastructure/gcc 依赖

新建一个文件夹存放安装介质

mkdir /gccupdate && cd /gccupdate

解压 GCC

tar -zvxf gcc-5.5.0.tar.gz -C /usr/local/ && ls -la /usr/local/

当前版本 GCC 需要哪些依赖可以通过以下命令进行查看

vim /usr/local/gcc-5.5.0/contrib/download_prerequisites

解压依赖 并创建软链接

把下载的三个依赖都解压到刚刚 GCC 的解压目录/usr/local/gcc-5.5.0

gmp-4.3.2.tar.bz2
tar -jxvf gmp-4.3.2.tar.bz2 -C /usr/local/gcc-5.5.0
---------------
mpc-0.8.1.tar.gz
tar -zxvf mpc-0.8.1.tar.gz -C /usr/local/gcc-5.5.0
---------------
mpfr-2.4.2.tar.bz2
tar -jxvf mpfr-2.4.2.tar.bz2 -C /usr/local/gcc-5.5.0

进入/usr/local/gcc-5.5.0 执行以下命令

ln -sf gmp-4.3.2 gmp
ln -sf mpc-0.8.1 mpc
ln -sf mpfr-2.4.2 mpfr

检查创建是否成功

ls -l | grep ^l

编译并安装 GCC

在目录gcc-10.1.0下面依次执行下面两个命令:

mkdir build && cd build 
../configure -enable-checking=release -enable-languages=c,c++ -disable-multilib

然后在build目录下面执行的命令,编译安装gcc(make -jx 根据核心数 x=核心数,但是根据自己环境性能来决定):

make -j4 && make install


没啥意外就完成了。

更新 GCC

原来的gcc命令位于目录/usr/bin/gcc等目录下面,为了不覆盖原来的命令。将原来的相关内容进行备份处理,执行如下命令:

mv /usr/bin/gcc /usr/bin/gcc403
mv /usr/bin/g++ /usr/bin/g++403
mv /usr/bin/c++ /usr/bin/c++403
mv /usr/bin/cc /usr/bin/cc403
mv /usr/lib64/libstdc++.so.6 /usr/lib64/libstdc++.so.6.bak

安装的gcc新版本位于/usr/local/bin目录下面,需要为新版本gcc创建软链接:

ln -s /usr/local/bin/gcc /usr/bin/gcc
ln -s /usr/local/bin/g++ /usr/bin/g++
ln -s /usr/local/bin/c++ /usr/bin/c++
ln -s /usr/local/bin/gcc /usr/bin/cc
ln -s /usr/local/lib64/libstdc++.so.6.0.21 /usr/lib64/libstdc++.so.6

输入gcc -v查看版本:

gcc -v

编译安装 sysstat

就正常三板斧 configure、make、make install。

需要注意 configure 的时候需要添加参数才能手机 sa 历史监控信息

./configure --enable-install-cron
make
make install
Linux AI