构建yum的三种方式

yum创建的三种方式

Linux系统:CentOS 6.5 X86_64
VMware 11.0
网络适配器:NAT
工作状态:连网

在配置yum(Yellowdog Update Modifier)之前,我们知道它其实是rpm的一个扩充。yum的工作需要两部分,
一个是yum服务器,另一个是client的yum命令工具。通常,在实验环境中,我们通常充当既是客户端又是服务端。

yum服务端:
所有发行的rpm包都放在yum服务器上,它所在位置我们称之yum仓库(repository),仓库中保存着各个rpm包依赖关系等元数据文件(repodata);
yum仓库可提供简单的下载方式,如httpd方式。

yum client端:
用户执行命令yum安装时,它会根据本地配置文件中明确告知它的可以使用的仓库,把仓库的元数据文件都下载并缓存
至本地以便快速分析,然后,根据分析结果,确认哪些包没安装哪些包已经安装了,进而来执行用户的下载安装。
client每次调用yum install或者search的时候,都会去解析/etc/yum.repos.d下面所有以.repo结尾的配置文件,这些配置文件指定了yum服务器的地址。

yum会定期"更新"yum服务器的rpm包"清单",然后把"清单"下载保存到yum自己的cache里面,
根据/etc/yum.conf配置(默认是在/var/cache/yum下面),每次调用yum安装时会去cache目录下去找"清单",
根据"清单"里的rpm包描述从而来确定安装包的名字,版本号,所需要的依赖包等,然后再去yum服务器下载rpm包安装。

