目录

安装python

在系统中查找python的安装源和库

开始安装python3

卸载python3

离线安装


经过以上环节的检测,可以确定最小化安装时没有python,java,node的系统编程环境变量以及编译或解释的可执行程序的,所以我们还需要自己手动的安装这些环境,centos8在一定程度上增加了安装的自主性,尤其是python

 

安装python

在安装之前我们需要通过这种渠道了解centos8对于python的安装是怎么说的,因为随着研发和运维的对于python语言的使用,使其成为了必备的环境变量。

在系统中查找python的安装源和库

分别执行以下两个命令来查询dnf的仓库里面的python安装包和依赖包的情况

dnf list |grep -v grep|grep 'python' > python_list.txt
dnf deplist |grep -v grep|grep 'python' > python.txt

通过以上的命令可以明确的看到存在centos8支持的python3环境,由于从2020年开始官方不再维护py2所以安装py3是未来趋势,安装即用即可。当然除了python安装包以外,系统还配置了许多的python的脚本库,比如pip和setuptoos都已经自带,另外还包括一些诸如numpy等库,自行查看吧,总之centos8推荐系统级别的python脚本库更希望通过dnf来安装。

platform-python.x86_64                               3.6.8-15.1.el8                                    @BaseOS   
platform-python-pip.noarch                           9.0.3-15.el8                                      @BaseOS   
platform-python-setuptools.noarch                    39.2.0-5.el8                                      @BaseOS   
python3-asn1crypto.noarch                            0.24.0-3.el8                                      @anaconda 
python3-cffi.x86_64                                  1.11.5-5.el8                                      @anaconda 
python3-configobj.noarch                             5.0.6-11.el8                                      @anaconda 
python3-cryptography.x86_64                          2.3-2.el8                                         @anaconda 
python3-dateutil.noarch                              1:2.6.1-6.el8                                     @anaconda 
python3-dbus.x86_64                                  1.2.4-15.el8                                      @BaseOS   
python3-decorator.noarch                             4.2.1-2.el8                                       @anaconda 
python3-dmidecode.x86_64                             3.12.2-15.el8                                     @BaseOS   
python3-dnf.noarch                                   4.2.7-7.el8_1                                     @BaseOS   
......

开始安装python3

要明确自己是处于root权限,将安装流程保存下来,虽然dnf日志也会保存(上一节讲过),但是这样咱们能更有针对性

[root@warclouds var]# dnf install python3 -y > centos8_mini_install_python3.txt

 安装过程包括依赖关系检查、安装、启动模块流、下载软件包、事务概要、检查、测试、运行事物、验证等。

[admin@warclouds var]$ tail -n200 -f centos8_mini_install_python3.txt 
上次元数据过期检查:0:30:21 前,执行于 2020年04月19日 星期日 21时31分17秒。
依赖关系解决。
================================================================================
 软件包             架构   版本                                 仓库       大小
================================================================================
安装:
 python36           x86_64 3.6.8-2.module_el8.1.0+245+c39af44f  AppStream  19 k
安装依赖关系:
 python3-pip        noarch 9.0.3-15.el8                         AppStream  19 k
 python3-setuptools noarch 39.2.0-5.el8                         BaseOS    162 k
启用模块流:
 python36                  3.6                                                 

事务概要
================================================================================
安装  3 软件包

总下载:201 k
安装大小:466 k
下载软件包:
(1/3): python36-3.6.8-2.module_el8.1.0+245+c39a 1.1 MB/s |  19 kB     00:00    
(2/3): python3-pip-9.0.3-15.el8.noarch.rpm      892 kB/s |  19 kB     00:00    
(3/3): python3-setuptools-39.2.0-5.el8.noarch.r 2.7 MB/s | 162 kB     00:00    
--------------------------------------------------------------------------------
总计                                             24 kB/s | 201 kB     00:08     
运行事务检查
事务检查成功。
运行事务测试
事务测试成功。
运行事务
  准备中  :                                                                 1/1 
  安装    : python3-setuptools-39.2.0-5.el8.noarch                          1/3 
  安装    : python36-3.6.8-2.module_el8.1.0+245+c39af44f.x86_64             2/3 
  运行脚本: python36-3.6.8-2.module_el8.1.0+245+c39af44f.x86_64             2/3 
  安装    : python3-pip-9.0.3-15.el8.noarch                                 3/3 
  运行脚本: python3-pip-9.0.3-15.el8.noarch                                 3/3 
  验证    : python3-pip-9.0.3-15.el8.noarch                                 1/3 
  验证    : python36-3.6.8-2.module_el8.1.0+245+c39af44f.x86_64             2/3 
  验证    : python3-setuptools-39.2.0-5.el8.noarch                          3/3 

