由于開發需要將tencentos2.4的GCC版本升級到和cat /proc/version中GCC8.4較接近的版本。
過程如下:
首先 ls -al /etc/yum.repos.d/
觀察tlinux.repo
可以看到類似:
[tlinux]
name=tlinux-$releasever - tlinux
baseurl=http://mirrors.tencent.com/tlinux/$releasever/tlinux/$basearch/
??????? http://mirrors.tencentyun.com/tlinux/$releasever/tlinux/$basearch/
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-Tlinux-2
打開鏈接http://mirrors.tencent.com/tlinux/
可以直觀判斷出releasever對應的是2.4這種,basearch對應的是x86_64
在Index of /tlinux/2.4/? 目錄下看到有gcc-updates目錄,里面是gcc-c++-8.5,盡管和/proc/version中不完全一致,但想必就是我們可以升級的版本。
接下來:
修改tlinux.repo
增加一項:
[tlinux-gcc-updates]
name=tlinux-$releasever - tlinux-gcc-updates
baseurl=http://mirrors.tencent.com/tlinux/$releasever/gcc-updates/$basearch/
enabled=1
gpgcheck=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-Tlinux-2
保存后, yum clean all 再yum makecache
此時直接安裝yum install gcc-c++,提了沖突,因為本機存在gcc4.8低版本。
先卸載舊版本GCC,yum remove gcc-c++
繼續查詢舊版本GCC相關項是否都清理掉了:
yum list installed | grep gcc
compat-gcc-44.x86_64 4.4.7-8.tl2 @tlinux-os/7
compat-gcc-44-c++.x86_64 4.4.7-8.tl2 @tlinux-os/7
gcc.x86_64 4.8.5-44.tl2.1 @tlinux
gcc-gfortran.x86_64 4.8.5-44.tl2.1 @tlinux
gcc-objc.x86_64 4.8.5-44.tl2.1 @tlinux
libgcc.x86_64 4.8.5-44.tl2.1 @tlinux
以上可以看到有多個結果。
繼續清理:
yum remove compat-gcc-44
yum remove gcc
接中再次查詢yum list installed | grep gcc,發現只剩下libgcc,保留著。
接下來yum install gcc-c++即可。
如果多個repo源都有GCC,可以通過如下命令來指定源中的包。
yum --disablerepo="*" --enablerepo="tlinux-gcc-updates" install gcc-c++