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

升级linux下的python版本

时间:2023-11-04 21:35:29浏览次数:39  
标签:python 安装 openssl devel usr 版本 linux perl local

以centos7为例 将python升级到3.10.11

1、安装必备软件包:

## 第一步 基础包
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

 2、下载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 ./

3、创建安装目录,并到上步解压目录Python-3.10.11下进行编译安装

mkdir /usr/local/python3.10
## 指定安装目录
./configure --prefix=/usr/local/python3.10

 编译时,若报如下错误,则需要先行处理

 

解决:

3.1 Python需要OpenSSL 1.1.1(换其它更高的版本可能会有不兼容的问题,笔者亲自试过,才又改回用openssl1.1.1q版本来编译),查看当前openssl版本

 

3.2 这里安装openssl-1.1.1q.tar.gz, 通过如命令下载源码并解压到指定目录

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

 

3.3  进入解压目录/opt/tools/openssl-1.1.1q,编译安装openssl

./config --prefix=/usr/local/openssl
make && make install

 

针对如下3.3.1-3.3.3的问题,若编译安装openssl没有出现,可忽略(如下的错误用的是openssl-3.1.4出现的)

编译时报/usr/bin/env: perl: No such file or directory,出现这种错误可能是没有安装prel(注:每个人的环境不一致),需要先安装prel

 

 3.3.1 先安装prel 所需的依赖

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

 

3.3.2 在 Linux 发行版下使用指定包管理软件,常常只能安装指定的perl,如果需要安装特定版本 perl,就需要编译安装,源码从这里获取: http://www.cpan.org/src/5.0/,以 perl 5.28.1 为例

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

 

3.3.3 若出现如下错误,则需要创建pod2man的软链接

yum install perl-podlators

3.3.4 上述处理完后,查看是否安装成功 ,若出现如下错误 (注:openss记得拼上路径,即/usr/local/opensll/bin/opensll)

 

第一种解决方案:

更新共享库缓存:运行以下命令更新共享库缓存,这将刷新系统的共享库缓存,使系统能够正确找到和加载共享库

sudo ldconfig

再次检查库文件路径,运行以下命令检查库文件路径:

ldconfig -p | grep libssl.so.3

  • 如果没有输出或找不到该库文件,直接通过find 查找看是否有,

     

  • 若查找到了,则将它添加到共享库文件中,即编辑 /etc/ld.so.conf 文件并添加共享库文件所在的目录。例如,在文件中添加一行

find / -name libssl.so.1.1
## 对应libssl.so.3所在目录 /usr/local/openssl/lib64
## 再次刷新共享库缓存
sudo ldconfig

 

第二种解决方案:

执行以下命令即可:
ln -s /usr/local/openssl/lib/libssl.so.1.1 /usr/lib64/libssl.so.1.1
ln -s /usr/local/openssl/lib/libcrypto.so.1.1 /usr/lib64/libcrypto.so.1.1

echo “/usr/local/openssl/lib” >> /etc/ld.so.conf
ldconfig

 

3.4  替换老版本的 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

 

4、解决完上述错误后,继续执行如命令编译安装Python-3.10.11

./configure --prefix=/usr/local/python3.10
make && make install
##创建python3软链接
ln -s /usr/local/python3.10/bin/python3.10 /usr/bin/python3
python3 --version

 

 

有如上结果输出,表示python3.10.11 版本已安装完成

 

标签:python,安装,openssl,devel,usr,版本,linux,perl,local
From: https://www.cnblogs.com/dinghong-jo/p/17799887.html

相关文章

  • OpenHarmony:4.0 Release版本的开发数据
    OpenAtomOpenHarmony4.0Release版本于10月27 日发布,经过了32周的开发周期。在此期间,有65499 个Committs进入了版本。在这个周期内完成了相当多的重要工作,本文阐释这些工作由谁完成。 这次共有2220 位贡献者为4.0Release版本做出了贡献。其中,华为贡献者1800名,......
  • Python 潮流周刊#25:性能最快的代码格式化工具 Ruff!
    你好,我是猫哥。这里每周分享优质的Python、AI及通用技术内容,大部分为英文。标题取自其中一则分享,不代表全部内容都是该主题,特此声明。本周刊由Python猫出品,精心筛选国内外的250+信息源,为你挑选最值得分享的文章、教程、开源项目、软件工具、播客和视频、热门话题等内容。愿......
  • 《Unix/Linux系统编程》第五章学习笔记
    《Unix/Linux系统编程》第五章学习笔记第五章定时器及时钟服务本章讨论了定时器和定时器服务;介绍了硬件定时器的原理和基于Intelx86的PC中的硬件定时器;讲解了CPU操作和中断处理;描述了Linux中与定时器相关的系统调用、库函数和定时器服务命令;探讨了进程间隔定时器、定......
  • 【python进阶】14大模块200页知识体系md笔记,第4篇:linux命令进阶(2)
    本文从14大模块展示了python高级用的应用。分别有Linux命令,多任务编程、网络编程、Http协议和静态Web编程、html+css、JavaScript、jQuery、MySql数据库的各种用法、python的闭包和装饰器、mini-web框架、正则表达式等相关文章的详细讲述。完整版笔记直接地址:请移步这里共14......
  • Python02
    判断语句bool类型#bool类型bool_1=Truebool_2=Falseprint(f"bool_1变量的内容是:{bool_1},类型是:{type(bool_1)}")print(f"bool_2变量的内容是:{bool_2},类型是:{type(bool_2)}")#比较运算符的使用#==,!=,>,<,>=,<=num1=10num2=10print(f"10==10的结果是:{nu......
  • python3
    循环 1"""2while条件:3满足条件4#只要条件满足,会无限循环执行5"""6i=07sum=08whilei<=100:9sum=sum+i10i+=111print(sum)while循环猜数字1#无限次猜数字2importrandom3num=random.randint(1,100)......
  • python 4
    python函数函数:组织好的,可重复使用,实现功能的代码段len是python中内置的函数 str1="asdfaf"str2="asdfasdfasdff"str3="asdfasaf"#计算字符串的长度#用循环遍历的方法实现count=0foriinstr1:count+=1print(f"字符串{str1}的长度为:{count}")coun......
  • 手记系列之七 ----- 分享Linux使用经验
    前言本篇文章主要介绍的关于本人在使用Linux记录笔记的一些使用方法和经验,温馨提示,本文有点长,约1.7w字,几十张图片,建议收藏查看。一、Linux基础使用1,服务器查看及时日志tail-500fcatalina.out2,如何退出logs日志ctrl+c或kill-9pid3,设置快捷键临时快捷键设置:......
  • Linux docker 常用命令
    容器命令dockerexec-itnacos2/bin/bashdockerlogs-fnacos日志:语法:dockerlogs[OPTIONS]CONTAINEROptions:--details显示更多的信息-f,--follow跟踪实时日志--sincestring显示自某个timestamp之后的日志,或相对时间,如42m(即42分钟)--tailstring从日志末尾显示......
  • 学JAVA用PYTHON重写day02.5
    packageday02;publicclassDemo05{/*三个数字排序*/publicstaticvoidmain(String[]args){System.out.println("三个数字排序,从大到小:");inta=2;intb=5;intc=1;intt;if(a<b){......