深度linux安装make,linux下安装python3完整教程(依赖环境gcc,make,cmake,configure等详细解释)...

前言:python在linux环境下面没有安装包,只支持从源码安装,本文不仅仅会完整的演示安装步骤,还会解释每一步这么做的原因以及一些关键概念的理解,包括什么是make等。本文基于centos7的KDE桌面版,安装python3.6.9版本。

一、安装依赖环境

1.1 安装依赖环境

sudo yum install -y gcc make cmakezlib-devel bzip2 bzip2-devel readline-devel sqlite sqlite-devel openssl-devel xz xz-devel libffi-devel

其中红色部分的是十分重要的,下面会解释,至于后面那么多依赖,有的系统有了,有的还没有,我是了一下,即便是有一些没安装,好像安装的python也不会出错,但是为了以防万一,还是最好将依赖环境都安装一遍。

如果是Linux的其他发行版,安装可以参见:https://www.cnblogs.com/Jimc/p/10218062.html

(1)Ubuntu/Debian下需安装的依赖:

sudo apt-get install -y gcc make cmake build-essential libssl-dev zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev wget curl llvm libncurses5-dev libncursesw5-dev xz-utils tk-dev libffi-dev liblzma-dev python-openssl

(2)Fedora/CentOS/RHEL(aws ec2)下需安装的依赖:

sudo yum install gcc make cmake zlib-devel bzip2 bzip2-devel readline-devel sqlite sqlite-devel openssl-devel xz xz-devel libffi-devel

1.2 最重要的几个依赖详解

(1)gcc:C语言的编译(四个过程)

1.预处理(Preprocessing)(文件格式变化:.c—.i)

2. 编译 (Compilation)(文件格式变化:.i—.s)

3.汇编(Assemble)(文件格式变化:.s—.o)

4.链接(Linking)(文件格式变化:.o—.out,windows平台下生成可执行文件.exe)

如果我们只写了一个.cc/.cpp文件,我们可以使用gcc。比如我们写了一个hello.cpp

那我们可以使用gcc这样编译gcc hello.c -o hello,-o是指输出名为hello的可执行文件。

但是,如果我们写的是一系列的代码我们总不能挨个对他们进行gcc编译吧?这时候轮到make登场了。

(2)make

在 Linux环境下使用 GNU 的 make工具能够比较容易的构建一个属于你自己的工程,整个工程的编译只需要一个命令就可以完成编译、连接以至于最后的执行。不过这需要我们投入一些时间去完成一个或者多个称之为 Makefile 文件的编写。此文件正是 make 正常工作的基础。make 是一个命令工具,它解释 Makefile 中的指令(应该说是规则)。在 Makefile文件中描述了整个工程所有文件的编译顺序、编译规则。

所以,首先我们要将所有要编译的文件信息写到makefile中,然后执行make,make就会按照makefile进行编译,这避免了程序在调试过程中频繁输入命令进行编译。但是makefile写起来比较复杂,规则很多。

这就要提到另一个工具cmake了。

(3)cmake

前面说了,对于一个大工程,编写makefile实在是件复杂的事,于是人们又想,为什么不设计一个工具,读入所有源文件之后,自动生成makefile呢,于是就出现了cmake工具,它能够输出各种各样的makefile或者project文件,从而帮助程序员减轻负担。但是随之而来也就是编写cmakelist文件,它是cmake所依据的规则。

cmake的作用就是生成makefile给make用。cmake生成makefile的根据正是CMakeLists.txt。我们主要就是学习CMakeLists.txt的写法。

总结:一个大的工程,按照下面的步骤进行,gcc make cmake三个工具配合使用。

0664dde4f9b5a5ab2ef0c97e208d3392.png

二、python安装步骤

第一步:下载Python3安装包

wget https://www.python.org/ftp/python/3.7.2/Python-3.7.2.tgz

或者自行到python官方网站去下载:https://www.python.org/downloads/source/

通过浏览器下在也一样的。

第二步:创建安装目录

个人习惯安装在/usr/local/python3(具体安装位置看个人喜好)

mkdir -p /usr/local/python3

第三步:解压安装包

tar -zxvf Python-3.7.2.tgz

第四步:进入解压后的目录,编译安装(编译安装前需要安装编译器 sudo apt install gcc)

(1)进入解压后的目录

(2)执行./configure

./configure --prefix=/usr/local/python3 #/usr/local/python3为安装目录

configure的作用是利用这个configure的脚本来查看你的linux的运行环境。然后生成一个Makefile文件,你就可以通过makefile文件编译你的项目了。

需要注意的是,这里的configure文件是可执行的脚本,所以下面几种方式都是可以的

source configure

. configure (中间有一个空格)

./configure

这几种方式都是可以的。

执行完configure命令后,configure 命令执行完之后,会生成一个 Makefile 文件,这个 Makefile主要是被下一步的 make 命令所使用( Linux 需要按照Makefile 所指定的顺序来构建 (build) 程序组件)。

(3)执行make指令

make

make实际就是编译源代码,按照上一步生成makefile文件进行编译,并生成执行文件。

(4)再执行make install 命令

make install

make install实际上是把生成的执行文件拷贝到之前configure命令指定的目录/usr/local/python3下。

到这里安装已经结束,下面是配置环境。

第五步:建立python3的软链

当然像ubuntu中已经有了python3,我们可以取一个别的名字

ln -s /usr/local/python3/bin/python3  /usr/bin/python3

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

第六步:将/usr/local/python3/bin加入PATH

这里是将安装的python添加到了整个系统的全局环境变量里面,我们也可以之添加到自己所在的用户的环境变量。

sudo vim /etc/profile #全局的

vim .bashrc           #自己用户的

然后在文件末尾添加

export PATH=$PATH:/usr/local/python3/bin

按ESC,输入:wq回车退出。

修改完后,还需要让这个环境变量在配置信息中生效,执行命令:

source /etc/profile   #或者是

source .bashrc

可以让profile文件或者是.bashrc立即生效。

第七步:测试是否安装成功

$ python3 -V

Python 3.6.9

三、关于python的configure文件详解

./configure 命令执行完毕之后创建一个文件creating Makefile,供下面的make命令使用 执行 make install 之后就会把程序安装到我们指定的目录中去。

Configure是一个可执行脚本(本质),它有很多选项,在待安装的源码路径下使用命令

./configure --help #或者是

./configure –h

输出详细的选项列表。

在这里只重点说一下如何指定python的安装路径,因为我们需要使用某一个版本的安装路径,最好是将整个python安装到同一个文件夹之下肯定是最方便管理,但是默认的安装却并不是这样子。

如果不配置该选项,直接使用默认的操作,安装后

可执行文件默认放在/usr /local/bin,

库文件默认放在/usr/local/lib ,

配置文件默认放在 /usr/local/etc ,

其它的资源文件放在/usr /local/share ,

软件包和模块放在/usr/local/python3/lib/python3.6/ 目录之下,

3.1 通过 ./configure --prefix=“”配置安装路径

--prefix 选项是配置安装的路径,如果配置 --prefix,如:./configure --prefix=/usr/local/test 可以把所有资源文件放在/usr/local/test的路径中,不会杂乱,方便管理,卸载等等。

用了 --prefix 选项的另一个好处是卸载软件或移植软件。当某个安装的软件不再需要时,只须简单的删除该安装目录,就可以把软件卸载得干干净净;移植软件只需拷贝整个目录到另外一个机器即可(相同的操作系统)。

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值