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
[localbase]
name=CenOS6.5 X86_64 release iso file
base=file:///media/
enable=1
gpgcheck=1
gpgkey=file:///RPM-GPG-KEY-CentOS-Debug-6
~
[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仓库。
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": 显示包组信息
reinstall package_name 重新安装指定的包
yum check-update 检查可升级的包
update packe_name 指定升级的程序包 要升级到指定版本要带版本号
downgrade packe_name 降级
erase|remove pack_name 依赖的包也会被卸载
whatprovides|provides /path/to/somefile: 查询某文件是由谁提供的
yum history 查看yum的命令历史
手动禁止检查来源及完整性:--nogpgcheck
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
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
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"