查看原文
其他

CentOS 7 执行 yum 命令失败问题的排查方法

民工哥技术之路 民工哥技术之路 2021-12-16

作者:cnLinuxer

原文:https://developer.aliyun.com/article/761306?spm=a2c6h.12873581.0.dArticle761306.5aaf2784Z7f8Ge&groupCode=mirror

简介

本文主要为大家讲解 CentOS 7系统中执行yum命令失败等常见问题的排查方法。

1、执行yum命令报404错误

1)检查yum仓库是否配置正确,可以到阿里云下载repo配置文件。

wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo

2)如果报错中包含$releasever变量, 则执行rpm -qa | grep centos-release确认centos-release是否安装。未安装可以执行以下命令下载安装包进行安装。

wget https://mirrors.aliyun.com/centos/7/os/x86_64/Packages/centos-release-7-7.1908.0.el7.centos.x86_64.rpm
rpm -ivh centos-release-7-7.1908.0.el7.centos.x86_64.rpm

2、 执行yum install命令提示failed错误

1)从报错可以看到提示以下信息,此处以安装Telnet为例。

ERROR UNpacking rpm package 1:telnet-0.17-64.e17.x86_64
error:unpacking of archive failed on file /usr/bin/telnet;5e785bc7:cpio:open

2)执行lsattr命令检查/usr/bin目录权限,发现该目录有i属性,导致无法写入文件。执行以下命令解除目录的i属性即可。

chattr -i /usr/bin

3、执行yum命令提示Python解释器不存在

在执行yum命令时提示以下报错信息:

-bash: /usr/bin/yum: /usr/bin/python: bad interpreter: No such file or directory
说明:yum是一个python脚本。

1)执行以下命令查看yum路径。

cat /usr/bin/yum

系统会返回以下路径:

#!/usr/bin/python
...

2)执行以下命令检查上述查看的路径。

ls -al /usr/bin/python

如果系统返回以下信息,Python可能被卸载、被改名或移动路径。

ls: cannot access /usr/bin/python: No such file or directory

具体请参考以下步骤进行排查。

  • 执行以下命令查看安装包是否存在。
rpm -qa | grep python

系统返回以下信息。

python-decorator-3.4.0-3.el7.noarch
libselinux-python-2.5-14.1.el7.x86_64
python-backports-1.0-8.el7.x86_64
python-pyudev-0.15-9.el7.noarch
rpm-python-4.11.3-35.el7.x86_64
python-2.7.5-76.el7.x86_64
.....

  • 执行以下命令查看Python相关文件。
ls -al /usr/bin/python*

系统返回以下信息。

lrwxrwxrwx 1 root root 14 Feb 15 2019 /usr/bin/python-config -> python2-config
lrwxrwxrwx. 1 root root 7 Feb 15 2019 /usr/bin/python.bak -> python2
lrwxrwxrwx. 1 root root 9 Feb 15 2019 /usr/bin/python2 -> python2.7
lrwxrwxrwx 1 root root 16 Feb 15 2019 /usr/bin/python2-config -> python2.7-config
-rwxr-xr-x. 1 root root 7216 Oct 31 2018 /usr/bin/python2.7
-rwxr-xr-x 1 root root 1835 Oct 31 2018 /usr/bin/python2.7-config

请根据返回的信息参考以下场景进行操作。

1)检查/usr/bin/python.bak是否被改名,若发现被改名后手动改回即可恢复正常。

2)如果未发现Python相关文件,即判定Python被卸载。

  • 请找个同系统的正常实例,执行如下命令。
mkdir /python/
yum install python --downloadonly --downloaddir=/python/
  • 执行以下命令将/python/中的rpm包传到异常实例。
scp /python/* root@x.x.x.x:/tmp/
注意> :x.x.x.x 指的是需要访问的主机地址。前提是两者有通信能力,能复制文件到主机中。

执行以下命令在异常实例上安装Python即可。

cd /tmp
rpm -ivh *


结语

如果您看完本文后有所收获, 还希望您随手点个在看 、或者分享转发。您的支持是我坚持分享的最大动力!

end


最新整理的 2TB 技术干货:包括架构师实战教程、大数据、Docker容器、系统运维、数据库、redis、MongoDB、电子书、Java基础课程、Java实战项目、ELK Stack、机器学习、BAT面试精讲视频等。只需在「 民工哥技术之路」微信公众号对话框回复关键字:1024 即可获取全部资料。 

精彩文章推荐:


我没有开挂的人生!自律和坚持,是我走IT之路的唯一捷径

受打击了!我身边这些有钱人的故事

突发!360、哈工大等33家中企遭美列入实体清单(附详细名单)

又被"黑"!百度到底做错了什么?

值得收藏!介绍15个Linux下 CPU 监控工具

2020年将是Linux在windows桌面的一年

大白话带你认识 Kafka

好文章, 朕在看」❤️↓↓↓

: . Video Mini Program Like ,轻点两下取消赞 Wow ,轻点两下取消在看

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存