目录
经过以上环节的检测,可以确定最小化安装时没有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安装为什么没有显示事务控制的流程?这些细节性的东西留在以后来互相学习吧