Linux下Python3的源码编译安装和卸载方法

[日期:2019-06-21] 来源:博客园  作者:wuli潇萧 [字体: ]
 
 

(一)Linux下软件的源码编译安装和卸载方法

Linux下正常的编译安装/卸载

源码的安装一般由3个步骤组成:

  • 配置(configure)
  • 编译(make)          #编译产生的所有文件仅仅在当前目录下,可以查看MakeFile文件查看编译内容
  • 安装(make install)。    #执行MakeFile的INSTALL方法

configure文件是一个可执行的脚本文件,它有很多选项,在待安装的源码目录下使用命令./configure –help可以输出详细的选项列表。

其中--prefix选项是配置安装目录,如果不配置该选项,安装后可执行文件默认放在/usr /local/bin,库文件默认放在/usr/local/lib,配置文件默认放在/usr/local/etc,其它的资源文件放在/usr /local/share,比较凌乱。

如果配置了--prefix,如:

$ ./configure --prefix=/usr/local/linuxidctest

安装后的所有资源文件都会被放在/usr/local/linuxidctest目录中,不会分散到其他目录。

使用--prefix选项的另一个好处是方便卸载软件或移植软件

  • 当某个安装的软件不再需要时,只须简单的删除该安装目录,就可以把软件卸载干净;
  • 移植软件只需拷贝整个目录到另外一个机器即可(相同的操作系统下)

当然要卸载程序,也可以在原来的make目录下用一次make uninstall,但前提是Makefile文件有uninstall命令。

make install PREFIX=path

这里PREFIX必须大写,其实绝大部分情况下 make install 都不能再指定 PREFIX 了,因为大部分程序都会 configure 时得到的 prefix 写入 config.h,然后在编译时编译到可执行文件内部,以便在执行时读取资源文件等。

这样在编译完毕后,就不能再修改 prefix 了。只有运行时不需要资源文件的小工具,才可能在安装的时候随意选择 PREFIX,或者具有 loader 的大程序,在执行时通过 loader 传入路径……

关于卸载

如果安装的时候指定了--prefix,直接删除就好。如果没有配置--prefix选项,,并且源代码没有提供make uninstall/distclean/veryclean的功能,则可以通过以下方式可以完整卸载:

找一个临时目录重新安装一遍,如:

$ ./configure --prefix=/tmp/to_remove 
$ make && 'make install >&1|tee make.log'

然后遍历/tmp/to_remove的文件,删除对应安装位置的文件即可(因为/tmp/to_remove里的目录结构就是没有配置--prefix选项时的目录结构)。

这样的坏处是有些文件夹还可能删除不了(分不清是系统的还是安装上的)
 
常见的反安装target有: make uninstall/distclean/veryclean 等等。如果没有,事先记得记录'make install'的所有输出日志,'make install &> |tee make.log'。
 
然后在日志里能够看得到到底安装了那些文件到那些位置,通常会使用'cp'或者'install'命令拷贝文件。

(二)debian 8 jessie安装Python3.6

debian 系统debian8官方停止更新维护了,目前apt源仅支持python3.4,debian8系统内置的python2为python2.7.9,Python3版本为3.42。

想要安装Python3.5及以上的版本,只能下载源码编译安装,但是千万不要手欠的去删除系统自带python3.4,

否则后果请参考

https://blog.csdn.net/lang523493505/article/details/76644666

需要安装更高版本的python,例如python3.6 这样做
 
      参考链接 https://unix.stackexchange.com/questions/332641/how-to-install-python-3-6

=================================================
pip3依赖系统内置的openssl包,先确定apt-get install openssl

You can install Python-3.6 on Debian 8 as follows:

wget https://www.python.org/ftp/python/3.6.8/Python-3.6.8.tgz
tar xvf Python-3.6.8.tgz
cd Python-3.6.8
./configure --enable-optimizations
make
make altinstall 或者make install(试过成功了)
python3.6 -V
#创建软链接,软链接目的目录已存在的先删除
ln -s /usr/local/bin/python3.6 /usr/bin/python3
ln -s /usr/local/bin/pip3.6 /usr/bin/pip3
pip3 install redis (试过成功了)

(三)Linux下安装python3后,pip3 install 报错找不到ssl模块

Python3 越来越火,要在Linux下安装python3的需求也越来越多。。

官网 python.org 下载压缩包,解压

然后,在./configure的时候,需要加上  --enable-optimizations参数,这样才能启用很多功能。

网上看到很多人说要用 ./configure --with-ssl,这是没用的,日志上写明白了 not recognized option '--with-ssl'。

编译的时候日志跑的很快,很多人就忽略了细节,年轻人,不要慌,回去翻翻日志,你会有新发现,很多东西别人都给了提示的了。

接下来官方步骤

make && make install

重新试试

python3> import ssl

有了。

另外在编译安装git等工具时,都把 --enable-optimizations 参数带上,这样才是以“官方发布的稳定版本”编译。

参考链接:

https://blog.csdn.net/Pretendness/article/details/80032016

https://www.linuxidc.com/Linux/2019-03/157703.htm

https://www.zhihu.com/question/20092756/answer/13948057

