分类 Linux 下的文章

必备组件安装

yum install -y gcc gcc-c++ bzip2

下载gcc源代码

wget https://ftp.gnu.org/gnu/gcc/gcc-7.3.0/gcc-7.3.0.tar.gz

解压

tar -zxvf gcc-7.3.0.tar.gz

到源代码目录

cd gcc-7.3.0

下载一些必须的东西

./contrib/download\_prerequisites

如果下载不下来,或者下载缓慢可以考虑查看命令行拿到下载地址自己down下拉后,放到源代码目录。(我是耐着性子等了很久才有反应,估计等了半小时)
具体地址:ftp://gcc.gnu.org/pub/gcc/infrastructure/,
直接等待的话,会自动下载下面几个文件。
gmp='gmp-6.1.0.tar.bz2'
mpfr='mpfr-3.1.4.tar.bz2'
mpc='mpc-1.0.3.tar.gz'
isl='isl-0.16.1.tar.bz2'

接着创建一个目录,用于gcc build

mkdir gcc-build-7.3.0

cd到build目录,准备开始编译了。

cd gcc-build-7.3.0

编译的config,disable-multilib 64位编译标记。具体可查看官方文档

../configure -enable-checking=release -enable-languages=c,c++ -disable-multilib

接着就是漫长的编译等待了

不知是否可以使用make -j8之类的开启多核编译是否会快一点,我反正是等了好2个小时

make
make install

重新建立软连接

find / -name "libstdc++.so*" #找到自己的文件路径

把libstdc++.socopy到/usr/lib64目录,类似下面的命令,我是在自己的temp目录下进行的

cp /temp/gcc-7.3.0/gcc-build-7.3.0/x86_64-pc-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so.6.0.24 /usr/lib64/
cd /usr/lib64 
rm -rf libstdc++.so.6 #删除原来的
ln -s libstdc++.so.6.0.24 libstdc++.so.6 #重新建立软连

安装完成后,执行gcc -v查看一下GCC版本,如果版本号没变,就需要再做下一步:

mv /usr/bin/gcc /usr/bin/gcc-4.8.5
mv /usr/bin/g++ /usr/bin/g++-4.8.5
mv /usr/local/bin/gcc /usr/local/bin/gcc-9.2.0
mv /usr/local/bin/g++ /usr/local/bin/g++-9.2.0

alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.8.5 10 \
--slave /usr/bin/g++ g++ /usr/bin/g++-4.8.5

alternatives --install /usr/bin/gcc gcc /usr/local/bin/gcc-7.3.0 20 \
--slave /usr/bin/g++ g++ /usr/local/bin/g++-7.3.0

alternatives --config gcc

选择对应的版本 我是选择2, 即7.3.0版本

还可以参考这一篇https://www.cnblogs.com/liranowen/p/11639929.html

下载文件

wget https://www.python.org/ftp/python/3.7.8/Python-3.7.8.tgz

解压

tar zxvf Python-3.7.8.tgz

安装所需依赖

yum install openssl-devel bzip2-devel expat-devel gdbm-devel readline-devel sqlite-devel zlib-devel ncurses-devel tk-devel libffi-devel gcc make

进入目录

cd Python-3.7.8

必须加上--with-ssl (如果不带ssl可能会导致后面pip链接网络失败,也就安装不了python的其他的包了。而使用ssl之前一定要先安装openssl-devel)

./configure --prefix=/usr/local/python3 --with-ssl

make
make install

注意设置软链时用/usr/bin/python3 不要设置成python 不然会合和python2冲突

ln -s /usr/local/python3/bin/python3.7 /usr/bin/python3
ln -s /usr/local/python3/bin/pip3 /usr/bin/pip3

验证版本号

python3 -V
pip3 -V