这篇文章并没有解决删除python2后,产生的一系列问题,包括yum不可用,yum使用的是系统原始的python。重新安装的没有yum模块及rpm模块,虽然文章有安装的过程,但最终也不可用,yum模块又涉及到了intltool-update,而intltool-update又涉及到了perl,一系统的相互关系,最后关系晕了,最主要的是yum不可用,所有的依赖都需要自已去找,没头没了。有兴趣看看失败过程的朋友,可以看看。最终还得重装系统。(>!!<),重新安装vim及python的支持。好可怜。
解决方法参见 https://blog.youkuaiyun.com/zsl10/article/details/52315319
如果没有删除原来的系统自带的python可以使用上面的解决方法,如果已经删除了,我相信你已经哭了,希望本文对你有帮助。
1.首选下载源码 http://yum.baseurl.org/wiki/#Topullanonymouslyfromgitdothefollowing
- yum:
git clone git://yum.baseurl.org/yum.git
- yum-utils:
git clone git://yum.baseurl.org/yum-utils.git
- yum-metadata-parser:
- yum-updatesd:
git clone git://yum.baseurl.org/yum-updatesd.git
- yum-docs:
git clone git://yum.baseurl.org/yum-docs.git
下来后以为直接安装就行了,不要太天真,还有很多坑
2. 进入yum目录
执行 make install
报错提示 make[1]: intltool-update: Command not found
安装intltool-update intltool主要用于国际化(I18N)与本地化(L10N)
我安装的是intltool-0.40.6 ./configure提示 configure: error: XML::Parser perl module is required for intltool
下载perl-XML-Parser-2.440.0-12.mga7.aarch64.rpm
http://rpmfind.net/linux/rpm2html/search.php?query=perl-XML-Parser
安装 rpm -ivh perl-XML-Parser-2.440.0-12.mga7.aarch64.rpm
提示需要高版perl 安装ActivePerl-5.26.1.2601-x86_64-linux-glibc-2.15-404865.tar.gz
重新编译intltool-0.40.6成功,不用安装perl-XML-Parser-2.440.0-12.mga7.aarch64.rpm
重新make install提示mv: cannot stat ‘/usr/share/yum-cli/yum-updatesd.py’: No such file or directory
将yum/bin下的yum-updatesd.py拷贝到 /usr/share/yum-cli/目录下
cp bin/yum-updatesd.py /usr/share/yum-cli/
make install
提示错误:make[1]: Entering directory `/home/ddbo/Downloads/yum/yum/yum-cron'
make[1]: *** No rule to make target `install-', needed by `install'. Stop.
我们直接进入yum-cron目录下make install-common
以为结束了,太天真了
运行yum提示:
[root@localhost yum]# yum
File "/usr/bin/yum", line 30
except KeyboardInterrupt, e:
^
SyntaxError: invalid syntax
查啊查。运行python 并import yum发现yum模块有了,但是rpm模块没有,添加rpm python模块
[root@localhost yum]# python
Python 2.7.15 (default, Jun 23 2018, 04:16:47)
[GCC 4.8.5 20150623 (Red Hat 4.8.5-28)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import yum
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "yum/__init__.py", line 23, in <module>
import rpm
ImportError: No module named rpm
一步步接近成功了。疯了,已经过了一天了。
下载rpm-python包及其依赖:
wget http://mirrors.163.com/centos/7/os/x86_64/Packages/anaconda-core-21.48.22.134-1.el7.centos.x86_64.rpm
rpm -ivh 安装anaconda-core-21.48.22.134-1.el7.centos.x86_64.rpm出错
[root@localhost yum]# rpm -ivh anaconda-core-21.48.22.134-1.el7.centos.x86_64.rpm
error: Failed dependencies:
yum-utils >= 1.1.11-3 is needed by anaconda-core-21.48.22.134-1.el7.centos.x86_64
make install yum-utils又出错,这是要疯了吧
intltool-update --gettext-package=yum-utils --pot
Unescaped left brace in regex is illegal here in regex; marked by <-- HERE in m/^(.*)\${ <-- HERE ?([A-Z_]+)}?(.*)$/ at /usr/local/bin/intltool-update line 986.
make[1]: *** [yum-utils.pot] Error 2
wget http://mirrors.163.com/centos/7/os/x86_64/Packages/setroubleshoot-server-3.2.29-3.el7.x86_64.rpm
wget http://mirrors.163.com/centos/7/os/x86_64/Packages/python-meh-0.25.2-1.el7.noarch.rpm
wget http://mirrors.163.com/centos/7/os/x86_64/Packages/createrepo-0.9.9-28.el7.noarch.rpm
wget http://mirrors.163.com/centos/7/os/x86_64/Packages/rpm-python-4.11.3-32.el7.x86_64.rpm
后面yum和rpm-python都装成功后,又出现新问题
[root@localhost site-packages]# python
Python 2.7.15 (default, Jun 23 2018, 04:16:47)
[GCC 4.8.5 20150623 (Red Hat 4.8.5-28)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import yum
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "yum/__init__.py", line 23, in <module>
import rpm
File "rpm/__init__.py", line 9, in <module>
from rpm._rpm import *
ImportError: rpm/_rpm.so: undefined symbol: PyUnicodeUCS4_AsUTF8String
>>>
到这里我承认失败,当把系统的python删除后,造成了这后面的一系列问题,想恢复看来已经不可能,已经两天时了,不在这里浪费了,结束这段旅程,开始新的征程。重新安装系统。
教训,不要删除系统的东西,由其是重新的东西,比如yum