YUM服务器搭建

YUM简介 1、yum的优势

虽然rpm命令是一个功能强大的软件包管理工具,rpm命令有两个缺点,一是需要下载适合你的升级软件包;二是检测到软件包的依赖关系时,只能手工配置。而yum可以自动解决软件包间的依赖关系,并且可以通过网络安装和升级软件包。

一个软件包需要一个或多个库,那么这个(些)库就是这个包的依赖。要正常安装软件包,首先要满足它的依赖关系,一个RPM包的依赖信息存放在这个RPM包中。yum使用软件包中的依赖关系信息,保证这个软件包在安装前,首先满足相应的条件,然后自动安装软件包。如果发生冲突,yum会自动放弃安装,不对系统做任何修改。

yum的优势:自动下载、自动检测、自动安装、自动配置、自动删除。

2、yum的产生

在RedHatEnterpriseLinux(RHEL从5.O版开始采用yum)、CentOS和Fedora等发行版中,采用了一种叫做yum的软件包管理工具。yum(Yellow dog Updater Modified)用python语言写成。yum的宗旨是收集rpm软件包的相关信息,检查依赖关系,自动地升级、 安装、删除rpm软件包。

yum的关键之处是要有可靠的repository(仓库),repository管理一部分甚至一个Linux发行版的应用程序的依赖关系,根据计算出来的依赖关系进行相关软件包的升级、安装、删除等操作,解决了Linux用户一直头痛的依赖关系问题。 repository可以是http或ftp站点,也可以是本地软件池,但必须包含rpm的header。header包括了rpm包的各种信息,包括描述、功能、提供的文件、依赖性等。正是收集了这些header并加以分析,才能自动地完成升级、安装软件包等任务。

3、命令详解

1 安装
yum install 全部安装
yum install package1 安装指定的安装包package1
yum groupinsall group1 安装程序组group1

2 更新和升级
yum update 全部更新
yum update package1 更新指定程序包package1
yum check-update 检查可更新的程序
yum upgrade package1 升级指定程序包package1
yum groupupdate group1 升级程序组group1

3 查找和显示
yum info package1 显示安装包信息package1
yum list 显示所有已经安装和可以安装的程序包
yum list package1 显示指定程序包安装情况package1
yum groupinfo group1 显示程序组group1信息yum search string 根据关键字string查找安装包

4 删除程序
yum remove | erase package1 删除程序包package1
yum groupremove group1 删除程序组group1
yum deplist package1 查看程序package1依赖情况

5 清除缓存
yum clean packages 清除缓存目录下的软件包
yum clean headers 清除缓存目录下的 headers
yum clean oldheaders 清除缓存目录下旧的 headers
yum clean, yum clean all (= yum clean packages; yum clean oldheaders) 清除缓存目录下的软件包及旧的headers

案例一 网络YUM的配置

 

image
网络yum服务器的配置

[root@localhost ~]# rpm -qa yum |grep yum
yum-3.2.22-20.el5   //查询yum是否安装

如果没有安装需要自己手动安装

[root@localhost ~]# mkdir /mnt/cdrom
[root@localhost ~]# mount /dev/cdrom /mnt/cdrom //挂载光盘
mount: block device /dev/cdrom is write-protected, mounting read-only
[root@localhost ~]# cd /mnt/cdrom/Server/  //切换目录
[root@localhost Server]# rpm -ivh vsftpd-2.0.5-16.el5.i386.rpm  //安装ftp服务器
warning: vsftpd-2.0.5-16.el5.i386.rpm: Header V3 DSA signature: NOKEY, key ID 37017186
Preparing...                ########################################### [100%]
   1:vsftpd                 ########################################### [100%]

[root@localhost Server]# cd ../
[root@localhost cdrom]# cd /var/ftp/pub

[root@localhost pub]# cp -r /mnt/cdrom/. ./   //将cdrom下文件拷贝到ftp主目录下

[root@localhost pub]# cd

[root@localhost ~]# service vsftpd start
Starting vsftpd for vsftpd:                                [  OK  ]

[root@localhost ~]# ll /var/ftp/pub |grep "^d" //查找ftp目录下目录文件
dr-xr-xr-x 3 root root   4096 Aug 11 10:06 Cluster
dr-xr-xr-x 3 root root   4096 Aug 11 10:06 ClusterStorage
dr-xr-xr-x 3 root root 159744 Aug 11 10:09 Server
dr-xr-xr-x 3 root root   4096 Aug 11 10:09 VT
dr-xr-xr-x 4 root root   4096 Aug 11 10:09 images
dr-xr-xr-x 2 root root   4096 Aug 11 10:09 isolinux

