目录
Linux yum 命令
yum( Yellow dog Updater, Modified)是一个在 Fedora 和 RedHat 以及 SUSE 中的 Shell 前端软件包管理器。
基于 RPM 包管理,能够从指定的服务器自动下载 RPM 包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包,无须繁琐地一次次下载、安装。
yum 提供了查找、安装、删除某一个、一组甚至全部软件包的命令,而且命令简洁而又好记。
yum 语法
<span style="background-color:#ecf4ee"><span style="color:#333333"><span style="color:#171c19">yum </span><span style="color:#171c19">[</span><span style="color:#171c19">options</span><span style="color:#171c19">]</span> <span style="color:#171c19">[</span><span style="color:#171c19">command</span><span style="color:#171c19">]</span> <span style="color:#171c19">[</span><span style="color:#55859b">package</span> <span style="color:#171c19">...]</span></span></span>
- options:可选,选项包括-h(帮助),-y(当安装过程提示选择全部为 “yes”),-q(不显示安装的过程)等等。
- command:要进行的操作。
- package:安装的包名。
yum常用命令
-
1. 列出所有可更新的软件清单命令:yum check-update
-
2. 更新所有软件命令:yum update
-
3. 仅安装指定的软件命令:yum install <package_name>
-
4. 仅更新指定的软件命令:yum update <package_name>
-
5. 列出所有可安裝的软件清单命令:yum list
-
6. 删除软件包命令:yum remove <package_name>
-
7. 查找软件包命令:yum search <keyword>
-
8. 清除缓存命令:
- yum clean packages: 清除缓存目录下的软件包
- yum clean headers: 清除缓存目录下的 headers
- yum clean oldheaders: 清除缓存目录下旧的 headers
- yum clean, yum clean all (= yum clean packages; yum clean oldheaders) :清除缓存目录下的软件包及旧的 headers
实例 1
安装 pam-devel
<span style="background-color:#ecf4ee"><span style="color:#333333"><span style="color:#171c19">[</span><span style="color:#171c19">root@www </span><span style="color:#171c19">~]#</span><span style="color:#171c19"> yum install pam</span><span style="color:#171c19">-</span><span style="color:#171c19">devel
</span><span style="color:#478c90">Setting</span><span style="color:#171c19"> up </span><span style="color:#478c90">Install</span> <span style="color:#478c90">Process</span>
<span style="color:#478c90">Parsing</span> <span style="color:#55859b">package</span><span style="color:#171c19"> install arguments
</span><span style="color:#478c90">Resolving</span> <span style="color:#478c90">Dependencies</span> <span style="color:#171c19"><==先检查软件的属性相依问题</span>
<span style="color:#171c19">--></span> <span style="color:#478c90">Running</span><span style="color:#171c19"> transaction check
</span><span style="color:#171c19">---></span> <span style="color:#478c90">Package</span><span style="color:#171c19"> pam</span><span style="color:#171c19">-</span><span style="color:#171c19">devel</span><span style="color:#171c19">.</span><span style="color:#171c19">i386 </span><span style="color:#9f713c">0</span><span style="color:#171c19">:</span><span style="color:#9f713c">0.99</span><span style="color:#171c19">.</span><span style="color:#9f713c">6.2</span><span style="color:#171c19">-</span><span style="color:#9f713c">4.el5</span> <span style="color:#55859b">set</span><span style="color:#171c19"> to be updated
</span><span style="color:#171c19">--></span> <span style="color:#478c90">Processing</span> <span style="color:#478c90">Dependency</span><span style="color:#171c19">:</span><span style="color:#171c19"> pam </span><span style="color:#171c19">=</span> <span style="color:#9f713c">0.99</span><span style="color:#171c19">.</span><span style="color:#9f713c">6.2</span><span style="color:#171c19">-</span><span style="color:#9f713c">4.el5</span> <span style="color:#55859b">for</span> <span style="color:#55859b">package</span><span style="color:#171c19">:</span><span style="color:#171c19"> pam</span><span style="color:#171c19">-</span><span style="color:#171c19">devel
</span><span style="color:#171c19">--></span> <span style="color:#478c90">Running</span><span style="color:#171c19"> transaction check
</span><span style="color:#171c19">---></span> <span style="color:#478c90">Package</span><span style="color:#171c19"> pam</span><span style="color:#171c19">.</span><span style="color:#171c19">i386 </span><span style="color:#9f713c">0</span><span style="color:#171c19">:</span><span style="color:#9f713c">0.99</span><span style="color:#171c19">.</span><span style="color:#9f713c">6.2</span><span style="color:#171c19">-</span><span style="color:#9f713c">4.el5</span> <span style="color:#55859b">set</span><span style="color:#171c19"> to be updated
filelists</span><span style="color:#171c19">.</span><span style="color:#171c19">xml</span><span style="color:#171c19">.</span><span style="color:#171c19">gz </span><span style="color:#9f713c">100</span><span style="color:#171c19">%</span> <span style="color:#171c19">|=========================|</span> <span style="color:#9f713c">1.6</span><span style="color:#171c19"> MB </span><span style="color:#9f713c">00</span><span style="color:#171c19">:</span><span style="color:#9f713c">05</span><span style="color:#171c19">
filelists</span><span style="color:#171c19">.</span><span style="color:#171c19">xml</span><span style="color:#171c19">.</span><span style="color:#171c19">gz </span><span style="color:#9f713c">100</span><span style="color:#171c19">%</span> <span style="color:#171c19">|=========================|</span> <span style="color:#9f713c">138</span><span style="color:#171c19"> kB </span><span style="color:#9f713c">00</span><span style="color:#171c19">:</span><span style="color:#9f713c">00</span>
<span style="color:#171c19">-></span> <span style="color:#478c90">Finished</span> <span style="color:#478c90">Dependency</span> <span style="color:#478c90">Resolution</span>
<span style="color:#171c19">……(省略)</span></span></span>
实例 2
移除 pam-devel
<span style="background-color:#ecf4ee"><span style="color:#333333"><span style="color:#171c19">[</span><span style="color:#171c19">root@www </span><span style="color:#171c19">~]#</span><span style="color:#171c19"> yum remove pam</span><span style="color:#171c19">-</span><span style="color:#171c19">devel
</span><span style="color:#478c90">Setting</span><span style="color:#171c19"> up </span><span style="color:#478c90">Remove</span> <span style="color:#478c90">Process</span>
<span style="color:#478c90">Resolving</span> <span style="color:#478c90">Dependencies</span> <span style="color:#171c19"><==同样的,先解决属性相依的问题</span>
<span style="color:#171c19">--></span> <span style="color:#478c90">Running</span><span style="color:#171c19"> transaction check
</span><span style="color:#171c19">---></span> <span style="color:#478c90">Package</span><span style="color:#171c19"> pam</span><span style="color:#171c19">-</span><span style="color:#171c19">devel</span><span style="color:#171c19">.</span><span style="color:#171c19">i386 </span><span style="color:#9f713c">0</span><span style="color:#171c19">:</span><span style="color:#9f713c">0.99</span><span style="color:#171c19">.</span><span style="color:#9f713c">6.2</span><span style="color:#171c19">-</span><span style="color:#9f713c">4.el5</span> <span style="color:#55859b">set</span><span style="color:#171c19"> to be erased
</span><span style="color:#171c19">--></span> <span style="color:#478c90">Finished</span> <span style="color:#478c90">Dependency</span> <span style="color:#478c90">Resolution</span>
<span style="color:#478c90">Dependencies</span> <span style="color:#478c90">Resolved</span>
<span style="color:#171c19">=============================================================================</span>
<span style="color:#478c90">Package</span> <span style="color:#478c90">Arch</span> <span style="color:#478c90">Version</span> <span style="color:#478c90">Repository</span> <span style="color:#478c90">Size</span>
<span style="color:#171c19">=============================================================================</span>
<span style="color:#478c90">Removing</span><span style="color:#171c19">:</span><span style="color:#171c19">
pam</span><span style="color:#171c19">-</span><span style="color:#171c19">devel i386 </span><span style="color:#9f713c">0.99</span><span style="color:#171c19">.</span><span style="color:#9f713c">6.2</span><span style="color:#171c19">-</span><span style="color:#9f713c">4.el5</span><span style="color:#171c19"> installed </span><span style="color:#9f713c">495</span><span style="color:#171c19"> k
</span><span style="color:#478c90">Transaction</span> <span style="color:#478c90">Summary</span>
<span style="color:#171c19">=============================================================================</span>
<span style="color:#478c90">Install</span> <span style="color:#9f713c">0</span> <span style="color:#478c90">Package</span><span style="color:#171c19">(</span><span style="color:#171c19">s</span><span style="color:#171c19">)</span>
<span style="color:#478c90">Update</span> <span style="color:#9f713c">0</span> <span style="color:#478c90">Package</span><span style="color:#171c19">(</span><span style="color:#171c19">s</span><span style="color:#171c19">)</span>
<span style="color:#478c90">Remove</span> <span style="color:#9f713c">1</span> <span style="color:#478c90">Package</span><span style="color:#171c19">(</span><span style="color:#171c19">s</span><span style="color:#171c19">)</span> <span style="color:#171c19"><==还好,并没有属性相依的问题,单纯移除一个软件</span>
<span style="color:#478c90">Is</span> <span style="color:#55859b">this</span><span style="color:#171c19"> ok </span><span style="color:#171c19">[</span><span style="color:#171c19">y</span><span style="color:#171c19">/</span><span style="color:#171c19">N</span><span style="color:#171c19">]:</span><span style="color:#171c19"> y
</span><span style="color:#478c90">Downloading</span> <span style="color:#478c90">Packages</span><span style="color:#171c19">:</span>
<span style="color:#478c90">Running</span><span style="color:#171c19"> rpm_check_debug
</span><span style="color:#478c90">Running</span> <span style="color:#478c90">Transaction</span> <span style="color:#478c90">Test</span>
<span style="color:#478c90">Finished</span> <span style="color:#478c90">Transaction</span> <span style="color:#478c90">Test</span>
<span style="color:#478c90">Transaction</span> <span style="color:#478c90">Test</span> <span style="color:#478c90">Succeeded</span>
<span style="color:#478c90">Running</span> <span style="color:#478c90">Transaction</span>
<span style="color:#478c90">Erasing</span> <span style="color:#171c19">:</span><span style="color:#171c19"> pam</span><span style="color:#171c19">-</span><span style="color:#171c19">devel </span><span style="color:#78877d">######################### [1/1]</span>
<span style="color:#478c90">Removed</span><span style="color:#171c19">:</span><span style="color:#171c19"> pam</span><span style="color:#171c19">-</span><span style="color:#171c19">devel</span><span style="color:#171c19">.</span><span style="color:#171c19">i386 </span><span style="color:#9f713c">0</span><span style="color:#171c19">:</span><span style="color:#9f713c">0.99</span><span style="color:#171c19">.</span><span style="color:#9f713c">6.2</span><span style="color:#171c19">-</span><span style="color:#9f713c">4.el5</span>
<span style="color:#478c90">Complete</span><span style="color:#171c19">!</span></span></span>
实例 3
利用 yum 的功能,找出以 pam 为开头的软件名称有哪些?
<span style="background-color:#ecf4ee"><span style="color:#333333"><span style="color:#171c19">[</span><span style="color:#171c19">root@www </span><span style="color:#171c19">~]#</span><span style="color:#171c19"> yum list pam</span><span style="color:#171c19">*</span>
<span style="color:#478c90">Installed</span> <span style="color:#478c90">Packages</span><span style="color:#171c19">
pam</span><span style="color:#171c19">.</span><span style="color:#171c19">i386 </span><span style="color:#9f713c">0.99</span><span style="color:#171c19">.</span><span style="color:#9f713c">6.2</span><span style="color:#171c19">-</span><span style="color:#9f713c">3.27</span><span style="color:#171c19">.</span><span style="color:#171c19">el5 installed
pam_ccreds</span><span style="color:#171c19">.</span><span style="color:#171c19">i386 </span><span style="color:#9f713c">3</span><span style="color:#171c19">-</span><span style="color:#9f713c">5</span><span style="color:#171c19"> installed
pam_krb5</span><span style="color:#171c19">.</span><span style="color:#171c19">i386 </span><span style="color:#9f713c">2.2</span><span style="color:#171c19">.</span><span style="color:#9f713c">14</span><span style="color:#171c19">-</span><span style="color:#9f713c">1</span><span style="color:#171c19"> installed
pam_passwdqc</span><span style="color:#171c19">.</span><span style="color:#171c19">i386 </span><span style="color:#9f713c">1.0</span><span style="color:#171c19">.</span><span style="color:#9f713c">2</span><span style="color:#171c19">-</span><span style="color:#9f713c">1.2</span><span style="color:#171c19">.</span><span style="color:#9f713c">2</span><span style="color:#171c19"> installed
pam_pkcs11</span><span style="color:#171c19">.</span><span style="color:#171c19">i386 </span><span style="color:#9f713c">0.5</span><span style="color:#171c19">.</span><span style="color:#9f713c">3</span><span style="color:#171c19">-</span><span style="color:#9f713c">23</span><span style="color:#171c19"> installed
pam_smb</span><span style="color:#171c19">.</span><span style="color:#171c19">i386 </span><span style="color:#9f713c">1.1</span><span style="color:#171c19">.</span><span style="color:#9f713c">7</span><span style="color:#171c19">-</span><span style="color:#9f713c">7.2</span><span style="color:#171c19">.</span><span style="color:#9f713c">1</span><span style="color:#171c19"> installed
</span><span style="color:#478c90">Available</span> <span style="color:#478c90">Packages</span> <span style="color:#171c19"><==底下则是『可升级』的或『未安装』的</span><span style="color:#171c19">
pam</span><span style="color:#171c19">.</span><span style="color:#171c19">i386 </span><span style="color:#9f713c">0.99</span><span style="color:#171c19">.</span><span style="color:#9f713c">6.2</span><span style="color:#171c19">-</span><span style="color:#9f713c">4.el5</span> <span style="color:#55859b">base</span><span style="color:#171c19">
pam</span><span style="color:#171c19">-</span><span style="color:#171c19">devel</span><span style="color:#171c19">.</span><span style="color:#171c19">i386 </span><span style="color:#9f713c">0.99</span><span style="color:#171c19">.</span><span style="color:#9f713c">6.2</span><span style="color:#171c19">-</span><span style="color:#9f713c">4.el5</span> <span style="color:#55859b">base</span><span style="color:#171c19">
pam_krb5</span><span style="color:#171c19">.</span><span style="color:#171c19">i386 </span><span style="color:#9f713c">2.2</span><span style="color:#171c19">.</span><span style="color:#9f713c">14</span><span style="color:#171c19">-</span><span style="color:#9f713c">10</span> <span style="color:#55859b">base</span></span></span>
国内 yum 源
网易(163)yum 源是国内较好的 yum 源之一 ,无论是速度还是软件版本,都非常的不错。
将yum源设置为163 yum,可以提升软件包安装和更新的速度,同时避免一些常见软件版本无法找到。
安装步骤
首先备份/etc/yum.repos.d/CentOS-Base.repo
<span style="background-color:#ecf4ee"><span style="color:#333333"><span style="color:#171c19">mv </span><span style="color:#171c19">/</span><span style="color:#171c19">etc</span><span style="color:#171c19">/</span><span style="color:#171c19">yum</span><span style="color:#171c19">.</span><span style="color:#171c19">repos</span><span style="color:#171c19">.</span><span style="color:#171c19">d</span><span style="color:#171c19">/</span><span style="color:#478c90">CentOS</span><span style="color:#171c19">-</span><span style="color:#478c90">Base</span><span style="color:#171c19">.</span><span style="color:#171c19">repo </span><span style="color:#171c19">/</span><span style="color:#171c19">etc</span><span style="color:#171c19">/</span><span style="color:#171c19">yum</span><span style="color:#171c19">.</span><span style="color:#171c19">repos</span><span style="color:#171c19">.</span><span style="color:#171c19">d</span><span style="color:#171c19">/</span><span style="color:#478c90">CentOS</span><span style="color:#171c19">-</span><span style="color:#478c90">Base</span><span style="color:#171c19">.</span><span style="color:#171c19">repo</span><span style="color:#171c19">.</span><span style="color:#171c19">backup</span></span></span>
下载对应版本 repo 文件, 放入 /etc/yum.repos.d/ (操作前请做好相应备份)
- CentOS5 :http://mirrors.163.com/.help/CentOS5-Base-163.repo
- CentOS6 :http://mirrors.163.com/.help/CentOS6-Base-163.repo
- CentOS7 :http://mirrors.163.com/.help/CentOS7-Base-163.repo
<span style="background-color:#ecf4ee"><span style="color:#333333"><span style="color:#171c19">wget http</span><span style="color:#171c19">:</span><span style="color:#78877d">//mirrors.163.com/.help/CentOS6-Base-163.repo</span><span style="color:#171c19">
mv </span><span style="color:#478c90">CentOS6</span><span style="color:#171c19">-</span><span style="color:#478c90">Base</span><span style="color:#171c19">-</span><span style="color:#9f713c">163.repo</span> <span style="color:#478c90">CentOS</span><span style="color:#171c19">-</span><span style="color:#478c90">Base</span><span style="color:#171c19">.</span><span style="color:#171c19">repo</span></span></span>
运行以下命令生成缓存
<span style="background-color:#ecf4ee"><span style="color:#333333"><span style="color:#171c19">yum clean all
yum makecache</span></span></span>
除了网易之外,国内还有其他不错的 yum 源,比如中科大和搜狐。
中科大的 yum 源,安装方法查看:Redirecting…
sohu 的 yum 源安装方法查看: http://mirrors.sohu.com/help/centos.html
阿里云的源:centos镜像_centos下载地址_centos安装教程-阿里巴巴开源镜像站
配置本地Yum仓库
实现此案例需要按照如下步骤进行。
步骤一:搭建一个本地Yum,将RHEL6光盘手动挂载到/media
命令操作如下所示:
[root@localhost ~]# mount /dev/cdrom /media/ mount: block device /dev/sr0 is write-protected, mounting read-only [root@localhost ~]# mount | tail -1 /dev/sr0 on /media type iso9660 (ro)
步骤二:将本地设置为客户端,进行Yum验证
Yum客户端需编辑配置文件,命令操作如下所示:
[root@localhost ~]# cd /etc/yum.repos.d/ //必须在这个路径下 [root@localhost yum.repos.d]# ls //此路径下事先有配置文件的模板 rhel-source.repo [root@localhost yum.repos.d]# cp rhel-source.repo rhel6.repo //配置文件必须以.repo结尾 [root@localhost yum.repos.d]# vim rhel6.repo [rhel-6] //中括号里内容要求唯一,但不要出现特殊字符 name=Red Hat Enterprise Linux 6 //此为描述信息,可以看情况填写 baseurl=file:///media/ //此项为yum软件仓库位置,指向光盘挂载点 enabled=1 //此项为是否开启,1为开启, 0为不开启 gpgcheck=1 //此项为是否检查签名,1为检测, 0为不检测 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release //签名认证信息的路径 [root@localhost /]# yum repolist Loaded plugins: product-id, refresh-packagekit, security, subscription-manager This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register. rhel-6 | 3.9 kB 00:00 ... rhel-6/primary_db | 3.1 MB 00:00 ... repo id repo name status rhel-6 Red Hat Enterprise Linux 6 3,690 repolist: 3,690
对于 Linux 软件安装时提示缺失库的,可以使用 yum 的 provides 参数查看 libstdc++.so.6 的库文件包含在那个安装包中只需要执行:
yum provides libstdc++.so.6
然后按查询到安装包包名,使用 yum install 安装即可。