Linux_软件管理_YUM

YUM是什么?

YUM是Yellodog Update Modified的缩写,昵称“黄狗更新器”。

是红帽系列Linux中的一个软件。

其主要作用就是解决RPM软件包安装时的依赖问题。

YUM能够自动查找并解决rpm包之间的依赖关系,无需用户逐个手动的去安装/卸载每一个rpm软件包。

几乎所有红帽系列的Linux系统中 均会默认安装有yum。

yum只是为了解决RPM依赖关系问题的一个工具,而不是一种软件封装模式。

RPM仍然是红帽系列Linux中的默认软件管理器,yum可以视为RPM的一个前台工具。

YUM

· 工作原理

RPM软件包存在一个包头header,header中有该软件的依赖关系。

yum服务器端事先对RPM软件包进行分析,将软件包所有依赖关系记录成一个文件。

并将其依赖的所有软件包囊括到yum服务器中备用。

yum服务器端放着软件源,软件源中有软件仓库。

仓库里放着:所有RPM软件包的目录索引,每个RPM软件包的依赖性关系数据,该软件仓库中所有RPM软件包。

用户需要安装某个软件包时,可通过yum客户端,查询某个yum服务器上有无该软件。

如有则下载软件包的依赖关系数据,根据这些数据一次性的将其所依赖的软件全部下载下来进行安装。

· 使用YUM之前

建议先执行两个步骤

1、使用yum命令的clean参数,清除yum原有的软件包缓存数据

2、使用yum命令的makecache参数,将当前服务器上的软件包相关信息存到本地以提高搜索软件的速度。

[root@hanaii ~]# yum clean all
[root@hanaii ~]# yum makecache

· 软件管理

1、安装

命令:yum install package_names

[root@hanaii ~]# yum install gcc-c++

yum会检查软件的依赖关系,然后询问是否安装。

键入Y开始下载安装。

2、查询

命令:yum list package_names(支持通配符)

当软件在本机上经安装时,会提示Installed Package。

[root@hanaii ~]# yum list gcc-c++
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
Installed Packages
gcc-c++.x86_64    4.8.5-28.el7_5.1     @updates                                                            

当软件未在本机上安装,且源的软件仓库中存在软件包,会提示Available Packages。

[root@hanaii ~]# yum list bind
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
Available Packages
bind.x86_64    32:9.9.4-61.el7_5.1    updates


当软件不在软件源中,会提示No matching Packages to list

[root@hanaii ~]# yum list xxx
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
Error: No matching Packages to list

list后可跟:installed和available两个参数。分别表示本机以安装软件,当前源可用软件包。 
由于这两个命令的输出较多,建议用管道结合less命令来进行查看。

3、查看软件包的描述信息和概要信息

命令:rpm info package_names

[root@hanaii ~]# yum info gcc-c++
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
Installed Packages
Name        : gcc-c++
Arch        : x86_64
Version     : 4.8.5
Release     : 28.el7_5.1
Size        : 16 M
Repo        : installed
From repo   : updates
Summary     : C++ support for GCC
URL         : http://gcc.gnu.org
License     : GPLv3+ and GPLv3+ with exceptions and GPLv2+ with exceptions and LGPLv2+ and BSD
Description : This package adds C++ support to the GNU Compiler Collection.
            : It includes support for most of the current C++ specification,
            : including templates and exception handling.

4、更新

命令:rpm update package_names

[root@hanaii ~]# rpm update pythron

...

Updated:
  python.x86_64 0:2.7.5-69.el7_5                     

Dependency Updated:
  python-libs.x86_64 0:2.7.5-69.el7_5


5、卸载

命令:rpm remove packages_names

[root@hanaii ~]# yum remove gcc-c++

...

Removed:
  gcc-c++.x86_64 0:4.8.5-28.el7_5.1    
Complete!

相关依赖也会被卸载

· 需要注意的

普通用户只能用yum列出和查看软件,无法用yum安装、卸载软件。

YUM配置第三方软件源

· 默认软件源

CentOS中的yum,默认使用的是CentOS提供的软件源。

CentOS官方源十分审慎,其收录的软件包:

不包括任何有版权争议的软件包,其包里的软件不求新。一般为较旧的稳定版本。

基于此,CentOS官方源中所包含的软件包数量不会很多。

许多有用的软件都不在CentOS的官方源中,如:Eclipse、mplayer等等。

所以需要通过额外的配置第三方软件源,实现对更多软件的管理。

· 推荐的第三方软件源

以下软件源是完全兼容CentOS红帽等Linux系统的第三方源。

补充:阿里云镜像源https://opsx.alibaba.com/mirror

· 安装与配置

以RepoForge源为例。

 1、下载安装

下载适用于系统的软件源安装包。使用rpm或yum安装。

[root@hanaii ~]# wget http://repository.it4i.cz/mirrors/repoforge/redhat/el7/en/x86_64/rpmforge/RPMS/rpmforge-release-0.5.3-1.el7.rf.x86_64.rpm
[root@hanaii ~]# yum install rpmforge-release-0.5.3-1.el7.rf.x86_64.rpm 

2、找到配置文件

进入/etc/yum.repos.d目录,该目录为yum的配置目录,放置的是软件源的配置文件。
找到第三方软件源对应的配置文件。如RepoForge源对应的就是rpmforge.repo。

[root@hanaii yum.repos.d]# ls -al
total 32
...
-rw-r--r--   1 root root 1128 Jun 12  2014 rpmforge.repo

3、 优先级配置

安装后的第三方源现还无法使用。

因为存在一个官方源,在管理时,yum不知道从哪个源获取软件包。

所以要对源进行优先级的配置。

首先为yum安装一个优先级排序插件:yum-plugin-priorities

[root@hanaii yum.repos.d]# yum install yum-plugin-priorities
...
Installed:
  yum-plugin-priorities.noarch 0:1.1.31-46.el7_5                                                  

Complete!

安装成功后,进入官方源配置文件和第三方源配置文件,

分别在配置文件的每个软件仓库后,设置priority的值。(值越小,优先级越高)

官方源配置文件CentOS-Base.repo

[base]
...
priority=1

[updates]
...
priority=1

[extras]
...
priority=1

第三方源配置文件

[rpmforge]
...
priority = 10

[rpmforge-extras]
...
priority = 10

...

到此,源的优先级配置完成。yum会先到优先级高的源去获取软件,若不存在,再按优先级从高到低的顺序去获取软件。

[root@hanaii yum.repos.d]# yum install mplayer
Loaded plugins: fastestmirror, priorities
base                                                                                                                                                | 3.6 kB  00:00:00     
extras                                                                                                                                              | 3.4 kB  00:00:00     
updates                                                                                                                                             | 3.4 kB  00:00:00     
Loading mirror speeds from cached hostfile
164 packages excluded due to repository priority protections
No package mplayer available.
Error: Nothing to do

猜你喜欢

转载自blog.csdn.net/hanaii/article/details/82592132