首页 > 系统相关 >升级linux下的python版本(3.10.11)

升级linux下的python版本(3.10.11)

时间:2023-11-07 09:56:10浏览次数:39  
标签:11 python openssl devel 3.10 usr ## perl local

以centos7为例 将python升级到3.10.11

一、安装必备软件包

## 第一步 基础包
yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel libpcap-devel xz-devel gcc
## 第二步 安装db4-devel,必先安装epel-release
yum install epel-release
yum install db4-devel

二、安装与python3.10.11兼容的openssl版本(注:未提前安装会报如下错误),官方说是1.1.1或者更高的版本都可以,这里以openssl3.0.0为例 

 1、下载源码并解压到指定目录

wget --no-check-certificate https://www.openssl.org/source/openssl-3.0.0.tar.gz
tar -zxf openssl-3.0.0.tar.gz -C /opt/tools/

 2、编译安装openssl

## 安装perl-podlators,openssl高版本依赖pod2man命令,需要提前安装
yum install perl-podlators
./config --prefix=/usr/local/openssl
make -j && make install

 如上错误,若没有perl,则需要先安装perl

 2.1 安装prel 所需的依赖

yum install readline-devel pcre-devel openssl-devel gcc

2.2 下载perl源码,进行编译安装,以 perl 5.28.1 为例

## 下载源码
wget http://www.cpan.org/src/5.0/perl-5.28.1.tar.gz
tar -zxf perl-5.28.1.tar.gz /opt/tools/
## 编译配置
./Configure -des -Dprefix=/usr/local/perl 
## 编译安装
make && make install
## 查看安装完成后的版本
perl -v

3、继续编译安装openssl,完成之后,查看opessl安装目录(/usr/local/openssl),若只有lib64,没有lib目录时,需要从lib64拷贝一份

cp -r lib64/ lib

4、查看安装后openssl版本,得到如下错误

 两种解决方案:

第一种 执行以下命令即可:
ln -s /usr/local/openssl/lib/libssl.so.3 /usr/lib/libssl.so.3
ln -s /usr/local/openssl/lib/libcrypto.so.3 /usr/lib/libcrypto.so.3
echo "/usr/local/openssl/lib" >> /etc/ld.so.conf
ldconfig
第二种 更新共享库缓存:运行以下命令更新共享库缓存,这将刷新系统的共享库缓存,使系统能够正确找到和加载共享库
sudo ldconfig
再次检查库文件路径,运行以下命令检查库文件路径
ldconfig -p | grep libssl.so.3
如果没有输出或找不到该库文件,直接通过find 查找看是否有
find / -name libssl.so.3

 

若查找到了,则将它添加到共享库文件中,即编辑 /etc/ld.so.conf 文件并添加共享库文件所在的目录。例如,在文件中添加一行
## 添加对应libssl.so.3所在目录
/usr/local/openssl/lib
## 再次刷新共享库缓存
sudo ldconfig

注:以上只能用lib下的文件数据,不能用lib64,因为python3.10.11 编译源码中,还是引用的lib包里面的数据/usr/local/openssl/lib,若没有lib,则python能编译完成,但pip安装软件无法使用,会出现ssl报错问题

再次执行时可正常输出

 

 5、替换老版本的 openssl

mv /usr/bin/openssl /usr/bin/openssl.bak
mv /usr/include/openssl /usr/include/openssl.bak

ln -s /usr/local/openssl/bin/openssl /usr/bin/openssl
ln -s /usr/local/openssl/include/openssl /usr/include/openssl

 

三、上述准备工作完成后,开始下载python3.10.11,并解压到指定目录/opt/tools,进行编译安装

wget --no-check-certificate https://www.python.org/ftp/python/3.10.11/Python-3.10.11.tgz 
tar -zxf Python-3.10.11.tgz -C ./

##编译配置
./configure --prefix=/usr/local/python3.10 --with-openssl=/usr/local/openssl --with-openssl-rpath=auto
##编译安装
make -j && make install
##创建python3软链接
ln -s /usr/local/python3.10/bin/python3.10 /usr/bin/python3
python3 --version

 如上图所示,编译安装Pyhon3.10.11 已完成

