doclist 阅读(69) 评论(0)

 

软件管理yum

 

也是一个rpm包的管理工具,可以实现自动解决rpm包的依赖关系(自动安装依赖顺序进行rpm包的安装)

 

为何rpm包会有依赖关系?

制作rpm的人,在制作rpm包的时候,就将这个rpm的所依赖的软件的信息保存在这个rpm包的内部

 

yum的工作原理

 

1. 需要首先创建一个yum仓库(rpm包仓库、软件仓库)

1)仓库其实就是一个目录

2)仓库中存放的是rpm包

3)仓库中还保存了一个文件,文件中记录了该仓库中所有rpm包的元数据信息

4)元数据信息包括

软件名

软件版本

软件是否已经安装

软件的依赖关系

 

2. 用 yum 来从仓库中找软件进行安装的过程(比如要安装软件A,A依赖B 和C, B依赖C D)

1)yum首先会扫描保存元数据信息的文件,检查A是否已经安装,如果已经安装,那提示已经安装

2)如果A尚未安装,那么扫描A的依赖关系信息,会发现A 依赖B 和C

3)yum会再次扫描元数据文件,检测B C 是否安装,如果都已经安装,那么会开始开始安装A

4)如果B C尚未安装,那么会检测 B C的依赖关系,会发现B依赖C D

5)yum会再次扫描元数据文件,检测C D是否安装,如果都已经安装,那么会开始开始安装B,然后安装C,,然后安装A

 

yum仓库

 

本地:将本地的一个目录做成yum仓库,只有当前系统可以

网络:通过网络将服务器上的一个目录作为yum仓库,网络中的全部主机都可以用

 

使用yum仓库的方式,就是修改yum的配置文件

 

yum的配置文件

主:/etc/yum.conf

子:/etc/yum.repos.d/*.repo

 

/etc/yum.conf文件

cachedir=/var/cache/yum/$basearch/$releasever

指定缓存文件的保存位置,默认:/var/cache/yum/x86_64/7/

keepcache=0

指定是否保留缓存文件

 

 

用yum安装软件过程中会从yum仓库下载并缓存多个资源

1)会将yum仓库的元数据文件缓存到配置文件所指定的路径中

2)会将要安装的软件及其依赖的软件一并缓存到配置文件指定的目录中

 

yum配置文件的构成

 

[localRpm]      <<< 指定yum仓库的id,可以随便写,但是中间不能有空格

name=xxx        <<< 指定yum仓库的名称,可以随便写

enabled=0|1     <<< 指定是否使用该yum仓库,0表示不使用;1表示使用

gpgcheck=0|1    <<< 指定是否对rpm包做完整性和来源合法性验证,0表示不做验证;1表示必须做验证

gpgkey=         <<< 指定公钥文件(如果gpgcheck=1,那么该项不能省略)

baseurl=        <<< 指定yum仓库的url

 

yum仓库的url的表示方式

 

注意:在指定yum仓库的时候,其实不是指向rpm包的目录,而是执行repodata所在目录

 

本地yum仓库

file://

例子:比如我的yum仓库 /myrpm,此时yum仓库的表示方式就是file:///myrpm

网络yum仓库

http://

 

创建本地yum仓库

 

案例1:

第一步:创建目录

# mkdir  /myrpm

 

第二步:在仓库中准备一个用于测试的rpm

# cp /mnt/Packages/* /myrpm -rvf

 

第三步:安装用于生成元数据文件的工具(createrepo)

# rpm -ivh /mnt/Packages/deltarpm-3.5-0.5.20090913git.el6.x86_64.rpm

# rpm -ivh /mnt/Packages/python-deltarpm-3.5-0.5.20090913git.el6.x86_64.rpm

# rpm -ivh /mnt/Packages/createrepo-0.9.9-22.el6.noarch.rpm

 

第四步:生成元数据

# createrepo /myrpm

 

第五步:检查

# ls /myrpm

 

 

 

案例2:

使用光盘中的rpm包作为yum仓库

第一步:挂载光盘

# mount /dev/cdrom /media

 

第二步:备份yum自带的配置文件

# cd /etc/yum.repos.d

# mkdir bak

# mv *.repo bak

 

第三步:创建yum的配置文件,使用光盘作为yum仓库

# vim 1.repo

[myrepo]

name=my repo

enabled=1

gpgcheck=0

baseurl=file:///media

 

第四步:执行yum命令检测结果

# yum clean all    <<< 清空yum缓存的全部数据

# yum repolist     <<< 检查yum仓库中有多少个可用的rpm包

 

yum使用

 

1. 安装软件

yum -y install 软件1 软件2 软件3 ....

 

2. 卸载软件

yum -y remove 软件1 软件2 软件3 ....

 

3. 管理包组

        grouplist:查看系统中的全部的包组

        groupinfo 包组名:查看指定包组的信息(包组的作用、包含的软件)

        groupinstall 包组名:安装指定的包组

        groupremove 包组名:卸载指定的包组

       

4. 管理yum的缓存数据

     clean [ packages | metadata | all ]

     all:清除所有数据

     packages:仅仅清除rpm包

     metadata:仅仅清理缓存元数据

 

5. 查看所有已经安装和尚未安装rpm包

      yum list all 或者yum list 可以列出所有的软件包

      

6. yum list available:仅仅显示可以安装但是尚未安装的rpm包

 

7. yum list  installed:仅仅显示已经安装rpm包

     @:表示已经安装rpm

 

8. 查看yum仓库的信息

      yum repolist

 

网络yum源的使用方式

 

国内主流的网络yum仓库地址

mirrors.aliyun.com

mirrors.163.com

mirrors.sohu.com

 

rpm的yum源

centos提供的

epel提供的:

 

例子:使用aliyun提供的epel 和centos的yum源

cd /etc/yum.repos.d

mkdir bak

mv *.repo bak

vim new.repo

[centos]

name=centos repo

enabled=1

gpgcheck=0

baseurl=http://mirrors.163.com

 

[epel]

name=epel repo

enabled=1

enabled=1

baseurl=http://xxxx

 

制作一个网络yum源

 

思路:在网络上准备一个主机,在其中安装一个web服务器软件(比如apache),然后创建一个目录,在这个目录中准备上yum仓库的全部资源,如果用户可以通过网络访问到该主机的这个目录,那么这个目录就成为网络yum仓库

 

实现过程

第一步:配置yum源主机

1)安装配置apache

2)配置yum仓库相关资源

1. 创建一个目录,作为存储yum资源的目录

# mkdir /usr/local/apache/htdocs/mysource

2. 挂载光盘

# mount /dev/cdrom /mnt

3. 将光盘中的资源复制到前面所创建的目录下

# cp /mnt/* /usr/local/apache/htdocs/mysource -rvf

4. 用浏览器访问一下yum仓库,检查是否可以看到相关文件

http://ip/mysource

 

第二步:配置客户端主机

修改yum配置文件

1)备份原有的配置文件

# mkdir bak

# mv *.repo bak

# vim a.repo

[]

name

enabled=

gpgcheck=

baseurl=http://ip/mysource

2)测试一下

# yum repolist