软件包管理器之二——YUM介绍及使用

一、前言

之前我们介绍了RPM的应用(详细请看http://windchasereric.blog.51cto.com/5419433/1676324),发觉RPM安装软件有一个很繁琐的问题,那就是包与包之间的依赖关系,如果想正常安装和使用软件程序,就必须根据要求一步一步的解决软件之间的依赖关系。那么如果程序使用的包很多,将会很消耗使用人的时间和精力。那么有没有办法解决这一问题呢?

在RPM中我们介绍了RPM软件会记录软件之间的安装信息,其中也包括了软件之间的依赖属性。那么如果我们在安装前就分析这个列表,那么在安装时就能根据软件之间的关系将所需的软件一次性安装起来,这样就能解决这一问题,这就是 YUM 的机制。



二、yum的介绍

yum(Yellow dog Updater Modified)是CentOS中属于RPM前段软件包管理器,能从指定的服务器中下载RPM包,并自动分析和处理RPM包之间的依赖关系,最后将依次所依赖的软件包都安装了,而无需繁琐的一个一个安装。




三、yum repository:yum仓库

yum仓库的组成部分

3.1、数据

包含所有的软件包文件

3.2、元数据

指的是数据文件:包括每个包的包名、版本信息、各包所包含的文件列表、包与包之间的依赖关系、包的分组信息

小扩展:元数据是怎么来的呢? 
    使用createrepo工具,能够简洁的快速的将我们所指定的存放大量RPM包的目录,里面所有的RPM包信息都读出来,分析他的依赖关系并生成元数据。所以createrepo可以理解为它是制作yum元数据的工具。     在光盘里其实也有这个元数据,路径在光盘中的 [[email protected] mnt]# cd repodata/ 里,然后是以 sqlite文件后缀
    备注:centos5 是以 xml 后缀,centos6、7是以sqlite数据库的方式存储的



四、yum的配置文件介绍

yum的配置文件有2中 : 主配置文件 + 仓库配置文件

4.1、主配置文件路径  /etc/yum.conf

    [main]    
    cachedir=/var/cache/yum/$basearch/$releasever     #下载RPM包的缓存目录
    keepcache=0                                       #RPM缓存的程序包安装完成后是否保存,0表示不保存,1表示保存
    buglevel=2                                        #调试级别 取值范围 0 - 10,默认值为2    
    logfile=/var/log/yum.log                          #yum相关日志存放路径
    exactarch=1                                       #是否要平台完全匹配才能安装
    obsoletes=1                                       #需不需要检查已过期的仓库
    gpgcheck=1                                        #是否检查包的完整性和合法性
    plugins=1                                         #是否允许支持yum的插件功能,0 表示不允许 ,1表示允许,建议允许,一般会用yum-fastestmirror这个插件           
    installonly_limit=5                               #允许保留多少个内核包
    bugtracker_url=http://bugs.centos.org/set_project.php?project_id=16&ref=http://bugs.centos.org/bug_report_page.php?category=yum
    distroverpkg=centos-release                       #指定一个软件包,yum 会根据这个包判断你的发行版本,默认是redhat-release,也可以是安装的任何针对自己发行版的rpm 包

4.2、仓库配置文件路径 /etc/yum.repos.d/*.repo

仓库文件可以有多个,而且一个或几个相关的仓库的配置信息也可保存为一个文件,并且所以的仓库文件名都以 .repo结尾

[REPOID]             #容器名字,必须是唯一的
name=                #some name for this repository仓库的名字,仅作一个标识
baseurl=             #指定真正仓库所在的路径,可以指多个仓库
                        #例如:baseurl=file:///media/cdrom
                        #      ftp://172.168.1.1/path    #备注第二行不能顶格写,否则会出错
mirrorlist=          #列出容器可以使用站点,如果不想使用,可以再前面加 # 注释
enabled= {0 | 1}     #指是否启用这个仓库,0表示不启用,1表示启用
gpgcheck= {0 | 1}    #是否要检测软件包的合法性,0表示不检测,1表示不检查
gpgkey=              #软件包的公钥文件所在路径,例如:gpgkey=file:///media/cdrom/GPG-RPM-KEY-centos-6
cost=                #仓库优先级,比如一个软件包在多个仓库都有,那应该选择哪个安装呢?就是根据这个优先级,默认是100,数字越小表示越优先使用

备注:默认各仓库的用法:

base库:通常为系统发行版所提供的程序包(就是光盘)

updates库:存放更新包

extra库:存放额外包

epel库:epel库文件

库本身有优先级的,但是仅是在客户端有,服务器端是没有优先级的

小贴士:yum可支持多个协议,包括 ftp、http、nfs和本地文件共享服务

所以仓库配置文件中的 baseurl 一项可以有多个写法,下面是各写法的格式

1)ftp

格式:ftp://server/path/to/repository

2)http

格式:http://server/path/to/repository

3)nfs

格式:nft://server/nfs_path

4)本地文件共享服务

格式:file:///path/to/repository





五、yum安装步骤




六、yum命令的使用

6.1、yum查询功能

yum [option] [需要查询的信息][参数]

-y:默认yum需要是交互模式,-y表示自动提供yes响应

search:搜索某个软件名或关键字

list:列出所有yum所管理的软件包和名称

info:同上,也类似rpm -qai

provides:查找该命令是由软件安装生成的,类似rpm -df的功能

repolist:列出所有可用的repo

例如:
[[email protected] ~]# yum provides bash

[[email protected] ~]# yum repolist

6.2、安装、升级、降级、卸载功能

yum [option] [需要查询的信息][参数]

install:后面接需要安装的软件

reinstall:后面接需要重新安装的软件

update:后面接需要升级到的软件

check-update:检查可用的升级包

downgrade:后面接需要降级到的版本

remove:卸载软件

erase:功能同上,卸载

例如:
[[email protected] yum.repos.d]#  yum install zlib-static

6.3、和软件组相关的功能

yum [组功能] [软件组]

grouplist:列出所有可使用的组列表

groupinfo:后面接group name,可用了解该group内含所有组的名称

groupinstall:安装整组的软件

groupremove:删除某个组的软件

例如:
[[email protected] yum.repos.d]# yum grouplist
#所有的包组未一一列举,若想安装某组可使用groupinstall直接安装
Installed Groups:            #已经安装的软件组
   Additional Development
   Base
   Console internet tools
   Development tools
Installed Language Groups:   #已经安装的语言组
   Arabic Support [ar]
   Armenian Support [hy]
   Georgian Support [ka]
Available Groups:            #有效软件组包文件
   Backup Client    
   Backup Server
Available Language Groups:   #有效的语言组包文件
   Afrikaans Support [af]
   Albanian Support [sq]

6.4、清理缓存

yum clean { all | package | headers }

all:将所有的数据删除,包括元数据和软件文件

package:将所有已下载的软件文件删除

headers:删除所有下载的元数据文件

例如
[[email protected] yum.repos.d]# yum clean all     #这样将会清除所有的已下载的元数据和软件文件
Loaded plugins: fastestmirror, security
Cleaning repos: base extras updates
Cleaning up Everything
Cleaning up list of fastest mirrors



七、知识小结

7.1、yum是RPM包的前端工具,主要解决了程序包的依赖关系

7.2、需要了解yum的配置文件

主配置文件 /etc/yum.conf  和 仓库配置文件 /etc/yum.repos.d/*.repo

7.3、yum按住功能的流程

7.4、yum的命令

安装、卸载、更新、程序组、清理缓存、查询等功能

时间: 2024-08-03 21:09:53

软件包管理器之二——YUM介绍及使用的相关文章

软件包管理器之一——RPM介绍及应用

一.前言: 在没有软件包管理器前,用户都是通过源代码的方式来安装软件.但是我们很容易发现,在每次安装软件时都必须对操作系统的境.编译的参数进行对应的编译,并且操作过程很是复杂,这对于不熟悉操作系统的朋友来说真心困难,那么有没有一款软件能让用户能很简单的安装所需的软件呢? 随着自由软件蓬勃发展,Linux系统的飞快发展,很多软件开发者.企业和社区将这些软件开始通过收集.整理.编译制作成distributions发布到常用的Linux操作系统上,但是后来发现,这样做在日后软件更新.系统更新上面都需要

第二课(安装虚拟机与RPM红帽软件包管理器、Yum软件仓库以及Systemd初始化进程原理)

一.安装虚拟机 很简单,不多说 ,重要的是镜像.内存以及模式搞清楚就行. 虚拟机中三种模式: 1.桥接模式:相当于在物理主机与虚拟机网卡之间架设了一座桥梁,从而可以通过物理主机的网卡访问外网. 2.NAT模式:让VM虚拟机的网络服务发挥路由器的作用,使得通过虚拟机软件模拟的主机可以通过物理主机访问外网,在真机中NAT虚拟机网卡对应的物理网卡是VMnet8. 3.仅主机模式:仅让虚拟机内的主机与物理主机通信,不能访问外网,在真机中仅主机模式模拟网卡对应的物理网卡是VMnet1. 二.RPM(Red

学习笔记(十)——软件包管理:rpm + yum

1.rpm : rpm(RedHat Package Manager)是 RedHat 的软件包管理工具,由于CentOS 是基于 RedHat Linux的,所以 rpm 对于 CentOS 同样适用.下面列举了一些rpm 的常用参数: [[email protected] ~]# rpm -ivh packagename.rpm        //安装包 [[email protected] ~]# rpm -e packagename.rpm          //卸载包 如果要卸载 vi

linux下系统软件包管理(rpm、yum、源码包安装)

1. rpm工具rpm全称为Redhat Package Manager,红帽软件包管理工具,设计理念是开放的,不仅仅是在RedHat平台上,在SUSE上也是可以使用的. rpm包名字构成由-和.分成了若干部分,如abrt-cli-2.0.8-15.el6.centos.i686.rpm,abrt-cli是包名,2.0.8-15是版本号,el6指的是redhat企业版6,centos指的是这是在centos上用的,i686指的是平台类型.有些rpm包并没有写具体的平台而是noarch,这代表这个

五、软件包管理RPM与YUM

5.1.程序包管理器 程序包管理器的基本功能:将编译好的应用程序的各组成文件打包一个或几个程序包文件,从而方便快捷地实现程序包的安装.卸载.查询.升级和校验等管理操作:其文件组成一般可以分为两类: 1).程序的组成组成清单 (每个包独有):文件清单. 安装或卸载时运行的脚本2).数据库(公共):程序包名称及版本.依赖关系:功能说明:安装生成的各文件的文件路径及校验码信息:软件包的组成部分. 软件包安装后,一般分布到如下一些目录: RPM 全名是『RedHat Package Manager ,R

软件包管理rpm、yum及编译安装

库文件 查看二进制程序所依赖的库文件 ldd /PATH/TO/BINARY_FILE 管理及查看本机装载的库文件 ldconfig 加载库文件 /sbin/ldconfig -p: 显示本机已经缓存的所有可用库文件 名及文件路径映射关系 配置文件:/etc/ld.so.conf, /etc/ld.so.conf.d/*.conf 缓存文件:/etc/ld.so.cache rpm(RedHat Package Manager) 程序包管理器: 功能:将编译好的应用程序的各组成文件打包一个或几个

软件包管理rpm和yum

rpm的使用: 安装的包相关包信息会保存在/var/lib/rpm目录下的文件中 安装参数: -i install安装 -v 显示详细信息 -h 打印####号 -V 校验软件包,会到/var/lib/rpm下进行校验 常用 rpm -ivh 软件包安装(包全名) 查询参数: -q query查询 -i 拆线已安装报的详细信息 -l 查询安装的包的所有路径 -a 查询所有安装的包 -p 查询未安装的软件包的相关信息 -R 查询软件包的依赖性 -f  反向查找文件是由那个软件包安装的 rpm -V

linux 之软件包管理(二) rpm查询

Linux学习之CentOS(二十三)--Linux软件管理之源代码以及RPM软件包管理

在Linux系统下,对于软件包的管理有多种机制,有源代码方式.RPM软件包管理方式以及YUM软件管理方式,本篇随笔将详细讲解CentOS下源代码形式安装软件以及RPM软件包管理机制 一.源代码形式 首 先我们先来看一下源代码的方式.我们知道,在开源的环境下,大多数的开源软件都是以源代码的形式来发布,通常将源代码打包成tar.gz的归档压缩文件发 布到网上供我们下载使用.但是我们下载下来的源代码方式我们还不能够直接使用,不像在windows系统上直接下载下来可执行的二进制文件,我们需要将下 载好的