目录
一、现象说明
在虚拟机的centos系统使用yum安装程序时出错,进一步测试,发现执行yum相关的基本命令,也出现错误,比如“查看yum版本的命令”:
yum –version
也会报错,如下图示:
由此看出,yum工具本身运行有错误。
二、问题分析
从第一章的图中可以看出,报错的第一个主要是如下错误:
“ImportError: /usr/lib64/librepo.so.0: undefined symbol: curl_multi_wait”,
估计这个是错误的根源。
经过分析,出现这个报错的原因是未找到动态库引用的位置,或是链接了错误的libcurl版本引起的。
三、解决过程
1、查看库的依赖关系
使用ldd -r 查看库的依赖关系,命令如下:
# ldd -r /usr/lib64/librepo.so.0
结果如下图所示:
可以看到,由于机器上服务的需要,将库链接的目录指向了其他路径下的libxml2.so.2。因此,可以基本确定,应该是路径错误或者没有把路径放入环境变量,导致找不到库文件libxml2.so.2,而导致的问题。
2、查看库所在的正确位置
采用如下命令:
# find / -name libxml2.so.2
结果如下图示:
3、设置库索引的环境变量
将/usr/lib64加入到环境变量LD_LIBRARY_PATH中,使用如下命令:
# export LD_LIBRARY_PATH=/usr/lib64:LD_LIBRARY_PATH
四、验证问题解决
1、再次使用yum基本命令
# yum –version
结果如下图:
可以看出,yum命令可以正常使用。
2、使用yum安装软件来验证
再次测试使用yum安装nload命令,操作如下:
[root@ecs-52a1 vidisit]# nload
bash: nload: command not found
[root@ecs-52a1 121yunwei]#
[root@ecs-52a1 121yunwei]# yum install nload
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
epel/x86_64/metalink | 8.9 kB 00:00:00
* base: ftp.sjtu.edu.cn
* epel: mirror.nju.edu.cn
* extras: mirrors.ustc.edu.cn
* updates: mirrors.ustc.edu.cn
base | 3.6 kB 00:00:00
epel | 4.3 kB 00:00:00
extras | 2.9 kB 00:00:00
updates | 2.9 kB 00:00:00
(1/2): epel/x86_64/updateinfo | 1.0 MB 00:00:00
(2/2): epel/x86_64/primary_db | 8.7 MB 00:00:00
Resolving Dependencies
--> Running transaction check
---> Package nload.x86_64 0:0.7.4-4.el7 will be installed
--> Finished Dependency Resolution
Dependencies Resolved
==============================================================================================================================================================
Package Arch Version Repository Size
==============================================================================================================================================================
Installing:
nload x86_64 0.7.4-4.el7 epel 70 k
Transaction Summary
==============================================================================================================================================================
Install 1 Package
Total download size: 70 k
Installed size: 176 k
Is this ok [y/d/N]: y
Downloading packages:
nload-0.7.4-4.el7.x86_64.rpm | 70 kB 00:00:00
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
Installing : nload-0.7.4-4.el7.x86_64 1/1
Verifying : nload-0.7.4-4.el7.x86_64 1/1
Installed:
nload.x86_64 0:0.7.4-4.el7
Complete!
[root@ecs-52a1 121yunwei]#
[root@ecs-52a1 121yunwei]#
由此可以看出,yum安装应用程序也正常。
问题得到解决。
五、yum介绍
1、yum是什么
yum(Yellowdog Updater Modified)是 CentOS(以及其他基于 RPM 的 Linux 发行版,如 Red Hat Enterprise Linux 和 Fedora)中的一个包管理工具。它允许用户自动获取、安装、更新和删除软件包。
2、基本概念
(1)仓库(Repository)
yum 可以从一个或多个仓库中获取软件包。仓库是一个包含许多软件包和元数据的服务器。元数据描述了软件包之间的依赖关系和其他信息。
(2)软件包(Package)
软件包是一个已编译和打包的程序或库,可以很容易地安装到 Linux 系统上。
3、主要功能
(1)安装软件包
使用 yum install package_name
命令可以自动下载、安装软件包及其所有依赖项。
(2)更新软件包
yum update
命令可以更新系统上已安装的所有软件包到最新版本。如果只想更新特定的软件包,可以使用 yum update package_name
。
(3)删除软件包
yum remove package_name
命令可以删除已安装的软件包。
(4)查询软件包
yum
提供了许多查询选项,如 yum list
(列出所有可用软件包)、yum info package_name
(显示特定软件包的详细信息)等。
(5)解决依赖关系
yum
能够自动处理软件包之间的依赖关系,确保在安装或更新软件包时所有必要的依赖项都已满足。
文章正下方可以看到我的联系方式:鼠标“点击” 下面的 “威迪斯特-就是video system 微信名片”字样,就会出现我的二维码,欢迎沟通探讨。