简介: 本文主要为大家讲解CentOS 7系统中执行yum命令失败等常见问题的排查方法。
1)检查yum仓库是否配置正确,可以到CentOS 镜像下载阿里云repo配置文件。
2)如果报错中包含$releasever变量, 则执行rpm -qa | grep centos-release确认centos-release是否安装。未安装可以执行以下命令下载安装包进行安装。
1 2 |
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 |
1)从报错可以看到提示以下信息,此处以安装Telnet为例。
1 2 |
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 |
解除目录的i属性即可。
1 |
chattr -i /usr/bin |
在执行yum命令时提示以下报错信息。
1 |
-bash: /usr/bin/yum: /usr/bin/python: bad interpreter: No such file or directory |
说明:yum是一个python脚本。
1)执行以下命令查看yum路径。
1 |
cat /usr/bin/yum |
系统会返回以下路径。
1 |
#!/usr/bin/python |
2)执行以下命令检查上述查看的路径。
1 |
ls -al /usr/bin/python |
如果系统返回以下信息,Python可能被卸载、被改名或移动路径。
1 |
ls: cannot access /usr/bin/python: No such file or directory |
具体请参考以下步骤进行排查。
1 |
rpm -qa | grep python |
系统返回以下信息。
1 |
python-decorator-3.4.0-3.el7.noarchlibselinux-python-2.5-14.1.el7.x86_64python-backports-1.0-8.el7.x86_64python-pyudev-0.15-9.el7.noarchrpm-python-4.11.3-35.el7.x86_64python-2.7.5-76.el7.x86_64..... |
1 |
ls -al /usr/bin/python* |
系统返回以下信息。
1 2 3 4 |
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.7lrwxrwxrwx 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被卸载。
请找个同系统的正常实例,执行如下命令。
1 2 |
mkdir /python/ yum install python --downloadonly --downloaddir=/python/ |
执行以下命令将/python/中的rpm包传到异常实例。
1 |
scp /python/* root@x.x.x.x:/tmp/ |
注意> :x.x.x.x指的是需要访问的主机地址。前提是主机还有公网访问能力,能复制文件到主机中。
1 |
cd /tmprpm -ivh * |
报错信息 :zabbix-web-4.2.8-1.el7.noarch: [Errno 256] No more mirrors to try
解决办法 :
1 2 3 4 |
#mv /var/cache/yum/* /delete/ # yum clean all # yum makecache #yum install -y #安装软件,不行就yum -y update |
有时在执行yum命令中短线或强制终止时没有干净,导致下次运行时提示:Another app is currently holding the yum lock; waiting for it to exit…
解决方法:
1 |
rm -f /var/run/yum.pid |
执行以上命令删除yum.pid即可。
使用Yum安装东西时,如果有强制退出过yum或yum异常结束,再下次使用yum命令时会提示:There are unfinished transactions remaining. You might consider running yum-complete-transaction first to finish them。
可以通过以下方法处理:
一、安装 yum-complete-transaction
1 |
yum -y install yum-utils |
这是一个能发现未完成或被中断的yum事务的程序。
二、清除yum缓存
1 |
yum clean all |
1 |
<img style="background-color: #ffffff; font-family: Lato, sans-serif; font-size: 16px;" src="https://longsheng.org/wp-content/uploads/2024/12/44bb8a747aade2d242a0837f4f9a4c9c.png" alt="在这里插入图片描述" /> |
三、执行清理未完成事务
1 |
yum-complete-transaction --cleanup-only |
Loading mirror speeds from cached hostfile
There are no enabled repos.
解决方法:
根据错误提示,找不到可用的yum源,从外网下载YUM repo源,通过rz工具上传,上传到/etc/yum.repos.d/,并且命名后缀一定以.repo结尾;
解决方法:
根据错误的提示,找不到nginx软件包,可能的原因是nginx名称不对,或者默认的YUM源中不包括nginx软件包,解决的方法:可以下载epel
扩展YUM源,可以直接在线下载:yum install epel-relase -y
http://mirrors.aliyun.com/centos/7/os/x86_64/repodata/repomd.xml:
[Errno 14] curl#6 – “Could not resolve host: mirrors.aliyun.com; 未知的错误”
解决方法:
根据错误提示,该错误表示无法解析该域名,排错思路检测本地IP是否配置正确,检测本地DNS是否配置有效,如果DNS错误,可以执行
如下命令配置:
echo “nameserver 8.8.8.8” >/etc/resolv.conf
案例
参考链接 :
Yum 有未完成事务提示 清除办法 :
CentOS Yum进程被锁定解决方案 :
CentOS 7 执行 yum 命令失败问题的排查方法 : https://v5.net/Related/CentOS-yum-utils.htmlhttps://v5.net/CentOSApp/CentOS-yum-lock-pid.htmlhttps://mp.weixin.qq.com/s/i-iTwYQY-x9sjY1biiWmAw
from:https://blog.csdn.net/qq_40907977/article/details/106338694