yum相关的错误

[TOC]

场景1:执行 yum install 报错 undefined symbol: CRYPTO_set_locking_callback

故障上报

  • 2016.08.03.执行 yum list 报错如下:
/usr/lib64/python2.6/site-packages/pycurl.so: undefined symbol: CRYPTO_set_locking_callback

解决方案

  • 1.执行 ldconfig -v | grep pycurl 查看动态库包含的libcurl,结果如下:
ldconfig: /etc/ld.so.conf.d/kernel-2.6.32-431.el6.x86_64.conf:6: duplicate hwcap 1 nosegneg
  • 2.查看pycurl.so文件的链接关系
ldd /usr/lib64/python2.6/site-packages/pycurl.so
  • 3.查看已载入的链接库文件中,是否包含这些库文件,发现这些库都已经载入。所以/etc/ld.so.conf 配置没有问题
ldconfig -v|grep -E 'linux-vdso.so.1|libcurl.so.4|libpython2.6.so.1.0|libpthread.so.0|libc.so.6'
ldconfig -v|grep -E 'librt.so.1|libz.so.1|libdl.so.2|libutil.so.1|libm.so.6'
  • 4.使用strace来跟踪进程执行时的系统调用和所接收的信号,看卡在哪里,如果没有这个命令,需要安装一下,centos6.5 里面是strace-4.5.19-1.19.el6.x86_64.rpm 这个安装包
strace yum -o /tmp/out.file

注意:在报错位置的上方打开了/usr/lib64/libcurl.so.4,再往下开始报错了,所以排查一下/usr/lib64/libcurl.so.4

  • 5.查看/usr/lib64/libcurl.so.4文件,发现它只是一个软连接文件,到libcurl.so.4.2.0
[root@localhost pycurl-7.19.0]# ll /usr/lib64/libcurl.so.4
lrwxrwxrwx 1 root root 27 Jan 11 00:05 /usr/lib64/libcurl.so.4 -> /usr/lib64/libcurl.so.4.2.0
  • 6.进入这个目录看会不会有其他版本的libcurl.so,发现还有libcurl.so.4.1.1,会不会是这个问题呢,安装报错提示看,应该和一个库文件版本有关系
[root@localhost pycurl-7.19.0]# ll /usr/lib64/libcurl.so*
lrwxrwxrwx. 1 root root   16 Nov  8  2015 /usr/lib64/libcurl.so -> libcurl.so.4.1.1
lrwxrwxrwx  1 root root   23 Jun 27 09:14 /usr/lib64/libcurl.so.3 -> /usr/lib64/libcurl.so.4
lrwxrwxrwx  1 root root   16 Sep 30 08:12 /usr/lib64/libcurl.so.4 -> libcurl.so.4.2.0
-rwxr-xr-x  1 root root 338K Jun 26  2013 /usr/lib64/libcurl.so.4.1.1
-rw-r--r--  1 root root 331K Oct 31  2011 /usr/lib64/libcurl.so.4.2.0
  • 7.尝试将链接文件,指向老版本
[root@cacti_billing lib64]# mv /usr/lib64/libcurl.so.4 /tmp/
[root@cacti_billing lib64]# ln -s /usr/lib64/libcurl.so.4.1.1 /usr/lib64/libcurl.so.4
  • 8.改完之后故障解决

场景2:python升级导致yum命令无法使用

故障上报

  • 系统默认的python为2.6,升级到2.7.9以后执行yum任何命令都会报错

解决方案

  • 1.执行 python -V 确认当前版本为 2.7.9
  • 2.执行 ll /usr/bin/python 确认python的软链:
/usr/bin/python -> /usr/local/python2.7/bin/python2.7
  • 3.修改yum库中的python版本,把 /usr/bin/yum 第一行的 #!/usr/bin/python 改为 #!/usr/bin/python2.6
cat /usr/bin/yum
sed -i '1s/python$/python2.6/g' /usr/bin/yum
  • 4.执行 yum --help 确认一下

