這篇文章並沒有解決刪除python2後,產生的一系列問題,包括yum不可用,yum使用的是系統原始的python。重新安裝的沒有yum模塊及rpm模塊,雖然文章有安裝的過程,但最終也不可用,yum模塊又涉及到了intltool-update,而intltool-update又涉及到了perl,一系統的相互關係,最後關係暈了,最主要的是yum不可用,所有的依賴都需要自已去找,沒頭沒了。有興趣看看失敗過程的朋友,可以看看。最終還得重裝系統。(>!!<),重新安裝vim及python的支持。好可憐。
解決方法參見 https://blog.csdn.net/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