原因
之前, 曾经在 VPS 上想更新 Python 的版本, 升级时也把 yum 依赖的 Python2 也卸载了, 安装 Python3.8, 同时也把 yum 重装了一遍. 然后, 在虚拟机上由于用 yum 安装不了任何程序, 想更新 yum, 过程中不小心把虚拟机的 yum 和 Python2 删除了, 所以也重新安装了 yum.
重装的教程
1. 卸载现有的 Python, 强制删除已安装程序及其关联:
rpm -qa|grep python|xargs rpm -ev --allmatches --nodeps
2. 强制删除 Python 所有残余文件:
whereis python| xargs rm -frv
3. 卸载现有的 yum:
rpm -qa| grep yum| xarg
4. 强制删除所有残余文件:
whereis yum| xargs rm -frv
5. 检查 CentOS 7 内核版本: cat /etc/CentOS-release.
6. 寻找对应的文件下载, 在 http://vault.centos.org 找到对应的依赖下载.
我的 CentOS7 版本完整路径为: http://vault.centos.org/7.7.1988/os/x86_64/Packages/
使用 wget 下载文件:
- libxml2-python-2.9.1-6.el7_2.3.x86_64.rpm
- python-2.7.5-68.el7.x86_64.rpm
- python-backports-1.0-8.el7.x86_64.rpm
- python-backports-ssl_match_hostname-3.5.0.1-1.el7.noarch.rpm
- python-chardet-2.2.1-1.el7_1.noarch.rpm
- python-devel-2.7.5-68.el7.x86_64.rpm
- python-iniparse-0.4-9.el7.noarch.rpm
- python-ipaddress-1.0.16-2.el7.noarch.rpm
- python-kitchen-1.1.1-5.el7.noarch.rpm
- python-libs-2.7.5-68.el7.x86_64.rpm
- python-pycurl-7.19.0-19.el7.x86_64.rpm
- python-setuptools-0.9.8-7.el7.noarch.rpm
- python-urlgrabber-3.10-8.el7.noarch.rpm
- python-virtualenv-15.1.0-2.el7.noarch.rpm
- rpm-4.11.3-32.el7.x86_64.rpm
- rpm-build-4.11.3-32.el7.x86_64.rpm
- rpm-build-libs-4.11.3-32.el7.x86_64.rpm
- rpm-libs-4.11.3-32.el7.x86_64.rpm
- rpm-python-4.11.3-32.el7.x86_64.rpm
- rpm-sign-4.11.3-32.el7.x86_64.rpm
- yum-3.4.3-158.el7.CentOS.noarch.rpm
- yum-metadata-parser-1.1.4-10.el7.x86_64.rpm
- yum-plugin-aliases-1.1.31-45.el7.noarch.rpm
- yum-plugin-fastestmirror-1.1.31-45.el7.noarch.rpm
- yum-plugin-protectbase-1.1.31-45.el7.noarch.rpm
- yum-utils-1.1.31-45.el7.noarch.rpm
7. 安装依赖
单个安装方式 (针对多个文件一个一个安装):
rpm -ivh --replacepkgs python-2.7.5-68.el7.x86_64.rpm
批量安装方式:
- rpm -Uvh --replacepkgs python*.rpm
- rpm -Uvh --replacepkgs rpm-python*.rpm yum*.rpm rpm-*.rpm
下载完成后安装这些包, 有些依赖你可能要自己解决:
rpm -Uvh --replacepkgs *.rpm
注意, 无论是单个安装还是批量安装, 若是出现安装依赖的问题, 针对报错的依赖复制下来, 在 http://vault.centos.org/7.7.11988/os/x86_64/Packages/(结合自己实际的 CentOS7 版本地址) 上进行搜索依赖包, 下载到 CentOS 7 机子上, 安装报错的依赖包.
8. 完成测试
输入命令 yum 和 python -V
附:
这是我重装 VPS 服务器使用的 yum 和 Python 的 RPM 安装包, 版本为 7.7,CentOS 7 上应该都可以使用
点击下载 yum 和 Python 重装的 RPM 安装包
下载之后, 上传到自己的服务器的里的一个文件夹. 使用如下命令批量安装:
rpm -Uvh --replacepkgs *.rpm
出现问题再到官网下载对应的依赖包.
来源: http://www.jianshu.com/p/e1f8fb33fe66