Linux

1 - 简述

rpm是由红帽公司开发的软件包管理方式,使用rpm可以方便的进行软件的安装、查询、卸载、升级等工作。
但是rpm软件包之间的依赖性问题往往会很繁琐,尤其是软件由多个rpm包组成时。

Yum(全称为 Yellow dog Updater,Modified)是一个在Fedora和RedHat以及SUSE中的Shell前端软件包管理器,类似于Ubuntu的apt。
Yum可以更方便地添加/删除/更新RPM包,可以自动处理依赖性关系,并且一次安装所有依赖的软体包,无须繁琐地一次次下载、安装。
配置文件:/etc/yum.conf

  • 可以同时配置多个资源库(Repository)
  • 简洁的配置文件(/etc/yum.conf)
  • 自动解决增加或删除rpm包时遇到的倚赖性问题
  • 使用方便
  • 保持与RPM数据库的一致性

2 - Yum的命令形式

yum [options] [command] [package ...]

  • [options]是可选的,选项包括-h(帮助),-y(当安装过程提示选择全部为"yes"),-q(不显示安装的过程)等等。
  • [command]为所要进行的操作,
  • [package ...]是操作的对象。

把服务器的软件包信息下载到本地缓存,可以直接在本地搜索软件包信息,速度快,配合yum -C search "regex"使用。

3 - 常用yum命令

3.1 查找和显示

yum search "regex" 检测所有可用的软件的名称、描述、概述和已列出的维护者,查找与正则表达式匹配的值
yum makecache fast  下载服务器的软件包信息到本地缓存,可以直接在本地搜索软件包信息,速度快,配合yum -C search "regex"使用
yum provides "regex" 检测软件包中包含的文件以及软件提供的功能,查找与正则表达式匹配的值
yum deplist "packages" 显示软件包的依赖信息
yum info "packages" 显示包的信息
yum check-update 检查可更新的所有软件包

yum list 列出资源库中所有可以安装或更新以及已经安装的rpm包
yum list "regex" 列出资源库中与正则表达式匹配的可以安装或更新以及已经安装的rpm包
yum list available 列出资源库中所有可以安装的rpm包
yum list available "regex" 列出资源库中与正则表达式匹配的所有可以安装的rpm包
yum list updates 列出资源库中所有可以更新的rpm包
yum list updates "regex" 列出资源库中与正则表达式匹配的所有可以更新的rpm包
yum list installed 列出资源库中所有已经安装的rpm包
yum list installed "regex" 列出资源库中与正则表达式匹配的所有已经安装的rpm包
yum list extras 列出已经安装的但是不包含在资源库中的rpm包
yum list extras "regex" 列出与正则表达式匹配的已经安装的但是不包含在资源库中的rpm包
yum list recent 列出最近被添加到资源库中的软件包

yum info 列出所有软件包的信息
yum info updates 列出所有可更新的软件包信息
yum info installed 列出所有已安裝的软件包信息
yum info extras 列出所有已安裝但不在 Yum Repository 內的软件包信息

3.2 安装升级卸载

yum install 全部安装
yum install "packages" 安装新软件包
yum check-update 列出所有可更新的软件清单
yum update 下载更新系统已安装的所有软件包
yum update "packages" 更新指定的软件包
yum upgrade 大规模的版本升级,与yum update不同的是,连旧的淘汰的包也升级
yum remove "packages" 卸载指定的软件包

3.3 清除缓存

yum clean headers 清除缓存中的rpm头文件
yum clean packages 清除缓存中rpm包文件
yum clean all 清除缓存中的rpm头文件和包文件

3.4 程序组

yum grouplist 查看系统中已经安装的和可用的软件组
yum groupinfo "groupnames" 显示程序组信息
yum groupinstall "groupnames" 安装指定软件组中的软件包
yum groupupdate "groupnames" 更新指定软件组中的软件包
yum groupremove "groupnames" 卸载指定软件组中的软件包

yum -y groupinstall “X Window System”
yum -y groupinstall “GNOME Desktop Environment”
yum -y groupinstall “KDE (K Desktop Environment)”
yum -y groupinstall “Server Configuration Tools”
yum -y groupinstall “Development Libraries”
yum -y groupinstall “Development Tools”
yum -y groupinstall “Windows File Server”
yum -y groupinstall “Chinese Support”
yum -y groupinstall “MySQL Database”
yum -y groupinstall “FTP Server”
yum -y groupinstall “Java Development”
yum -y groupinstall “Web Server”

4 - 注意事项

当第一次使用yum 或yum 资源库有更新时,yum 会自动下载所有所需的headers放置于/var/cache /yum目录下,所需时间可能较长。
yum 命令还可以使用 -y 参数用于用 yes 回答命令运行时所提出的问题,比如 yum -y install vsftpd,这样在安装软件的时候就不用输入yes/y了。

5 - 代理设置

5.1 暂时使用代理

在命令行输入下面一条命令
export http_proxy="http://10.144.1.10:8080"

5.2 长久使用代理

在yum源的参数加proxy=“http://ip:port”,即在/etc/yum.conf中加入下面几句.
proxy=http://10.144.1.10:8080
proxy_username=username
proxy_password=password
另外:
/root/.bashrc中加入:export http_proxy="http://username:password@10.144.1.10:8080"
如果是通过ip或电脑的网卡地址认证,可忽略所有username 和 password .

注意:
停止使用代理的时候,要把改过的文件改成原样.
尤其是如果使用了export http_proxy="http://10.144.1.10:8080"命令,要在命令行输入: unset http_proxy ,去除环境变量.

6 - 问题处理示例

示例-1

使用yum安装时报错:
    `Another app is currently holding the yum lock:waiting for it to exit...`
    `The other application is: yum-updatesd-he`
错误信息说明在后台有一个yum-updatesd-he的进程在运行,导致当前安装不成功。
可能原因是先前的yum任务在运行的时候被强行终止,解决办法
    `# rm -f /var/run/yum.pid`
    `# /sbin/service  yum-updatesd restart`

示例-2

执行“yum update”命令报错“Cannot find a valid baseurl for repo: base/7/x86_64”;
可能原因是网络不通,除了检查网卡配置外,还应确认代理设置;
原文地址:https://www.cnblogs.com/anliven/p/6038650.html