Linux centos重装yum
1、背景
服务器: Linux centos 8.3 阿里云
好久没维护过服务器的环境了。
只记得自己之前用的服务的的yum python都是2.x版本, 自己部署应用都是后装的 3.x版本。 这次在开发 深度学习服务使用的 python3.10版本。所以部署时,见服务器还是3.6版本。如果就删掉了3.6版本的python的环境。然后源码编译安装python3.10。
但是后续出现了很多问题。
2、问题
1、提示openssl 版本低
SSLError Cant connect to HTTPS URL because the SSL module is not available
需要下载高版本的openssl, 编译安装python3.10时, 在configure 时加上 新版本openssl的路径。
如:
./configure --prefix=/usr/local/python3.10 --with-openssl=/usr/local/openssl
但是在编译安装openssl 时,报错 :
Can't locate ExtUtils/MakeMaker.pm in @INC"
可以用yum来安装:
yum install perl-ExtUtils-MakeMaker
但是报下面的错。
2、 模块缺失
安装过程过程中出现一个比较麻烦的问题是:
ImportError: No module named 'encodings'
这个模块是 3.x版本才有。
Could not find platform independent libraries <prefix>
python环境设置不对。
根据以上问题,可以判断时应为yum依赖的python环境发生变化,导致yum不可用。
因此,可以重新修复python环境或者重装yum。
此处, 由于之前一直以为yum依赖python 2.x , 但是安装后,yum并没有可用。 因此就采取重装yum 的方式(这时才发现,应该安装python3.x而不是2.x)。
3、安装 yum
步骤: (1)查看系统版本,确定rpm文件下载路径 (2)下载python、yum相关的rpm文件。 (3)安装python、yum。(4)配置yum源
删除已有yum:
rpm -aq|grep yum|xargs rpm -e --nodeps
(1)查看系统版本,确定rpm文件下载路径
查看系统版本:
cat /etc/redhat-release
然后去:
https://vault.centos.org/
找与自己系统相关的资源文件。 (此处,也可以使用其他的镜像,不一定是vault)。
比如: 自己的服务器:
CentOS Linux release 8.3.2011
资源文件目录:
https://vault.centos.org/8.3.2011/BaseOS/x86_64/os/Packages/
(2)下载python、yum相关的rpm文件。
看到网上很多人都列举出了所有与python、yum相关的文件。但是自己一个一个找麻烦,另外别人的系统跟自己的系统可能不一样,因此下载的文件名可以不一样。 所以我采用js直接采集所有python、yum相关的文件地址。
资源文件目录页面 -> 鼠标右键 -> 审查(inspect) -> 控制台(console),执行一下js代码:
ele = document.getElementById("indexlist")
subElements = ele.getElementsByTagName("a")
res = []
for(var i=0; i<subElements.length; i++) {
if( subElements[i].href.toLowerCase().indexOf("rpm") == -1) {
continue;
}
if( subElements[i].href.toLowerCase().indexOf("python") != -1 || subElements[i].href.toLowerCase().indexOf("yum") != -1 ) {
res.push(" wget " + subElements[i].href)
}
}
console.log(res)
右键 【复制object】,复制出来的res可以在python中print每一行,然后复制,在终端执行命令,下载所有rpm文件。比如:
wget https://vault.centos.org/8.3.2011/BaseOS/x86_64/os/Packages/platform-python-3.6.8-31.el8.x86_64.rpm
(3)安装python、yum
在rpm文件所在的目录里执行命令安装python、yum
安装python
rpm -ivh *python* --nodeps --force
安装yum
rpm -ivh *yum* --nodeps --force
注意: 命令中的 --force 需要加上,不然可能会一直提示缺少一些依赖,烦死。
(4)配置yum源
自己使用的是阿里云的源,具体使用方法见:
阿里云CentOS 镜像
https://developer.aliyun.com/mirror/centos?spm=a2c6h.13651102.0.0.3e221b11uPvY4u
以上就可以完成yum与对应的python环境重置。
注意:
如果完成yum重装后,还有提示说python环境不对时,一般应该是 ~/.local 下的配置文件,这时候可以将报错的文件直接删除就可以。