linux下python3源码安装及卸载的更多相关文章

  1. Linux下Python3源码安装

    1.下载 wget https://www.python.org/ftp/python/3.7.4/Python-3.7.4.tgz 2.解压 tar -xzvf Python-3.7.4.tgz 3 ...

  2. linux下如何源码安装expect

    1.作用 自动交互.比如如果用ssh登陆服务器,每次都输入密码,然而你觉得麻烦,那你就可以使用expect来做自动交互,这样的话就不用每次都输入密码 2.依赖 依赖tcl 3.获取源码 wget ht ...

  3. [整理]Linux下的源码安装步骤及其功能解释

    源码的安装一般由3个步骤组成:配置(./configure).编译(make).安装(make install). 这时最常用的命令就是这三个--./configure && make ...

  4. Linux下git源码安装【转】

    转自:http://blog.csdn.net/u012889638/article/details/51167123 版权声明:本文为博主原创文章,未经博主允许不得转载. 版本信息:CentOS r ...

  5. linux下mysql源码安装

    参考链接:http://blog.csdn.net/zqtsx/article/details/9378703 下载mysql安装包, 不会下载点这里 地址:ftp://mirror.switch.c ...

  6. linux下.run文件的安装与卸载

    linux下.run文件的安装与卸载   .run文件的安装很简单,只需要为该文件增加可执行属性,即可执行安装 以 virtualbox 的安装文件 virtualbox-3.1.6-59338-Li ...

  7. Linux下Python3.6的安装及避坑指南

    Python3的安装 1.安装依赖环境 Python3在安装的过程中可能会用到各种依赖库,所以在正式安装Python3之前,需要将这些依赖库先行安装好. yum -y install zlib-dev ...

  8. RedHat7下PostGIS源码安装

    本文介绍在RedHat7环境下安装使用PostGIS的流程. 1. PostgreSQL 1.1 yum安装PostgreSQL 这个比较简单,直接使用yum安装即可. $ sudo yum inst ...

  9. Linux 6.8 源码安装MySQL8.0

    搭建环境说明: 系统版本:Red Hat Enterprise Linux Server release 6.8 (Santiago) 内核版本:Linux 2.6.32-642.el6.x86_64 ...

随机推荐

  1. Kettle的改名由来

    不多说,直接上干货! 当时啊,因为很多开源项目到最后都成了无人管的项目,为了避免这种情况的发生,要尽快为Kettle项目构建一个社区.这就意味着,在随后的几年可能需要回答上千封的电子邮件和论坛帖子.幸 ...

  2. Swift学习笔记(6):控制流

    目录: For-In While If-Else, Guard-Else Switch 控制转移 For-In 可以使用for-in语句循环遍历集合.区间.元组.字符串. // 遍历区间,返回元素值 ...

  3. php如何实现文件下载

    php如何实现文件下载 1. 设置超链接的href属性 <ahref="文件地址"></a> 如果浏览器不能解析该文件,浏览器会自动下载.而如果文件是图片或 ...

  4. 利用SignalR来同步更新Winfrom

    之前写了个用Socket来更新多个Winfrom的试例,这两天看了下SignalR,也用这个来试一下 SignalR 地址:https://www.asp.net/signalr 我这个也是基于 ht ...

  5. Linux重新命名文件夹

    linux 重命名文件和文件夹   linux下重命名文件或文件夹的命令mv既可以重命名,又可以移动文件或文件夹. 例子:将目录A重命名为B mv A B 例子:将/a目录移动到/b下,并重命名为c ...

  6. 学习《数据科学入门》中文PDF+英文PDF+源代码

    数据科学是一个蓬勃发展.前途无限的行业,有人将数据科学家称为"21世纪头号性感职业".本书从零开始讲解数据科学工作,教授数据科学工作所必需的黑客技能,并带领读者熟悉数据科学的核心知 ...

  7. JAVA 程序生成jar包运行报错 Exception in thread "Thread-1" java.lang.NoClassDefFoundError: javax/xml/rpc 的解决方法

    最近开发支付宝生活缴费的项目,java程序要使用.NET 的WebService服务,后来正式部署出现这错误,网上查资料是少了一个“jaxrpc.jar”文件,但是我本地调试正常,最后是删除我目前导出 ...

  8. mysql 修改默认的引擎

      需求: mysql 的默认的引擎为MyISAM  虽然该引擎访问的速度快,但并不支持存储事物,也不支持外键,所以我们修改为innob Linux修改MySql默认存储引擎为InnoDB     一 ...

  9. HTTP 文件共享服务器工具 - chfs

    CuteHttpFileServer/chfs是一个免费的.HTTP协议的文件共享服务器,使用浏览器可以快速访问.它具有以下特点: 单个文件,整个软件只有一个可执行程序,无配置文件等其他文件 跨平台运 ...

  10. 洛谷 P1026 统计单词个数 (分组+子串预处理)(分组型dp再次总结)

    一看完这道题就知道是划分型dp 有两个点要注意 (1)怎么预处理子串. 表示以i为开头,结尾在j之前(含),有没有子串,有就1,没有就0 (2)dp的过程 这种分成k组最优的题目已经高度模板化了,我总 ...