魏晓东 发表于 9 小时前

gcc升级(含命令行升级、手动升级两种方式)

1.yum源替换

默认yum源不可用,替换为国内源
替换前:
https://i-blog.csdnimg.cn/direct/6fe28d93400647a084268f28397c8f6c.png
1.1 备份原始repo设置文件

cd /etc/yum.repos.d/
mkdir bak
mv CentOS-* bak/
https://i-blog.csdnimg.cn/direct/1839b046caa143a3b00f0862ea607e18.png
1.2 重新设置CentOS-Base.reporepo文件

若服务器有wget命令,可复制下述命令直接从互联网拉取阿里配置源到服务器
wget https://mirrors.aliyun.com/repo/Centos-7.repo -O /etc/yum.repos.d/CentOS-Base.repo

若服务器为最小化安装,没有wget命令,可以直接在/etc/yum.repos.d/目录下,创建名称为CentOS-Base.repo的文件,把下述内容复制到配置文件中
CentOS-Base.reporepo全内容

name=CentOS-$releasever - Base - mirrors.aliyun.com
failovermethod=priority
baseurl=http://mirrors.aliyun.com/centos/$releasever/os/$basearch/
      http://mirrors.aliyuncs.com/centos/$releasever/os/$basearch/
      http://mirrors.cloud.aliyuncs.com/centos/$releasever/os/$basearch/
gpgcheck=1
gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7

#released updates

name=CentOS-$releasever - Updates - mirrors.aliyun.com
failovermethod=priority
baseurl=http://mirrors.aliyun.com/centos/$releasever/updates/$basearch/
      http://mirrors.aliyuncs.com/centos/$releasever/updates/$basearch/
      http://mirrors.cloud.aliyuncs.com/centos/$releasever/updates/$basearch/
gpgcheck=1
gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7

#additional packages that may be useful

name=CentOS-$releasever - Extras - mirrors.aliyun.com
failovermethod=priority
baseurl=http://mirrors.aliyun.com/centos/$releasever/extras/$basearch/
      http://mirrors.aliyuncs.com/centos/$releasever/extras/$basearch/
      http://mirrors.cloud.aliyuncs.com/centos/$releasever/extras/$basearch/
gpgcheck=1
gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7

#additional packages that extend functionality of existing packages

name=CentOS-$releasever - Plus - mirrors.aliyun.com
failovermethod=priority
baseurl=http://mirrors.aliyun.com/centos/$releasever/centosplus/$basearch/
      http://mirrors.aliyuncs.com/centos/$releasever/centosplus/$basearch/
      http://mirrors.cloud.aliyuncs.com/centos/$releasever/centosplus/$basearch/
gpgcheck=1
enabled=0
gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7

#contrib - packages by Centos Users

name=CentOS-$releasever - Contrib - mirrors.aliyun.com
failovermethod=priority
baseurl=http://mirrors.aliyun.com/centos/$releasever/contrib/$basearch/
      http://mirrors.aliyuncs.com/centos/$releasever/contrib/$basearch/
      http://mirrors.cloud.aliyuncs.com/centos/$releasever/contrib/$basearch/
gpgcheck=1
enabled=0
gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7
修改后:
https://i-blog.csdnimg.cn/direct/251a49891df54b6d96b7d565470e869d.png
1.3 扫除缓存并重新创建

yum clean all
yum makecache
https://i-blog.csdnimg.cn/direct/bd0b142546ef4656a39f5990cb4ea600.png
2. gcc安装

yum -y install gcc gcc-c++
安装后,默认版本为:4.8.5
https://i-blog.csdnimg.cn/direct/f0cecfd33d7c47b2b925e5b3c8116461.png
3.命令行升级gcc

yum -y install centos-release-scl
yum -y install devtoolset-9-gcc devtoolset-9-gcc-c++ devtoolset-9-binutilse
scl enable devtoolset-9 bash
echo "source /opt/rh/devtoolset-9/enable">> /etc/profile
执行过程中出现非常信息:
1.安装:centos-release-scl时正常,安装:devtoolset-9-gcc、devtoolset-9-gcc-c++、devtoolset-9-binutilse时出现报错
https://i-blog.csdnimg.cn/direct/631e425410844e27b2911a2204991bbb.png
办理方法: 检察报错信息,报错为:CentOS-SCLo-scl-rh.repo文件地址无法访问
利用阿里对应的设置文件,修改改文件内容
CentOS-SCLo-scl-rh.repo文件全内容

