RHEL 8 中不再默認系統Python 版本
RHEL 8 中不再默認 Python 版本。包括RHEL 在內的大多數Linux 發行版,用戶除非離開系統的包管理器環境,否則一般是被默認限定在系統提供的Python 版本中。對於像Ruby、Node、Perl 與PHP 在內的許多工具來說這都是習以為常的,但是Python 的情況會比較複雜一些,因為許多Linux 工具(如yum)都直接依賴於Python。
根據PEP 394,目前 /usr/bin/python 默認是指Python2,也就是“Python”這一命令或者Python 解釋器將默認指向Python2 版本。
Red Hat官方在其者博客中發文稱,針對這一點,為了改善用戶體驗,從RHEL 8 Beta開始不再強調“系統Python”,不再默認一個Python版本。他們使用模塊化的Application Streams設計,結合Python可多版本同時安裝的特點,將為用戶提供多個版本Python的選項,並且可以從標準存儲庫輕鬆安裝到標準位置,用戶可以選擇他們想要在任何給定用戶空間中運行的Python版本。
Application Streams 是在RHEL 8 中引入的一類存儲庫,它提供用戶可能希望在給定用戶空間中運行的所有應用程序,它是在物理存儲庫中創建的多個虛擬存儲庫。
這種變化之後,用戶想要使用Python,需要直接指定Python3 或者Python2,而不是直接Python。同時yum install python 將返回 404,因為它同樣需要指定安裝版本。建議使用yum install @python36 或yum install @python27 安裝推薦軟件包,而如果只需要 Python 二進製文件,則可以使用yum install python3 或yum install python2。此外,pip 等工具也有變化,比如Python3 將安裝在pip3 路徑下,而不是沒有版本指定的pip 路徑。
Red Hat 解釋,除了提升用戶體驗,這種方案還讓方便了系統維護人員,因為不會被鎖定在系統中老版本的Python 上,那麼他們可以自由地利用新版本的語言功能與性能改進等優勢。