安装生成RPM包依赖关系及分组信息的工具

[root@localhost Server]# pwd
/var/ftp/pub/Server
[root@localhost Server]# rpm -ivh createrepo-0.4.11-3.el5.noarch.rpm
warning: createrepo-0.4.11-3.el5.noarch.rpm: Header V3 DSA signature: NOKEY, key ID 37017186
Preparing...                ########################################### [100%]
   1:createrepo             ########################################### [100%]
 

[root@localhost Server]# createrepo  -g ./repodata/comps-rhel5-server-core.xml  ./  //生成RPM依赖关系。-g参数主要是生成依赖关系和更新分组文件信息

2292/2292 - system-config-soundcard-2.0.6-1.el5.noarch.rpm                     
Saving Primary metadata
Saving file lists metadata
Saving other metadata

如果Server目录下出现新的包,使用这个命令重新生成rpm依赖关系。否则不能使用新的包安装。

root@localhost Server]# service vsftpd restart  //重启ftp服务
Shutting down vsftpd:                                      [  OK  ]
Starting vsftpd for vsftpd:                                [  OK  ]

客户端配置

没有配置yum前

image
[root@localhost ~]# vim /etc/yum.repos.d/rhel-debuginfo.repo

1 [rhel-server] //光盘server 目录
2 name=Red Hat Enterprise Linux server //说明是server 目录
3 baseurl=ftp://192.168.145.100/pub/Server //网络yum 源
4 enabled=1 //是否启用yum 仓库
5 gpgcheck=1 //是否做签名检测
6 gpgkey=ftp://192.168.145.100/pub/RPM-GPG-KEY-redhat-release //检测时候钥匙文件存放目录
7
 

 image

 可以使用yum

本地yum的配置

当网络中linux主机较少时,只需配置本地yum即可使用yum仓库安装软件包

[root@localhost ~]# rpm -qa yum |grep yum
yum-3.2.22-20.el5 //查询yum是否安装

如果没有安装需要自己手动安装

[root@localhost ~]# mkdir /mnt/cdrom
[root@localhost ~]# mount /dev/cdrom /mnt/cdrom //挂载光盘
mount: block device /dev/cdrom is write-protected, mounting read-only
 

[root@localhost ~]# vim /etc/yum.repos.d/rhel-debuginfo.repo

1 [rhel-server] //光盘server 目录
2 name=Red Hat Enterprise Linux server //说明是server 目录
3 baseurl=file:///mnt/cdrom/Server //本地yum 源
4 enabled=1 //是否启用yum 仓库
5 gpgcheck=1 //是否做签名检测
6 gpgkey=file:///mnt/cdrom/RPM-GPG-KEY-redhat-release //检测时候钥匙文件存放目录
7
 

[root@localhost ~]# yum install httpd
Loaded plugins: rhnplugin, security
This system is not registered with RHN.
RHN support will be disabled.
Setting up Install Process
Resolving Dependencies
--> Running transaction check
---> Package httpd.i386 0:2.2.3-31.el5 set to be updated
rhel-server/filelists                                                      | 2.3 MB     00:00    
--> Finished Dependency Resolution

Dependencies Resolved

==================================================================================================
Package            Arch              Version                      Repository                Size
==================================================================================================
Installing:
httpd              i386              2.2.3-31.el5                 rhel-server              1.2 M

Transaction Summary
==================================================================================================
Install      1 Package(s)        
Update       0 Package(s)        
Remove       0 Package(s)        

Total download size: 1.2 M
Is this ok [y/N]: y
Downloading Packages:
warning: rpmts_HdrFromFdno: Header V3 DSA signature: NOKEY, key ID 37017186
rhel-server/gpgkey                                                         | 1.1 kB     00:00    
Importing GPG key 0x37017186 "Red Hat, Inc. (release key) <[email protected]>" from /mnt/cdrom/RPM-GPG-KEY-redhat-release
Is this ok [y/N]: y
Running rpm_check_debug
Running Transaction Test
Finished Transaction Test
Transaction Test Succeeded
Running Transaction
  Installing     : httpd                                                                      1/1

Installed:
  httpd.i386 0:2.2.3-31.el5                                                                      

Complete!
[root@localhost ~]#

 

 

当需要配置群集,虚拟,存储时。可采用上述步骤配置 cluster、vt、clusterstorage仓库。目录对应正确。

包依赖关系发生变化时必须重新生成rpm包依赖关系。

你可能感兴趣的:(yum,仓库,软件包)