name=CentOS-$releasever - SCLo rh
baseurl=https://mirrors.aliyun.com/centos/$releasever/sclo/$basearch/rh/
gpgcheck=1
enabled=1
gpgkey=https://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7
CentOS-SCLo-scl.repo文件内容

name=CentOS-$releasever - SCLo sclo
baseurl=https://mirrors.aliyun.com/centos/$releasever/sclo/$basearch/sclo/
gpgcheck=1
enabled=1
gpgkey=https://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7
2.扫除缓存,重新创建缓存后,再次安装devtoolset-9-gcc、devtoolset-9-gcc-c++、devtoolset-9-binutilse出现非常信息
https://i-blog.csdnimg.cn/direct/532136d5bd6c4f778c02184df8a27733.png
办理方法: 检察报错信息为密钥题目,实验在安装时候,直接安装,不校验密钥
yum -y install devtoolset-9-gcc devtoolset-9-gcc-c++ devtoolset-9-binutilse --nogpgcheck
乐成安装
https://i-blog.csdnimg.cn/direct/8a13243af7ef4709b7a4cd0cfe216bcf.png
在当前shell终端中使devtoolset-9见效,设置永世利用devtoolset-9,检察gcc版本,已经乐成升级到9.3.1
https://i-blog.csdnimg.cn/direct/f8ae6cccb0f44941bf27ca6f2d088a2e.png
4.手动升级

以9.3.0为例
4.1 安装包下载

# 创建存放目录
mkdir -p /apps/scripts
cd /apps/scripts/

# gcc安装包下载
下载地址:https://mirrors.aliyun.com/gnu/gcc/gcc-9.3.0/gcc-9.3.0.tar.gz
可下载后上传,或直接在服务器上从互联网拉取
wget https://mirrors.aliyun.com/gnu/gcc/gcc-9.3.0/gcc-9.3.0.tar.gz
https://i-blog.csdnimg.cn/direct/81a026e9893c49a9a7c0b351de8f80df.png
4.2 解压

tar -xzf gcc-9.3.0.tar.gz
cd gcc-9.3.0
https://i-blog.csdnimg.cn/direct/c6b0536334a34e069431c433fd805387.pnghttps://i-blog.csdnimg.cn/direct/d328528c65614e1c9776c9a035791dd1.png
# mkdir build

# cd build/

# …/configure --prefix=/usr/local/gcc-10.1.0/ --enable-checking=release --enable-languages=c,c++ --disable-multilib
4.3 gcc升级

4.3.1 依靠拉取

cd /apps/scripts/gcc-9.3.0/

./contrib/download_prerequisites
// 在gcc-9.3.0目录下,多了gmp-6.1.0.tar.bz2、isl-0.18.tar.bz2、mpc-1.0.3.tar.gz、mpfr-3.1.4.tar.bz2四个压缩文件
// 若已经安装了bzip2命令,则会自动解压上述压缩包
// 演示环境为最小化安装,目前未安装bzip2命令
https://i-blog.csdnimg.cn/direct/e146f1f794f844699d57c3618bfe23ca.png
4.3.2 gmp安装

解压gmp
cd /apps/scripts/gcc-9.3.0/
tar -xvjf gmp-6.1.0.tar.bz2
解压报错:
tar (child): bzip2: Cannot exec: No such file or directory
tar (child): Error is not recoverable: exiting now
tar: Child returned status 2
tar: Error is not recoverable: exiting now
https://i-blog.csdnimg.cn/direct/a447651a686f44f89170668c2f820b23.png
安装bzip2后,重新解压
安装bzip2
yum -y install bzip2 m4
// bzip2:解决上述报错m4:解决configure过程中报错

