一切的开头 折腾了我这么多个小时…其实真的只是想试试Linux的编译安装…真的…折腾完后就把这些总结成这几个脚本
编译安装Python3.8.6 虽然上面说是3.8.6 ,但是只要把3.8.6 替换成别的版本理论上也是可以的(当然下面的脚本也一样,记得替换完全),然后CentOS 7自带的gcc 版本过低,会导致编译错误,升级gcc的脚本在下面,然后成功后发现pip3无法下载,上网查了之后发现是因为没有加上--with-ssl
这个参数,为防止失效,请使用source
而不是./
来调用脚本,其实用./也可以但要手动输入一次source /etc/profile
,因为在另一种情况下这行会失效。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 yum -y install zlib-devel bzip2 bzip2-devel readline-devel sqlite sqlite-devel openssl-devel xz xz-devel libffi-devel wget https://mirrors.huaweicloud.com/python/3.8.6/Python-3.8.6.tgz tar -xvf Python-3.8.6.tgz cd Python-3.8.6./configure prefix=/usr/local/python3 --with-ssl make make install echo "PATH=\$PATH:/usr/local/python3/bin" >> /etc/profileecho "export PATH" >> /etc/profilesource /etc/profilepython3 -V
升级gcc到10.2.0 因为gcc 版本过旧所以要升级,稍微修改了一下别人的脚本,但是没做错误退出,也就是说如果编译出错还是会执行下面的mv
和ln
,会导致再次运行脚本的时候会出错无法执行make && make install
,所以不确定的时候请把mv
和ln
注释掉。
另外请注意,编译安装gcc 的时间十分漫长,大概3~4小时 (也有可能是本人虚拟机没设置好的问题),总之,请耐心等待。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 yum -y install perl wget # 修改自https://www.jianshu.com/p/89702b13bc51 wget https://mirrors.ustc.edu.cn/gnu/gcc/gcc-10.2.0/gcc-10.2.0.tar.gz # 解压 tar -xvf gcc-10.2.0.tar.gz cd gcc-10.2.0 ./contrib/download_prerequisites cd .. # 建立编译输出目录 mkdir gcc-build-10.2.0 # 进入下面目录,执行命令,生成Makefile文件 cd gcc-build-10.2.0 ../gcc-10.2.0/configure --enable-checking=release --enable-languages=c,c++ --disable-multilib # 执行命令进行编译,此处利用4个job,需编译时约40分钟,此值不宜设置过高 make -j4 # 安装 make install mv /usr/bin/gcc /usr/bin/gcc.old mv /usr/bin/g++ /usr/bin/g++.old mv /usr/bin/cpp /usr/bin/cpp.old mv /usr/bin/c++ /usr/bin/c++.old ln /usr/local/bin/gcc /usr/bin/gcc ln /usr/local/bin/g++ /usr/bin/g++ ln /usr/local/bin/cpp /usr/bin/cpp ln /usr/local/bin/c++ /usr/bin/c++ gcc -v
整合,同时升级gcc和python rt,开头已预计安装一堆依赖。然后因为升级gcc
要花费很多的时间…所以,耐心的等待吧。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 # 为防止失效,请使用source 而不是./来调用脚本,其实用./也可以但要手动输入一次source /etc/profile # 安装依赖 yum -y install perl wget zlib-devel bzip2 bzip2-devel readline-devel sqlite # Gcc升级部分修改自https://www.jianshu.com/p/89702b13bc51 wget https://mirrors.ustc.edu.cn/gnu/gcc/gcc-10.2.0/gcc-10.2.0.tar.gz # 解压 tar -xvf gcc-10.2.0.tar.gz cd gcc-10.2.0 ./contrib/download_prerequisites cd .. # 建立编译输出目录 mkdir gcc-build-10.2.0 # 进入下面目录,执行命令,生成Makefile文件 cd gcc-build-10.2.0 ../gcc-10.2.0/configure --enable-checking=release --enable-languages=c,c++ --disable-multilib # 执行命令进行编译,此处利用4个job,需编译时约40分钟,此值不宜设置过高 make -j4 # 安装 make install mv /usr/bin/gcc /usr/bin/gcc.old mv /usr/bin/g++ /usr/bin/g++.old mv /usr/bin/cpp /usr/bin/cpp.old mv /usr/bin/c++ /usr/bin/c++.old ln /usr/local/bin/gcc /usr/bin/gcc ln /usr/local/bin/g++ /usr/bin/g++ ln /usr/local/bin/cpp /usr/bin/cpp ln /usr/local/bin/c++ /usr/bin/c++ cd .. # 下载最新的Python源码 wget https://mirrors.huaweicloud.com/python/3.8.6/Python-3.8.6.tgz tar -xvf Python-3.8.6.tgz cd Python-3.8.6 # 编译安装 ./configure prefix=/usr/local/python3 --with-ssl make make install # 添加环境变量 echo "PATH=\$PATH:/usr/local/python3/bin" >> /etc/profile echo "export PATH" >> /etc/profile source /etc/profile gcc -v python3 -V
附赠编译升级openssl的脚本 顺手做了,升级至1_1_1h
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 # 修改自https://www.cnblogs.com/cobcmw/p/11137712.html yum -y install perl wget https://github.com/openssl/openssl/archive/OpenSSL_1_1_1h.tar.gz tar xzvf ./OpenSSL_1_1_1h.tar.gz cd openssl-OpenSSL_1_1_1h/ ./config make make install mv /usr/bin/openssl /usr/bin/openssl.old ln -s /usr/local/bin/openssl /usr/bin/openssl ln -s /usr/local/lib64/libssl.so.1.1 /usr/lib64/ ln -s /usr/local/lib64/libcrypto.so.1.1 /usr/lib64/ openssl version