已安装:
  python36-3.6.8-2.module_el8.1.0+245+c39af44f.x86_64                           
  python3-pip-9.0.3-15.el8.noarch                                               
  python3-setuptools-39.2.0-5.el8.noarch                                        

完毕!

我们需要知道在安装过程中都下载了那些文件,是否是日志中这些包一致,通过下载发现只是下载了基础安装包,并没有将依赖包一起下载。

[admin@warclouds pkg]$ pwd
/var/cache/pkg
[admin@warclouds pkg]$ sudo dnf download --destdir ./ python3
上次元数据过期检查:0:53:20 前,执行于 2020年04月19日 星期日 22时24分14秒。
python36-3.6.8-2.module_el8.1.0+245+c39af44f.x86_64.rpm                                                                      913 kB/s |  19 kB     00:00    
[admin@warclouds pkg]$ ll
总用量 20
-rw-r--r--. 1 root root 19506 4月  19 23:17 python36-3.6.8-2.module_el8.1.0+245+c39af44f.x86_64.rpm

 我们试图将依赖包也下载下来,但是没有成功,所以我们需要卸载python3,并检查一下是否卸载依旧如此行云流水。并且我们要考虑在使用的是同事离线的时候该怎么装,需要哪些依赖包。

[admin@warclouds pkg]$ sudo dnf install --downloadonly --destdir ./ python3
[sudo] admin 的密码:
上次元数据过期检查:0:58:47 前,执行于 2020年04月19日 星期日 22时24分14秒。
软件包 python36-3.6.8-2.module_el8.1.0+245+c39af44f.x86_64 已安装。
依赖关系解决。
无需任何处理。
完毕!
[admin@warclouds pkg]$ ll
总用量 20
-rw-r--r--. 1 root root 19506 4月  19 23:17 python36-3.6.8-2.module_el8.1.0+245+c39af44f.x86_64.rpm

卸载python3

卸载之前检测一下之前的安装是否完整正确,发现有些依赖包的版本是比较低的,比如说pip的版本。pip列表能找出的都是基础的库来支撑python在linux中的基础运作,不过随着后期开发和使用免不了要升级和重置,这个以后再说,我们先卸载掉它

sudo dnf remove python3 。

