阿里云首页> 弹性计算>>云服务器 ECS >>Linux操作运维问题>>系统配置 > 云服务器 ECS YUM 在线安装软件方法和常见问题处理

云服务器 ECS YUM 在线安装软件方法和常见问题处理

YUM 在线安装软件方法


1、通过如下格式指令进行软件的安装:

 yum install -y <待安装软件名>

操作示例:

2、通过如下格式指令进行软件卸载:

yum remove -y  <待卸载软件名>

操作示例:

3、通过 yum search 来查找命令具体属于哪个包。

比如安装常用的 rz sz 软件,通过 yum install rz 或 yum install rzsz等都无法找到,通过yum searh rz 即可找到,可以看到 rz sz 软件属于 lrzsz 这个包。之后再通过 yum install lrzsz 即可安装。

操作示例如下图所示:

4、通过 yum whatprovides 查找哪个包提供 SO 动态库文件。

比如在 Linux 系统中安装应用时,有时会因为缺少对应的 so 动态库文件而出现异常,比如出现如下报错内容:

error while loading shared libraries: libstdc++.so.6: cannot open shared object file: No such file or directory

出现该问题似乎,首先通过 yum install -y libstdc++-4.4.7-16.el6.i686 命令检索是哪些应用提供这个动态库文件。

然后通过 yum install -y libstdc++-4.4.7-17.el6.i686 进行相应软件包的安装。

5、通过yum  clean 命令清除 yum 的缓存信息。

yum  clean packages 清除缓存中的 RPM 包文件:

yum  clean headers 清楚缓存中的 RPM 包头文件:

  yum clean all 清楚缓存中的 RPM 包和头文件(相当于同时执行上述两条命令):

6、更多相关 YUM 的命令功能可以通过 yum --help 进行查看。

 

如何重装 YUM


1、卸载 yum

$ rpm -qa |grep yum |xargs rpm -e --nodeps

2、下载 yum  yum-plugin-fastestmirror yum-metadata-parser 三个包的文件,具体可以 去http://mirrors.aliyun.com/ 或者官网下载。

$ wget http://mirrors.aliyun.com/centos/6/os/x86_64/Packages/yum-3.2.29-73.el6.centos.noarch.rpm 
$ wget http://mirrors.aliyun.com/centos/6/os/x86_64/Packages/yum-metadata-parser-1.1.2-16.el6.x86_64.rpm
$ wget http://mirrors.aliyun.com/centos/6/os/x86_64/Packages/yum-plugin-fastestmirror-1.1.30-37.el6.noarch.rpm

3、安装上面下载的 rpm 包。

$ rpm -ivh yum-3.2.29-73.el6.centos.noarch.rpm yum-metadata-parser-1.1.2-16.el6.x86_64.rpm yum-plugin-fastestmirror-1.1.30-37.el6.noarch.rpm

 

YUM 操作常见错误处理


YUM 操作出错:Python-3.4.3: bad interpreter: Permission denied

问题现象

执行 yum 命令,返回类似如下错误信息:

-bash: /bin/yum: /usr/bin/Python-3.4.3: bad interpreter: Permission denied

问题原因

YUM 不支持 python3.0 以上版本。

处理办法

1、登陆服务器使用 whereis python,查询当前服务器使用的 python 版本,下图为默认安装的 python,如果单独装过其他版本的 python,都会显示出来。

2、再查看 /usr/bin/yum文件,查看第一行,如果不是默认的 /usr/bin/python,而是其他高版本的 python,则会出执行yum的相关错误。

3、修改为默认的 python 版本就可以正常执行 yum 了。

下图是默认的正常情况:

 

YUM 更新提示:repomd.xml: [Errno 14] HTTP Error 404: Not Found

1、先使用 工具:update_source.sh 进行 YUM 源更新。

2、如果是 CentOS 5 系统的,修改 Centos-Base.repo 中的 $releasever为 5。

3、执行yum makecache.

 

YUM 操作提示:GPG key retrieval failed : [Errno 12] Timeout on http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CengOS

执行 rpm --import  http://mirrors.aliyuncs.com/centos/RPM-GPG-KEY-CentOS-[7、6或者5]即可。

 

YUM 操作提示:xz compression not available

该问题通常是由于安装了不兼容版本的 epel 引起的,尝试通过如下方式删除相应的 epel 包后,重新尝试操作即可:

1、输入如下指令删除错误 epel 包。

$ yum remove -y epel-release

2、清理缓存。

$ rm -rf /var/cache/yum/x86_64/6Server/epel/

3、再次执行相关指令即可。

 

YUM 更新出现报错:Transaction Check Error

执行 yum update 时出现类似如下错误信息:

Transaction Check Error:  
file /etc/pki/tls/certs/ca-bundle.crt from install of openssl-0.9.8e-36.el5_11.x86_64 conflicts with file from package
openssl-0.9.8e-27.el5_10.4.i686  file /usr/share/man/man1/ca.1ssl.gz from install of openssl-0.9.8e-36.el5_11.x86_64 conflicts with file from package
openssl-0.9.8e-27.el5_10.4.i686  file /usr/share/man/man1/req.1ssl.gz from install of openssl-0.9.8e-36.el5_11.x86_64 conflicts with file from package
openssl-0.9.8e-27.el5_10.4.i686  file /usr/share/man/man1/x509.1ssl.gz from install of openssl-0.9.8e-36.el5_11.x86_64 conflicts with file from package
openssl-0.9.8e-27.el5_10.4.i686 Error Summary openssl

根据报错中 error  相关的提示,判断该问题是在升级 OPENSSL 时出现异常所致。

处理方法如下:

1、略过这个报错包的升级,直接升级其他的软件包。执行命令如下:

yum update --exclude=openssl*   // 跳过openssl的升级。

这时升级正常报错消失。

2、关于这个 openssl 包的问题,分析是冲突导致的,这时需要找出要冲突的软件 ,执行命令如下:

$ rpm -q openssl --qf '%{NAME} %{VERSION} %{ARCH}'

例如:得到输出: perl 5.8.8 x86_64 perl 5.8.8 i386

3、卸载掉冲突的 i386 包:

rpm -e perl.i386

 

YUM 操作报错:Error: rpmdb open failed

执行 yum 命令来安装程序时候,出现报错: Error: rpmdb open failed

示例输出:

该问题通常是由于 rpm 数据库被损坏所致。

可按照下述方法重建 yum 数据库:

1、cd /var/lib/rpm/。

2、执行 ls -l  查看数据库文件。如下图:

3、执行 rm -rf __db.* 删除损坏的数据库(删除之前请做好备份)。

4、执行 rpm --rebuilddb 重建数据库。

5、最后执行 yum clean all 清理缓存等文件。

 

更多信息


保存 YUM 安装软件时所下载的 rpm 包

在默认情况下 Linux 主机通过 yum 安装的软件,会在安装完成之后删除 rpm 包。如果需要保留相应 rpm 的依赖包,以防不时之需,可修改 yum 的配置文件来实现

缓存路径默认位置是 /var/cache/yum,默认会根据系统版本和 yum 源的不同分别保存,也快根据用户实际需要自有修改。

修改保存之后。以 lrzsz 为例来下载测试:

1、执行命令 yum install lrzsz -y 进行软件安装。

2、查看 lrzsz 的安装包已经存放在 /var/cache/yum/base/packages 目录下了。

 

如果问题还未能解决,您可以到阿里云社区进行免费咨询或联系云市场商家寻求帮助。