创建软链接,设置全局环境可用

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

 

四、上述安装各软件包可能出现错误,及解决办法

1、编译安装openssl时,可能出现如下

 解决:安装perl-podlators

yum install perl-podlators

2、遇到Can`t locate IPC/Cmd.pm时

 解决办法:安装perl-CPAN 

yum install -y perl-CPAN
## 进入shell内部命令行
perl -MCPAN -e shell
## 先回车,更新再执行后续步骤 ## 执行安装 cpan[1]> install IPC/Cmd.pm

 

标签:11,python,openssl,devel,3.10,usr,##,perl,local
From: https://www.cnblogs.com/dinghong-jo/p/17813539.html

相关文章

  • NSSCTF Round#11 Basic 密码个人赛复盘
    [NSSRound#11Basic]ez_encABAABBBAABABAABBABABAABBABAAAABBABABABAAABAAABBAABBBBABBABBABBABABABAABBAABBABAAABBAABBBABABABAAAABBAAABABAABABBABBBABBAAABBBAABABAABBAAAABBBAAAABAABBBAABBABABAABABAAAAABBBBABAABBBBAAAABBBBBAB第一眼培根密码试了试但不对,观察长度发现应......
  • 2023.11.06 sh僵尸进程
    //简介:系统top显示中很多zombie僵尸进程,使系统进程数量已达到最大值35567。/查看sh子进程父进程全为基站产品的oam_2160二进程程序产生的(其原因为异常情况下,未正常处理系统调用:合理修改了pclose()调用)//参考文献https://blog.csdn.net/TiktokLiveTool/article/details/13211514......
  • 2023年11第一周博客总结
    本周进行了软考的最后冲刺,每天都很累,所以没怎么写博客,昨天刚考完,今天进行一下本周的周结,在最后一周的时间内,每天按照一道大题的进度攻克四道大题,最后也成功攻克下来了,对于算法题,采取的自求多福的策略,反正考试的时候都写上了,而且感觉应该能拿56分,对于其他题,有两题奔着满分,对于客观......
  • day1311
    后缀分类动词后缀-ize(做成;变成;..........化)modernize(现代化)-en(使成为;引起)quicken(加快)-fy(使........化;使成)purify(净化)-ish(使;令)abolish(取消)-ate(成为........;处理)indicate(指示)形容词后缀-able/-ibleflexible(可弯......
  • 20231101
    //abide,appendix,consequential,consignee,constraint,contractor,defendant,domicile,equity,injury,prior,quotas,reside,specify,subsidy,thereafter,unveiled,incompliancewith,landingcharges,netweightabide-遵守Toabidemeanstocomplyw......
  • 20231103
    //arbitrage,audit,authentic,bottleneck,circulate,confidentiality,crux,essential,flop,goodwill,inconsistent,inner,insurance,integral,marine,moisture,outer,sturdy,supplementary,trace,transit,unmentioned,fringebenefitsarbitrage-套利......
  • 20231102
    //annex,array,bolster,contain,dumping,foothold,franchisee,hard-core,imply,occurrence,overhaul,parley,prepaid,prevail,rough,specification,stake,sublet,weightyannex-附件Anannexreferstoanadditionalorsupplementarypartordocument......
  • English11
    一百只手百臂巨人HectonchiresGaia&UranusHectonchireshundredhandhecto表示“百”hectogram百克hectowatt一百瓦hectoliter百公升hectare公顷cent也表示“百”century世纪percent百分比;百分数centennial一百年的centi是cent的异形同意词centigrade百分度......
  • 20231105
    //calculate,collection,currency,facilitate,installment,irrevocable,leeway,minimum,remittance,sightcredit,sightdraftcalculate-计算Calculatemeanstodetermineorestimateanumericalvalueorresultthroughmathematicalorlogicalprocesses.......
  • 20231104
    //bailment,bear,breakage,concealment,coverage,demurrage,depreciation,excessive,hazard,hyperinflation,long-distance,perk,premium,replacement,suitable,surcharge,vacant,additionalrisk,invoicevaluebailment-财产寄托Bailmentreferstothea......