首页 > Linux操作系统 > Linux操作系统 > Linux下yum的使用(转)
以光驱为源
为了避免从网络下载软件包可能发生的软件包不完整、下载速度慢、网络故障等问题,我们强烈建议您使用本地的 DVD/CD iso 来创建 yum 仓库,这样在安装的时候速度快,而且可以保证所有软件包都能顺利安装。
如果您有局域网内的 yum 仓库,可以直接使用它,就不需要按照以下的步骤重复创建了。
下面的操作都是在您安装好 RHEL/CentOS 系统后进行的。
先从光盘或已有的 YUM 仓库安装 createrepo 工具:
Shell 命令:
# rpm -ivh createrepo-x.y.z.rpm
createrepo 命令用于生成 yum 仓库所必须的一些信息,这些信息都存放在 repodata/ 目录底下,您打开看看就会明白它做了些什么事情。
使用 ISO 文件制作 yum 仓库
DVD ISO
如果你使用的是 DVD 光盘,可以直接挂载光盘,然后制作 yum 仓库:
Shell 命令:
# mkdir /mnt/dvd/
# mount /dev/cdrom /mnt/dvd/
# cd /mnt
# createrepo .
如果您使用的是官方的 DVD ISO,则需要将它复制到系统上,挂载后制作 yum 仓库:
Shell 命令:
# mkdir /mnt/dvd/
# mount -o loop /root/rhel5.1-dvd.iso /mnt/dvd
# cd /mnt
# createrepo .
CD ISO
如果您使用的是多个 CD iso 文件,需要先复制到系统上,挂载后制作 yum 仓库。
有几个 ISO 就创建几个目录,并将对应的 ISO 挂载上去:
Shell 命令:
# mkdir -p /mnt/{1,2,3,4,5,6}
# mount -o loop rhel5.1-disc1.iso /mnt/1
# mount -o loop rhel5.1-disc2.iso /mnt/2
# mount -o loop rhel5.1-disc3.iso /mnt/3
# mount -o loop rhel5.1-disc4.iso /mnt/4
# mount -o loop rhel5.1-disc5.iso /mnt/5
创建 yum 仓库:
Shell 命令:
# cd /mnt/
# createrepo .
定义 yum 仓库
创建 yum 仓库的定义文件:/etc/yum.repos.d/dvdiso.repo,然后加入以下内容:
Shell 命令:
[DVDISO]
name=DVD ISO
baseurl=file:///mnt/
enabled=1
gpgcheck=0
测试 yum 仓库
强烈建议执行 'yum clean all' 命令,将所有 yum metadata 等信息清空,再重新获取最新的仓库信息:
Shell 命令:
# yum clean all
# yum list
如果在 'yum list' 命令的输出中能够看到刚才制作的仓库里的软件包的名字,那就是 OK 了。再试着安装一个软件包看是否成功:
Shell 命令:
# yum install cyrus-sasl.i386
如果是 x86_64 平台,则将后面的 i386 改为 x86_64:
Shell 命令:
# yum install cyrus-sasl.x86_64
如果安装成功,表示 yum 仓库和 RPM 包都没问题。
以ftp服务器为源
一. 准备工作
1. 启动REDHAT Linux ,并放入安装光盘
2. 挂载光驱 mount /dev/cdrom /mnt
3. 安装FTP服务
cd /mnt/Server
rpm -ivh vsftpd*
chkconfig vsftpd on
service vsftpd start
4. 安装createrepo软件包
rpm –ivh createrepo*
5. 拷贝系统盘中的文件到本系统中
cp -R /mnt/Server /var/ftp/pub
二. 搭建YUM
1. 生成依赖性关系
createrepo -g /var/ftp/pub/Server/repodata/comps-rhel5-server-core. xml /var/ftp/pub/Server/
这个地方要注意. comps-rhel5-server-core. xml一定不能手动生成. 默认安装光盘上已经有了
2. 做完上面的步骤后会有一个错误提示. “Could not remove old metadata dir: . olddata“说目录有问题。不用管他. 把那个目录删除掉
rm –rf /var/ftp/pub/Server/. olddata
3. 把步骤1再做一遍
createrepo -g /var/ftp/pub/Server/repodata/comps-rhel5-server-core. xml /var/ftp/pub/Server/
4. 创建仓库文件
新建一个仓库文件. 名字可以随便起.
cd /etc/yum.repos.d
vim yum. repo
在文件中写如下内容
[base]
name=base
#192. 168. 0. 6是你的YUM源地址
baseurl=ftp://192. 168. 0. 6/pub/Server
#是否开启源
enabled=1
#是否验证. 可不要
gpgcheck=1
#验证的密钥. 可不要
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
经过以上步骤后. 自己的YUM源就搭建好了。当然. 你可以把你的源提供给别人使用. 要使用的人只用将你的repo文件复制一份到/etc/yum.repos.d/下. 或者自己手写一份。如果还想做其他仓库. 比如VT,Cluster,ClusterStorage,重复上面的步骤. 然后改改仓库文件就可以了。有了YUM. 以后再安装软件包就方便很多了. 不用考虑依赖性关系。
yum 用法
yum install 软件名 /**//*下载安装对应软件包*/
yum info 软件名 /**//*查看软件包的详细信息*/
yum list |grep kernel /**//*查找kernel的软件包*/
yum update firefox /**//*更新firefox*/
yum remove bmp-mp3 /**//*移除bmp-mp3*/
man yum /**//*yum命令详细信息查看*/
yum 文件的配置路径为 /etc/yum.conf
#0表示不保存下载的文件,1表示保存下载的文件,默认为不保存
keepcache=0
#指定下载文件的保存路径,文件保存在 分类目录/packages/ 中
cachedir=/var/cache/yum
================================================
yum.conf配置文件 | |
[main] | |
cachedir=/var/cache/yum |
yum缓存的目录,该目录用于存储下载的RPM软件包和RPM数据库,例如:当你安装一个软件包时,在这个目录下对应的子目录( base/packages )中先下载这个软件包,然后再进行安装软件包,但是安装完后,它不会自动删除这个下载的软件包,所以占空间,但可以手动删除 |
keepcache=1 |
值可以是1和0,表示是否要缓存已安装成功的那些RPM包及头文件,默认值为1,表示缓存这些RPM包和头文件,作用:下一次安装相同的RPM包的时,yum就不用下载了,直接可以从缓存(/var/cache/yum…)安装些RPM包 |
reposdir |
设置.repo配置文件所存放的目录,默认是: /etc/yum.repos.d、 /etc/yum/repos.d |
assumeyes=0 |
值可以是1和0,表示是否安装RPM包时直接自动确认应答,而不用手动确认,默认值为0:表示要手动确认 |
alwaysprompt=1 |
值可以是1和0,表示是否安装RPM包时总是要手动确认,默认值为1:表示要手动确认 |
retries=2 |
网络连接发生错误后的重试次数,如果设为0,则会无限重试 |
debuglevel=2 |
除错级别:0-10 |
logfile=/var/log/yum.log |
yum的日志文件 |
pkgpolicy=newest |
包的策略:newest和last,作用:如果你设置了多个repository,而同一软件在不同的repository中同时存在,yum应该安装哪一个,如果是newest,则yum会安装最新的那个版本。如果是last,则yum会将服务器id以字母表排序,并选择最后的那个服务器上的软件安装。一般都是选newest |
distroverpkg=redhat-release |
指定一个软件包,yum会根据这个包判断你的发行版本,默认是redhat-release(例如:centos-release、rpmforge-release等),也可以是安装的任何针对自己发行版的rpm包 |
tolerant=1 |
也有1和0两个选项,表示yum是否容忍命令行发生与软件包有关的错误,比如你要安装:1.i386.rpm、2.i386.rpm、3.i386.rpm这三个包,而其中3.i386.rpm在此之前已经安装了,如果现在你将tolerant的值设为1,则yum不会出现错误信息。默认是0 |
exactarch=1 |
可选值有两个1和0,表示是否只升级和你安装软件包cpu体系一致的包,默认值为1:表示如果你已经安装了一个i386的包,那么就不会再安装相同的i686的包 |
obsoletes=1 |
该参数主要与升级有关 |
gpgcheck=1 |
是否进行gpg校验,默认是进行检验的 |
plugins=1 |
当要使用plugin(例如:python)时,plugins的值要设置成1 |
metadata_expire=1800 |
Metadata的过期时间,单位为秒 |
exclude=…. |
排除某些软件在升级名单之外,可以用通配符(例如:*与?),列表中各个项目要用空格隔开,这个对于安装了诸如美化包,中文补丁的朋友特别有用 |
*.repo配置文件格式 | |
[serverid] |
用于定义和区别repository服务器,必须唯一 |
name=repository server name |
只是用来描述RPM存储服务器,但是name字段的等号右边支持像$releasever 、$basearch等这种变量 |
baseurl=url1://path/to/repository |
支持的url协议有:http、ftp、file(本地),同时等号右边也支持像$releasever 、$basearch等这种变量 |
enabled=1 |
是否激活这个repository服务器 |
gpgchek=1
|
是否使用gpg来进行对repository服务器上的包进行校验 |
gpgkey=file:// /etc/pki/rpm-gpg/ RPM-GPG-KEY-CentOS-5 http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-5 |
gpgkey存放的位置,一般在本地的目录下就会有,如果没有你就要先下载到这个目录下,或者直接指定到有gpgkey的相应网址 |
exclude=gaim |
排除某些软件,例如:这里排除软件gaim |
failovermethode=roundrobin |
值有两个:roundrobin和priority,表示:当有多个url可供选择时,yum选择的次序,roundrobin是随机选择,如果连接失败则使用下一个,依次循环;priority则根据url的次序从第一个开始。如果不指明,默认是roundrobin |
更多信息:man 5 yum.conf |
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/26442672/viewspace-716582/,如需转载,请注明出处,否则将追究法律责任。