第四节 删除python2后,yum 报错 File "/usr/bin/yum", line 30 except KeyboardInterrupt, e:

这篇文章并没有解决删除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:

git clone git://yum.baseurl.org/yum-metadata-parser.git

  • 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


























  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在安装完Python 3之后,有些用户使用yum命令来安装软件包时可能会遇到“except keyb”报错的问题。这可能会造成一些不便,但实际上这个问题是很容易解决的。 首先,我们需要了解一下这个错误的来源。在Unix/Linux系统中,当我们执行一些命令时,会使用解释器(interpreter)来解析命令,例如,当我们执行Python脚本时,会使用Python解释器来运行脚本。而在执行yum命令时,也会使用Python解释器。但是,由于Python解释器的路径被修改,yum命令找不到正确的Python解释器,就会报错。 解决这个问题的方法就是将Python解释器的路径改回默认路径。具体步骤如下: 1.通过which命令查看当前系统中Python解释器的路径。 which python 2.将yum命令的第一行的Python解释器路径改为默认路径。 sudo vi /usr/bin/yum 在打开文件后,找到第一行,改为: #!/usr/bin/python2 改为: #!/usr/bin/python3 这样,yum命令就会使用Python 3的解释器来运行了。 但是需要注意的是,修改/usr/bin/yum可能会引起其他问题,因为该文件是yum程序的核心文件。如果你不确定如何修改该文件,请咨询一位经验丰富的系统管理员,以免产生更大的问题。 总之,在安装Python 3之后,出现yum命令报错的问题并不算什么大问题,只需将Python解释器路径改回默认路径即可解决。并且,这也提醒我们,在修改系统文件时一定要小心谨慎,以免造成意料之外的后果。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值