目錄
經過以上環節的檢測,可以確定最小化安裝時沒有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安裝爲什麼沒有顯示事務控制的流程?這些細節性的東西留在以後來互相學習吧