yum安装报错128

错误128:
Traceback (most recent call last):
File "/usr/bin/yum", line 29, in <module>
yummain.user_main(sys.argv[1:], exit_code=True)
File "/usr/share/yum-cli/yummain.py", line 368, in user_main
errcode = main(args)
File "/usr/share/yum-cli/yummain.py", line 274, in main
return_code = base.doTransaction()
File "/usr/share/yum-cli/cli.py", line 773, in doTransaction
resultobject = self.runTransaction(cb=cb)
File "/usr/lib/python2.7/site-packages/yum/__init__.py", line 1818, in runTransaction
self._store_config_in_history()
File "/usr/lib/python2.7/site-packages/yum/__init__.py", line 6747, in _store_config_in_history
myrepos += repo.dump()
File "/usr/lib/python2.7/site-packages/yum/yumRepo.py", line 523, in dump
output = output + '%s = %s\n' % (attr, res)
UnicodeDecodeError: 'ascii' codec can't decode byte 0xe6 in position 124: ordinal not in range(128)


看着报错提示各种错误

有个共同点,都是以.py结尾的文件报错,分析可能是python脚本执行时语言编码不一致的问题

做以下修改后yum安装正常

# vim /usr/share/yum-cli/yummain.py

import sys
reload(sys)
sys.setdefaultencoding('utf-8')
### CentOS 7 中 yum 安装报错解决方案 当在 CentOS 7 上升级 Python 版本后,可能会导致 `yum` 命令无法正常工作。这是因为 `yum` 默认依赖于系统的原始 Python 版本(通常是 Python 2.7)。如果更改了默认的 Python 路径或者替换了系统自带的 Python,则可能导致兼容性问题。 以下是针对此问题的具体解决方法: #### 方法一:恢复原版 Python 环境 为了确保 `yum` 的功能不受影响,可以重新设置系统默认使用的 Python 版本为原来的版本。通过以下命令检查当前默认的 Python 版本: ```bash ls -l /usr/bin/python* ``` 如果发现 `/usr/bin/python` 或者其他相关链接被修改过,可以通过创建软链的方式将其指向正确的路径: ```bash sudo ln -sf /usr/bin/python2.7 /usr/bin/python ``` 这一步操作会将系统默认的 Python 变回原本支持 `yum` 运行的版本[^1]。 #### 方法二:安装并配置 Python2-pip 和虚拟环境工具 有时即使修复了默认解释器仍然存在一些模块缺失的情况。此时建议先尝试安装必要的包管理工具来补充这些组件。执行如下指令完成对 `python2-pip` 的部署: ```bash sudo yum install python2-pip ``` 之后利用 pip 工具进一步扩展所需库文件,比如 virtualenv 等辅助构建隔离开发空间的技术手段。 #### 方法三:手动调整 YUM 配置中的 Python 解析器指定 对于某些特殊场景下可能需要更细致地控制程序启动时所调用的语言引擎实例化过程。编辑位于 `/usr/libexec/yum` 文件内部定义的第一行 shebang 行内容改为显式声明目标解析脚本位置: ```diff -#!/usr/bin/env python +#!/usr/bin/python2.7 ``` 上述改动能够强制让该应用程序始终运行在一个特定版本之上而不受外部因素干扰。 以上三种方式均能有效缓解因更新基础语言框架而引发的一系列连锁反应现象,在实际应用过程中可以根据具体情况灵活选用最合适的策略加以应对处理即可恢复正常服务状态。 ```python # 示例代码片段用于验证Python版本切换效果 import sys print(sys.version_info) ```
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值