Rhel
為什麼通過 yum 安裝 pip 時 pip 版本不是最新的
我們嘗試通過以下方式安裝最新版本的 pip(我們有 rhel 7.6 伺服器和 python 2.7)
yum install python27-python-pip Loaded plugins: langpacks, product-id, search-disabled-repos, subscription-manager rhel-7-server-rpms | 3.5 kB 00:00:00 rhel-server-rhscl-7-rpms | 3.4 kB 00:00:00 (1/6): rhel-7-server-rpms/7Server/x86_64/group | 631 kB 00:00:00 (2/6): rhel-7-server-rpms/7Server/x86_64/updateinfo | 3.9 MB 00:00:01 (3/6): rhel-server-rhscl-7-rpms/7Server/x86_64/group | 124 B 00:00:00 (4/6): rhel-server-rhscl-7-rpms/7Server/x86_64/updateinfo | 1.1 MB 00:00:00 (5/6): rhel-server-rhscl-7-rpms/7Server/x86_64/primary_db | 6.0 MB 00:00:07 (6/6): rhel-7-server-rpms/7Server/x86_64/primary_db | 75 MB 00:00:11 Resolving Dependencies --> Running transaction check ---> Package python27-python-pip.noarch 0:8.1.2-3.el7 will be installed --> Processing Dependency: python27-python(abi) = 2.7 for package: python27-python-pip-8.1.2-3.el7.noarch --> Processing Dependency: /opt/rh/python27/root/usr/bin/python2 for package: python27-python-pip-8.1.2-3.el7.noarch --> Processing Dependency: python27-python-setuptools for package: python27-python-pip-8.1.2-3.el7.noarch --> Processing Dependency: python27-runtime for package: python27-python-pip-8.1.2-3.el7.noarch --> Running transaction check ---> Package python27-python.x86_64 0:2.7.17-2.el7 will be installed --> Processing Dependency: python27-python-libs(x86-64) = 2.7.17-2.el7 for package: python27-python-2.7.17-2.el7.x86_64 ---> Package python27-python-setuptools.noarch 0:0.9.8-7.el7 will be installed ---> Package python27-runtime.x86_64 0:1.1-26.1.el7 will be installed --> Running transaction check ---> Package python27-python-libs.x86_64 0:2.7.17-2.el7 will be installed --> Finished Dependency Resolution Dependencies Resolved ============================================================================================================================================================================================= Package Arch Version Repository Size ============================================================================================================================================================================================= Installing: python27-python-pip noarch 8.1.2-3.el7 rhel-server-rhscl-7-rpms 1.7 M Installing for dependencies: python27-python x86_64 2.7.17-2.el7 rhel-server-rhscl-7-rpms 87 k python27-python-libs x86_64 2.7.17-2.el7 rhel-server-rhscl-7-rpms 5.8 M python27-python-setuptools noarch 0.9.8-7.el7 rhel-server-rhscl-7-rpms 400 k python27-runtime x86_64 1.1-26.1.el7 rhel-server-rhscl-7-rpms 1.1 M Transaction Summary ============================================================================================================================================================================================= Install 1 Package (+4 Dependent packages) Total download size: 9.1 M Installed size: 34 M Is this ok [y/d/N]: n
因為來自 rhel repo 的 yum 下載了非常舊的版本 8.1.x
然後我們從 epel repo 嘗試如下
yum install python-pip Loaded plugins: langpacks, product-id, search-disabled-repos, subscription-manager epel/x86_64/metalink | 22 kB 00:00:00 epel | 4.7 kB 00:00:00 (1/3): epel/x86_64/group_gz | 95 kB 00:00:00 epel/x86_64/updateinfo FAILED https://www.mirrorservice.org/sites/dl.fedoraproject.org/pub/epel/7/x86_64/repodata/26aa3fe31b7a3b4fd3c1865e5a8635f296b1a9c3591a936744c4226a7b170089-updateinfo.xml.bz2: [Errno 14] HTTPS Error 404 - Not Found Trying other mirror. To address this issue please refer to the below knowledge base article https://access.redhat.com/articles/1320623 If above article doesn't help to resolve this issue please open a ticket with Red Hat Support. (2/3): epel/x86_64/updateinfo | 1.0 MB 00:00:00 (3/3): epel/x86_64/primary_db | 6.9 MB 00:00:11 Resolving Dependencies --> Running transaction check ---> Package python2-pip.noarch 0:8.1.2-14.el7 will be installed --> Finished Dependency Resolution Dependencies Resolved ============================================================================================================================================================================================= Package Arch Version Repository Size ============================================================================================================================================================================================= Installing: python2-pip noarch 8.1.2-14.el7 epel 1.7 M Transaction Summary ============================================================================================================================================================================================= Install 1 Package Total download size: 1.7 M Installed size: 7.2 M Is this ok [y/d/N]: n
但同樣來自
epel
repo,我們有非常舊的 pip 版本 -8.1.2
那麼我的程序有問題嗎?
如果是,那麼如何安裝最新的 pip 版本?
你沒有做錯任何事,8.1.2 是 EPEL 7 repo 中可用的最新版本的 pip。RHEL/CentOS 7 通常不會獲得新版本的軟體,只有錯誤修復,這同樣適用於 EPEL。pip EPEL repo中有一些 CVE 修復和其他最近的更新檔,所以我認為它正在被積極維護並且可以安全使用。
8.1.2 是 RHEL 儲存庫中適用於 RHEL 7.6(以及 RHEL 7.8)的最新版本,對應的 Python 版本為 2.7。版本 19.3.1 可用,但它適用於 Python 3.8。如果啟用必要的 RHEL 儲存庫並使用以下命令搜尋包,則可以看到它可用
yum
:subscription-manager repos enable rhel* yum list available | grep python-pip
這將向您展示所有可用 Python 版本的最新版本,包括 Python 2.7 的 8.1.2 和 Python 3.8 的 19.3.1。
如果需要 21.x 版本,則需要安裝更高版本的 Python,例如 3.8。Python 2.7 不再受支持並且不會再收到更新。