继续安装gmp
tar -xvjf gmp-6.1.0.tar.bz2
cd /apps/scripts/gcc-9.3.0/gmp-6.1.0
./configure --prefix=/usr/local/gmp-6.1.0
make
make install
解压完成
https://i-blog.csdnimg.cn/direct/06c3c08eca4c46469ac3120b15ac3997.png
configure 完成
https://i-blog.csdnimg.cn/direct/4ea3c7157f7d49e1a32ee4b46af5144f.png
make完成
https://i-blog.csdnimg.cn/direct/72fe905ac17840778ad0fe71c3145a59.png
make install完成
https://i-blog.csdnimg.cn/direct/c425b885a9e8425399539547f81b1c67.png
https://i-blog.csdnimg.cn/direct/eec9345ea0944dd4a1ed28d9a0657c93.png
4.3.3 mpfr安装

cd /apps/scripts/gcc-9.3.0/
tar -xvjf mpfr-3.1.4.tar.bz2
cd mpfr-3.1.4
./configure --prefix=/usr/local/mpfr-3.1.4 --with-gmp=/usr/local/gmp-6.1.0
make
make install
解压完成
https://i-blog.csdnimg.cn/direct/eec6e8cefa3b439a968d066c454c250c.png
configure 完成
https://i-blog.csdnimg.cn/direct/22bd078b4b064db0ad018158f5fae298.png
make完成
https://i-blog.csdnimg.cn/direct/384440a8f144467db71d89d6368d6d8a.png
make install 完成
https://i-blog.csdnimg.cn/direct/d4a6f4c9fce04c86ad445bcea3143f1b.pnghttps://i-blog.csdnimg.cn/direct/809ec6c5c1944be499b3f3742b5d8fd8.png
4.3.4 mpc安装

cd /apps/scripts/gcc-9.3.0/
tar -xvf mpc-1.0.3.tar.gz
cd mpc-1.0.3
./configure --prefix=/usr/local/mpc-1.0.3 --with-gmp=/usr/local/gmp-6.1.0 --with-mpfr=/usr/local/mpfr-3.1.4
make
make install
解压完成
https://i-blog.csdnimg.cn/direct/a6fb0ffaa91345869d73af230547b08c.png
configure 完成
https://i-blog.csdnimg.cn/direct/eb02405d17f84384a595cbdf98d508ae.png
make完成
https://i-blog.csdnimg.cn/direct/e9a4a43e1791404c949563df51449493.png
make install 完成
https://i-blog.csdnimg.cn/direct/03a4d670381a422ca30a8010035bbe91.png
https://i-blog.csdnimg.cn/direct/791b3218da704f99a52db5c3b90458c5.png
4.3.5 gcc编译、安装

cd /apps/scripts/gcc-9.3.0
mkdir build
cd build/
../configure --prefix=/usr/local/gcc-9.3.0/ --enable-checking=release --enable-languages=c,c++ --disable-multilib --with-gmp=/usr/local/gmp-6.1.0 --with-mpfr=/usr/local/mpfr-3.1.4 --with-mpc=/usr/local/mpc-1.0.3
make
yum -y remove gcc gcc-c++
make install
configure 完成
https://i-blog.csdnimg.cn/direct/28fd6896020e485f897184bebcbc2076.png
make完成–好久好久
https://i-blog.csdnimg.cn/direct/fd27a75238d148c8a90438e4503f0dec.png
build目次下对应文件巨细
https://i-blog.csdnimg.cn/direct/d28975c3d1a5400ea04bc7d871055248.png
旧版本删除完成
https://i-blog.csdnimg.cn/direct/3e70839b740641548d1489d691792c78.png
GCC安装完成
https://i-blog.csdnimg.cn/direct/5026b48a14ff4ed89c432dfd8d500362.png
4.4 gcc命令设置

ln -s /usr/local/gcc-9.3.0/bin/gcc /usr/bin/gcc
ln -s /usr/local/gcc-9.3.0/bin/g++ /usr/bin/g++
gcc -v
https://i-blog.csdnimg.cn/direct/3265e7960de74551927e48a9bd4f8836.png

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: gcc升级(含命令行升级、手动升级两种方式)