要使用yum管理应用程序,首先得配置其可用的yum仓库,保存在配置文件中
     /etc/yum.conf  #主要的配置信息都保存在此文件中;
     /etc/yum.repo.d/*.repo  #不是特别重要的信息保存在次此文件中; 
这两个文件,在我们虚拟机安装CentOS6.5系统完成后就存在这两个文件目录;
自己编写这个文件必须以.repo结尾,配置*.repo文件格式如下,前四行必须有:
       [repo_ID]
       name=String
       baseurl=仓库的访问路径
       enabled={1|0}1,表示启用。0表示不启用
       gpgcheck={1|0}1,验证gpg。0表示不验证
       gpgkey=公钥地址(可以是本地,也可以是服务器端路径)
       cost=定义此仓库开销,默认为1000
所以,第一种方式的yum配置非常简单只需编辑/etc/yum.repo.d/*.repo中其中一个文件即可,比如:
[root@bogon yum.repos.d]# ll
total 20
-rw-r--r--  1 root root 1925 Jul 24 21:30 CentOS-Base.repo
-rw-r--r--. 1 root root  638 Nov 27  2013 CentOS-Debuginfo.repo
-rw-r--r--. 1 root root  630 Nov 27  2013 CentOS-Media.repo
-rw-r--r--. 1 root root 3664 Nov 27  2013 CentOS-Vault.repo
#上面的四个文件不要删除,可以供读者参考其文件内容的格式等等。
[root@bogon yum.repos.d]# vim CentOS-Base.repo
.........
.........
.........
[base] 
name=CentOS-$releasever - Base
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os
baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/   #只需去掉前面的#就OK了,其他都无需更改,然后保存退出就可以使用yum命令了。
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6

#released updates 
[updates]
name=CentOS-$releasever - Updates
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=updates
#baseurl=http://mirror.centos.org/centos/$releasever/updates/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6

#additional packages that may be useful
[extras]
name=CentOS-$releasever - Extras
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=extras
#baseurl=http://mirror.centos.org/centos/$releasever/extras/$basearch/
...........
...........
...........
上述方式,是利用系统自带的配置进行更改进行网络启动服务的yum安装,也就是连接网络下载官方的安装包;
对于不能经常连网的朋友不太方便的话,可以看第二种方式;



第二种方式在虚拟机中利用本地挂载的映像文件做为yum仓库(其实,映像文件本身就可以做为yum仓库);
先挂载本地映像iso:
[root@bogon ~]# mount -o ro /dev/cdrom /media
[root@bogon ~]# ls /media/
CentOS_BuildTag  EULA  images    Packages                  repodata              RPM-GPG-KEY-CentOS-Debug-6     RPM-GPG-KEY-CentOS-Testing-6
EFI              GPL   isolinux  RELEASE-NOTES-en-US.html  RPM-GPG-KEY-CentOS-6  RPM-GPG-KEY-CentOS-Security-6  TRANS.TBL


#编辑文件,保存。

[root@bogon ~]#vim /etc/yum.repos.d/local-media.repo

[localbase]  
name=CenOS6.5 X86_64 release iso file  
base=file:///media/
enable=1
gpgcheck=1
gpgkey=file:///RPM-GPG-KEY-CentOS-Debug-6
~    


写好后保存退出;然后可以进行yum命令的安装使用了。

此处,读者可不必挂载映像到本地,可将其映像中的文件拷贝到在本地的新建目录下(如:mkdir /mnt/cdrom),然后在/etc/yum.repos.d/进行vim的创建编辑文件,例如:
[root@bogon ~]#vim /etc/yum.repos.d/localyum.repo 
 
[localyum]  
name=localyum
base=file:///mnt/cdrom/
enable=1  
........
........
保存并退出即可,同样可以进行yum命令的安装使用。


第三种方式:基于http这种web服务来创建yum仓库                                     
首先,先介绍一个命令:createrepo 
它是一个创建yum仓库的命令,我们必须先安装这个命令,这个命令依赖的安装包很少,
只需在命令行执行:yum -y install createrepo
这个命令可以对仓库中所有的软件包,生成元数据文件,是一个目录叫repodata,这个目录下有一个repomd.xml文件。
而光盘中,这个叫repodata的目录下,还有一个后缀为comps.xml的文件。repomd.xml(保存的是文件元数据和md5校验码)和后缀为comps.xml的分组文件,
如果读者对这两个文件感兴趣,请自行查阅或翻阅官方文档。


接下来,你可以把所有需要的安装包下载到本地,放在/var/www/html/目录下的一个目录文件中(如/var/www/html/rpm_package)
然后执行:
[root@bogon ~]#yum install http  #此处,在没有yum源的情况下,需要rpm命令安装,依赖的包貌似有五个,共6个;
[root@bogon ~]#createrepo /var/www/html/rpm_package
[root@bogon ~]#service httpd start 
然后,我们在/etc/yum.repos.d/编辑*.repo文件,把自己的本地ip地址添加在baseurl这一项中,因为,这是以本机做为服务器进行web服务创建的yum仓库。

并且,本机又做为客户端进行使用yum命令的安装使用。所以:

[root@bogon ~]#vim  /etc/yum.repos.d/localyum.repo 


[localyum]  
name=localyum
base=http://192.168.122.122/rpm_package/
enable=1  
........
........
保存并退出,即可进行yum命令的安装使用;
 ps:Linux中的/var/www/html/相当于我们在浏览器地址栏输入的IP地址


以上三种是非常简单的配置yum源,实际生产环境中用到yum的配置要复杂的多。

扩充:
[root@bogon ~]# vim /etc/yum.conf
[main]   
cachedir=/var/cache/yum/$basearch/$releasever   #缓存目录
keepcache=0   #是否保存,0否,1保存;
debuglevel=2 #调试级别
logfile=/var/log/yum.log
exactarch=1 #版本要完全对应使用的安装包
obsoletes=1 #此项不用理会
gpgcheck=1 #验证检查完整性
plugins=1 #是否支持yum插件
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

$YUM0-9:系统定义的环境变量,可在yum中使用;
$basharch:系统基本架构,如i686,i586等的基本架构为i386;
$basearch:系统架构;
$releasever:系统版本,对Yum而言指的是redhat-relrase版本。只替换为主版本号,如Redhat6.5 则替换为6;
这4个变量是yum的专用变量,我们通常称为宏。

yum的各个命令:   
     repolist [all|enabled(默认)|disabled]:列出所有可用的yum repo   
     clean [all|packeages(包)|metadata(元数据)|expire-cache(过期数据)|rpmdb(rpm数据)plugins]:清理缓存
     list [all|installed(已安装过的)|available(可用)]:列出yum包
     info :显示包的详细信息 
     grouplist:列出所有的包组 
     groupinfo "package_group_name": 显示包组信息 

      

 三个跟开发相关的包组:

       Desktop Platform Development:有图形程序时需安装此组

       Server Platform Development

       Development Tools


      install package_name  安装指定的程序包
      reinstall package_name  重新安装指定的包
      yum check-update  检查可升级的包
      update packe_name  指定升级的程序包 要升级到指定版本要带版本号
      downgrade packe_name  降级
      erase|remove pack_name   依赖的包也会被卸载

  whatprovides|provides /path/to/somefile: 查询某文件是由谁提供的

groupinstll "group_name" 安装包组

groupremove ”group_name“:卸载组
  yum history 查看yum的命令历史
       手动禁止检查来源及完整性:--nogpgcheck

        如果系统为CentOS 5,开发包组为”Development Tools“和”DeveLopment Libraries“

        如何系统为CentOS 6,常用开发包组为”Development tools“和"Server Platform Development"

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值