场景3:执行 yum install 报错 This system is not registered with RHN

故障上报

  • 2016.02.02.执行 yum install -y lrzsz 报错 This system is not registered with RHN
[root@localhost]# yum install -y lrzsz
Loaded plugins: rhnplugin, security
This system is not registered with RHN.
RHN support will be disabled.
Setting up Install Process
Parsing package install arguments
No package lrzsz available.
Nothing to do

解决方案

cd /etc/yum.repos.d
wget http://docs.linuxtone.org/soft/lemp/CentOS-Base.repo
mv rhel-debuginfo.repo rhel-debuginfo.repo.bak
mv CentOS-Base.repo rhel-debuginfo.repo

场景4:执行 yum install 报错 No more mirrors to try

故障上报

  • 2017.02.21.执行 yum install -y wget 报错如下:
Loaded plugins: fastestmirror
http://mirrors.cloud.aliyuncs.com/centos/7/os/x86_64/repodata/repomd.xml: [Errno 14] curl#6 - "Could not resolve host: mirrors.cloud.aliyuncs.com; Unknown error"
Trying other mirror.

Error downloading packages:
  wget-1.14-10.el7_0.1.x86_64: [Errno 256] No more mirrors to try.

解决方案

  • 1.执行 cat /etc/resolv.conf 确认是否有配置dns服务器
  • 2.若为阿里云ecs,建议更改yum源为阿里云yum源
  • 3.若为华为云ecs,建议更改yum源为华为云yum源

场景5:执行 yum install 提示无可用包

故障上报

  • 2017.03.24.执行 yum install -y libvdpau 提示无可用包

解决方案

  • 先配置
vi /etc/yum.repos.d/linuxtech-testing.repo

[linuxtech-testing]
name=LinuxTECH Testing
baseurl=http://pkgrepo.linuxtech.net/el6/testing/
enabled=0
gpgcheck=1
gpgkey=http://pkgrepo.linuxtech.net/el6/release/RPM-GPG-KEY-LinuxTECH.NET
  • 再执行
yum --enablerepo=linuxtech-testing install -y libvdpau

场景6:执行 yum 相关命令卡住无法退出

故障上报

  • 2020.05.18.执行yum相关命令总是卡住,ctrl+c也退出不了

发生原因

  • rpm的数据库出现异常了,所以会导致的执行命令时直接卡死;造成rpm的数据库异常,通常是因为之前不正常的安装或查询;

解决方案

  • 删除rpm数据文件后再重建rpm数据文件,命令如下
ll /var/lib/rpm/__db.00*
rm -f /var/lib/rpm/__db.00*
rpm -vv --rebuilddb
yum clean all 
yum makecache

场景7:yum安装报错 - 待完善

故障上报

  • 最初是vi不能用
[root@wh-25126-baas]# alias vi='/bin/vi'
  • 后来yum安装(比如安装cmake)报错
[root@wh-25126-baas]# ldconfig -v | grep libcurl

发生原因

  • 查看 /etc/ld.so.conf 重复了
[root@wh-25126-baas]# cat /etc/ld.so.conf
include ld.so.conf.d/*.conf

[root@wh-25126-baas]# ll /etc/ld.so.conf.d/*.conf
-r--r--r--. 1 root root 324 Sep 10  2014 /etc/ld.so.conf.d/kernel-2.6.32-431.29.2.el6.x86_64.conf
-r--r--r--. 1 root root 324 Nov 22  2013 /etc/ld.so.conf.d/kernel-2.6.32-431.el6.x86_64.conf
-rw-r--r--. 1 root root  17 Feb 13  2014 /etc/ld.so.conf.d/mysql-x86_64.conf

解决方案

  • 删掉libcurl.so.4.2.0,再刷新下动态链接库
rm -f /usr/lib64/libcurl.so.4.2.0
ldconfig
Copyright © www.sqlfans.cn 2023 All Right Reserved更新时间: 2022-01-14 17:30:07

results matching ""

    No results matching ""