IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 网络协议 -> Ubuntu14.04安装Python3.8及配置支持SSL(HTTPS)功能问题 -> 正文阅读

[网络协议]Ubuntu14.04安装Python3.8及配置支持SSL(HTTPS)功能问题

Ubuntu14.04编译安装Python3.8及配置支持SSL(HTTPS)功能

一、系统环境介绍

Ubuntu系统

二、安装编译Python3.8需要的依赖环境

sudo apt install -y wget build-essential libreadline-dev libncursesw5-dev libssl-dev libsqlite3-dev tk-dev libgdbm-dev libc6-dev libbz2-dev libffi-dev zlib1g-dev

等待自动下载、安装完成即可(整个大概需要200多MB,如果下载较慢,可以换成清华源再下载,这样会快很多)

安装完后,最后部分输出如下,一切正常:
在这里插入图片描述

三、编译安装libressl构建【Python支持SSL(HTTPS功能)】的所需环境

1、下载源码(这里以libressl-3.0.2为例)

wget https://ftp.openbsd.org/pub/OpenBSD/LibreSSL/libressl-3.0.2.tar.gz --no-check-certificate

在这里插入图片描述

2、解压源码

tar -zxvf libressl-3.0.2.tar.gz

解压完后,会得到一个源码目录,效果如下:
在这里插入图片描述

3、配置安装路径

sudo mkdir -p /usr/local/ssl/libressl

4、配置编译参数

cd libressl-3.0.2

进入目录后,就瞄一眼,哈哈:
在这里插入图片描述

执行配置:

./configure --prefix=/usr/local/ssl/libressl

–prefix指定的是libressl安装的路径,可以自由更改,后面需要用到这个路径

配置完成后,无报错,最后输出效果如下:
在这里插入图片描述

5、编译、安装

sudo make && sudo make install

注意这是两个双sudo操作,此过程需要等一小会儿

过程无报错,最后输出如下:
在这里插入图片描述

6、将编译安装生成的libressl相关库添加到系统模块共享库中

注意:因为需要把内容输出到系统配置,因此需要切换到root用户,再执行,否则会报无权限错误。

su root
echo /usr/local/ssl/libressl/lib >> /etc/ld.so.conf.d/libressl-3.0.2.conf

效果如下(注意图中红圈部分):
在这里插入图片描述

7、验证需要的库已经添加成功

sudo ldconfig -v

输出如下:
在这里插入图片描述
可以看到,上图红圈部分就是libressl的相关依赖库。以上红圈输出就表示编译python3.8中支持ssl功能需要用到的libressl库已经添加成功。

四、编译、安装Python3.8

1、下载Python3.8源码(这里以Python3.8.6为例)

退回到用户目录

cd ~
wget https://www.python.org/ftp/python/3.8.6/Python-3.8.6.tgz

下载完成后,效果如下:
在这里插入图片描述

2、解压源码

tar -xvzf Python-3.8.6.tgz

3、配置编译参数(重点)

进入源码目录

cd Python-3.8.6

执行配置

./configure --prefix=/usr/local/python/python3.8 --with-openssl=/usr/local/ssl/libressl

这里–prefix路径是指定Python3.8安装的路径,–with-openssl的路径是刚刚上一步安装好的libressl的安装路径

过程无报错,最后输出如下:
在这里插入图片描述

4、编译、安装

sudo make &&  sudo make install

此过程需要等一小会儿

过程无报错,最后输出效果如下:
在这里插入图片描述

5、测试是否已经安装成功

因为上面配置步骤把python3.8的安装目录设置成 /usr/local/python/python3.8/ 了,而此目录也没有配置到系统环境变量PATH中,所以需要先切换到安装目录下的bin/:

cd  /usr/local/python/python3.8/bin/

然后ls,瞄一眼:
在这里插入图片描述
可以看到Python3.8已经安装成功到指定目录了

执行:

./python3.8 -V

输出如下:
在这里插入图片描述
可以看到输出的版本信息就是我们需要的Python 3.8。Good job!!!

进入Python3.8命令行,然后来一个经典的hello world打印:

./python3.8

在这里插入图片描述

一切OK,一切正常,Python 3.8 Go Go Go!!!!!

接下来我们来验收标题所说效果,也就是SSL(HTTPS)功能的测试。

那怎么测试呢?很简单,进入python3.8命令行终端,然后输入import ssl,回车:

1、如果无输出,表示SSL(HTTPS)功能正常有效;

2、如果报错输出,那SSL(HTTPS)功能模块不能用,那看看具体什么错误(这里一般是ModuleNotFoundError),看看有没有遗漏什么步骤。还不行的话,Google/Stackoverflow/CSDN/博客园/等着你,哈哈哈。

下面我们来测试一下:
在这里插入图片描述
输出无报错,Nice!!!