[admin@warclouds pkg]$ python3
Python 3.6.8 (default, Nov 21 2019, 19:31:34) 
[GCC 8.3.1 20190507 (Red Hat 8.3.1-4)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> exit()
[admin@warclouds pkg]$ pip -V
-bash: pip: 未找到命令
[admin@warclouds pkg]$ pip3 -V
pip 9.0.3 from /usr/lib/python3.6/site-packages (python 3.6)
[admin@warclouds pkg]$ pip3 list
DEPRECATION: The default format will switch to columns in the future. You can use --format=(legacy|columns) (or define a format=(legacy|columns) in your pip.conf under the [list] section) to disable this warning.
asn1crypto (0.24.0)
cffi (1.11.5)
configobj (5.0.6)
cryptography (2.3)
dbus-python (1.2.4)
decorator (4.2.1)
gpg (1.10.0)
idna (2.5)
iniparse (0.4)
netifaces (0.10.6)
pciutils (2.3.6)
perf (0.1)
pip (9.0.3)
ply (3.9)
pycparser (2.14)
pygobject (3.28.3)
pyOpenSSL (18.0.0)
python-dateutil (2.6.1)
python-dmidecode (3.12.2)
python-linux-procfs (0.6)
pyudev (0.21.0)
rhnlib (2.8.6)
rpm (4.14.2)
schedutils (0.6)
selinux (2.9)
setuptools (39.2.0)
six (1.11.0)
slip (0.6.4)
slip.dbus (0.6.4)
syspurpose (1.25.17)

再次执行相关的安装包以及依赖包,只下载不安装,为离线安装python3做准备。。。

[admin@warclouds cache]$ cd pkg/
[admin@warclouds pkg]$ ll
总用量 20
-rw-r--r--. 1 root root 19506 4月  19 23:17 python36-3.6.8-2.module_el8.1.0+245+c39af44f.x86_64.rpm
[admin@warclouds pkg]$ rm python36-3.6.8-2.module_el8.1.0+245+c39af44f.x86_64.rpm 
rm:是否删除有写保护的普通文件 'python36-3.6.8-2.module_el8.1.0+245+c39af44f.x86_64.rpm'?y
rm: 无法删除'python36-3.6.8-2.module_el8.1.0+245+c39af44f.x86_64.rpm': 权限不够
[admin@warclouds pkg]$ sudo dnf install --downloadonly --destdir . python3
上次元数据过期检查:1:15:23 前,执行于 2020年04月19日 星期日 22时24分14秒。
依赖关系解决。
=============================================================================================================================================================
 软件包                                架构                      版本                                                     仓库                          大小
=============================================================================================================================================================
安装:
 python36                              x86_64                    3.6.8-2.module_el8.1.0+245+c39af44f                      AppStream                     19 k
安装依赖关系:
 python3-pip                           noarch                    9.0.3-15.el8                                             AppStream                     19 k
 python3-setuptools                    noarch                    39.2.0-5.el8                                             BaseOS                       162 k

事务概要
=============================================================================================================================================================
安装  3 软件包

总计:201 k
总下载:182 k
安装大小:466 k
DNF 只会下载事务所需的软件包。
确定吗?[y/N]: y
下载软件包:
[SKIPPED] python36-3.6.8-2.module_el8.1.0+245+c39af44f.x86_64.rpm: Already downloaded                                                                       
(2/3): python3-setuptools-39.2.0-5.el8.noarch.rpm                                                                            577 kB/s | 162 kB     00:00    
(3/3): python3-pip-9.0.3-15.el8.noarch.rpm                                                                                    14 kB/s |  19 kB     00:01    
-------------------------------------------------------------------------------------------------------------------------------------------------------------
总计                                                                                                                          78 kB/s | 201 kB     00:02     
完毕!
下载的软件包保存在缓存中,直到下次成功执行事务。
您可以通过执行 'dnf clean packages' 删除软件包缓存。
[admin@warclouds pkg]$ ll
总用量 204
-rw-r--r--. 1 root root  19506 4月  19 23:17 python36-3.6.8-2.module_el8.1.0+245+c39af44f.x86_64.rpm
-rw-r--r--. 1 root root  19664 4月  19 23:39 python3-pip-9.0.3-15.el8.noarch.rpm
-rw-r--r--. 1 root root 166368 4月  19 23:39 python3-setuptools-39.2.0-5.el8.noarch.rpm

离线安装

已经将相关的依赖也一并下载了,看看能否通过离线的方式来安装python3.dnf 下载下来的是rpm的安装包,我们需要执行rpm的安装命令才可以的哦

[admin@warclouds pkg]$ sudo rpm -ivh *.rpm
[sudo] admin 的密码:
Verifying...                          ################################# [100%]
准备中...                          ################################# [100%]
正在升级/安装...
   1:python3-setuptools-39.2.0-5.el8  ################################# [ 33%]
   2:python3-pip-9.0.3-15.el8         ################################# [ 67%]
   3:python36-3.6.8-2.module_el8.1.0+2################################# [100%]
[admin@warclouds pkg]$ pwd
/var/cache/pkg
[admin@warclouds pkg]$ python3
Python 3.6.8 (default, Nov 21 2019, 19:31:34) 
[GCC 8.3.1 20190507 (Red Hat 8.3.1-4)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> exit()
[admin@warclouds pkg]$ ll
总用量 204
-rw-r--r--. 1 root root  19506 4月  19 23:17 python36-3.6.8-2.module_el8.1.0+245+c39af44f.x86_64.rpm
-rw-r--r--. 1 root root  19664 4月  19 23:39 python3-pip-9.0.3-15.el8.noarch.rpm
-rw-r--r--. 1 root root 166368 4月  19 23:39 python3-setuptools-39.2.0-5.el8.noarch.rpm

好的到目前为止,我们已经比较成功的通过两种方式成功安装了python3。dnf的安装脚本是怎么写的,事物的控制室怎么做到的,rpm安装为什么没有显示事务控制的流程?这些细节性的东西留在以后来互相学习吧

Logo

CSDN联合极客时间,共同打造面向开发者的精品内容学习社区,助力成长!

更多推荐