云服务器 ECS YUM 在线安装软件方法和常见问题处理-问答-阿里云开发者社区-阿里云

开发者社区> 问答> 正文

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

boxti 2017-10-23 16:26:20 3898


YUM 在线安装软件方法



1、通过如下格式指令进行软件的安装:
  1. yum install -y <待安装软件名>

操作示例:

2、通过如下格式指令进行软件卸载:
  1. 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 动态库文件而出现异常,比如出现如下报错内容:
  1. 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
  1. $ rpm -qa |grep yum |xargs rpm -e —nodeps

2、下载 yum  yum-plugin-fastestmirror yum-metadata-parser 三个包的文件,具体可以 去 http://mirrors.aliyun.com/ 或者官网下载。
  1. $ 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-40.el6.noarch.rpm

3、安装上面下载的 rpm 包。
  1. $ 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-40.el6.noarch.rpm



YUM 操作常见错误处理




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



问题现象


执行 yum 命令,返回类似如下错误信息:
  1. -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  [url=http://mirrors.aliyuncs.com/centos/RPM-GPG-KEY-CentOS-[7%E3%80%816%E6%88%96%E8%80%855]%E5%8D%B3%E5%8F%AF%E3%80%82?spm=5176.7741203.2.9.eqPfCa]http://mirrors.aliyuncs.com/centos/RPM-GPG-KEY-CentOS-[7、6或者5]即可。[/url]


YUM 操作提示:xz compression not available


该问题通常是由于安装了不兼容版本的 epel 引起的,尝试通过如下方式删除相应的 epel 包后,重新尝试操作即可:
1、输入如下指令删除错误 epel 包。
  1. $ yum remove -y epel-release

2、清理缓存。
  1. $ rm -rf /var/cache/yum/x86_64/6Server/epel/

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


YUM 更新出现报错:Transaction Check Error


执行 yum update 时出现类似如下错误信息:
  1. 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 packageopenssl-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 packageopenssl-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 packageopenssl-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 packageopenssl-0.9.8e-27.el5_10.4.i686 Error Summary openssl

根据报错中 error  相关的提示,判断该问题是在升级 OPENSSL 时出现异常所致。
处理方法如下:
1、略过这个报错包的升级,直接升级其他的软件包。执行命令如下:
  1. yum update —exclude=openssl   // 跳过openssl的升级。

这时升级正常报错消失。
2、关于这个 openssl 包的问题,分析是冲突导致的,这时需要找出要冲突的软件 ,执行命令如下:
  1. $ rpm -q openssl —qf ‘%{NAME} %{VERSION} %{ARCH}’例如:得到输出: perl 5.8.8 x86_64 perl 5.8.8 i386

3、卸载掉冲突的 i386 包:
  1. 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 目录下了。


如果问题还未能解决,您可以到阿里云社区进行 免费咨询,或联系 云市场商家寻求帮助。
缓存 弹性计算 Linux Shell 数据库 Python Perl
分享到
取消 提交回答
全部回答(0)
开发与运维
使用钉钉扫一扫加入圈子
+ 订阅

集结各类场景实战经验,助你开发运维畅行无忧

推荐文章
相似问题
推荐课程