到这里就结束了,完美撒花~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


一些推荐的配置(非必须)

1、配置系统环境变量

因为我们配置的Python3.8的安装路径不在系统变量PATH中。
在这里插入图片描述
所以目前我们使用Python3.8,只能先切换到安装目录再执行,显然不是我们所期望的。

那么,我们可以将程序目录/usr/local/python/python3.8/bin添加到系统变量,这样我们就可以在任意路径使用Python3.8了

PATH=/usr/local/python/python3.8/bin:$PATH

执行后,再次在命令行输入python3.8,发现可以用了!!!:
在这里插入图片描述
也就是说,从现在起,我们可以在任何目录下使用Python3.8了,而不是需要切换到安装目录(bin/)再使用。Nice!!!!

2、配置Python3.8为系统默认Python程序

因为在我安装的Ubuntu 14.04服务器版系统中已经默认内置了python2.7和python3.4。那么

1)、在终端中输入python:在这里插入图片描述
打开的是Python2.7版本的。

2)、在终端中输入python3:
在这里插入图片描述
打开的是Python3.4版本的。

显然,现在系统默认的python程序是2.7版本的。那怎么把我们新安装的Python3.8版本设置为默认Python程序呢?这样做:

update-alternatives --list python

在这里插入图片描述
输出显示没有任何python版本添加到update-alternatives版本管理中。

那么我们就先将系统现在已经安装的python2.7,python3.4,python3.8都添加到update-alternatives中:

首先是Python2.7

whereis python2.7

在这里插入图片描述

sudo update-alternatives --install /usr/bin/python python /usr/bin/python2.7 100

这里的100是优先级值,值越大,优先级越高

执行效果:在这里插入图片描述
以此类推,分别添加Python3.4和Python3.8:

Python3.4:

whereis python3.4
sudo update-alternatives --install /usr/bin/python python /usr/bin/python3.4 200

Python3.8:

我们的Python3.8程序目录在/usr/local/python/python3.8/bin,所以

sudo update-alternatives --install /usr/bin/python python /usr/local/python/python3.8/bin/python3.8 300

添加完成后,我们新安装的Python3.8就变成了系统的默认Python版本了。我们可以测试一下,在控制台输入python,回车:
在这里插入图片描述
可以看到,我们进入的是新安装的Python3.8程序,优先级配置生效了,NICE!!!!!。

有道友可能会问,我现在有了Python2.7,Python3.4,Python3.8的版本了,如果我想自由的切换默认版本,应该怎么做?

好,不如我们回过头再次执行上面提到过的一个命令:

update-alternatives --list python

执行输出如下:
在这里插入图片描述
可以看到我们所有已经安装的Python版本刚刚都已经通过update-alternatives --install命令添加到了版本管理中,如果还有其他版本也是这么添加。

现在我默认版本是Python3.8,我想切换到Python3.4,怎么做?

执行:

sudo update-alternatives --config python

输出效果如下:
在这里插入图片描述
显而易见,输出说明了python3.8是默认的python版本。

这里就是可以选择版本作为默认版本的,然后我们输入2(对应版本就是python3.4),然后回车,这样我们就将Python3.4设置为默认版本,其他版本也是一样的操作。

来看看切换后效果:
在这里插入图片描述
完结撒花~


题外话

其实写这篇文章是因为我需要用到git-repo工具来拉取一些源码,然后怎么了~

欸,就是git-repo现在不支持python3.5以下的版本了,然后就想着安装python3.8的,在ubuntu14.04下,使用包管理工具怎么都安装不了python,什么源切换都试过了,也不行(我猜是墙的问题,有的源国内没有镜像)。

既然自动安装不行,那我手动还不行???

然后就开始搞啊搞啊搞啊了……,编译安装好了之后再次运行git-repo,报错……

说什么unkown url type https什么的,阿巴阿巴。

然后东找西找,又说这个问题,又说那个问题,其实就是python没有带ssl模块,也就是编译的时候没有配置ssl库。

当时搞了两个多小时,才搞好,也才有了这么文章。

So,值得记录。

如果觉得对你也有帮助,欢迎点赞,评论,收藏!!!Nice!!!!

  网络协议 最新文章
使用Easyswoole 搭建简单的Websoket服务
常见的数据通信方式有哪些?
Openssl 1024bit RSA算法---公私钥获取和处
HTTPS协议的密钥交换流程
《小白WEB安全入门》03. 漏洞篇
HttpRunner4.x 安装与使用
2021-07-04
手写RPC学习笔记
K8S高可用版本部署
mySQL计算IP地址范围
上一篇文章      下一篇文章      查看所有文章
加:2021-10-06 12:35:11  更:2021-10-06 12:35:37 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 2:26:04-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码