ITPub博客

首页 > Linux操作系统 > Linux操作系统 > Linux下yum的使用(转)

Linux下yum的使用(转)

原创 Linux操作系统 作者:webseven 时间:2012-02-16 14:38:14 0 删除 编辑

以光驱为源

为了避免从网络下载软件包可能发生的软件包不完整、下载速度慢、网络故障等问题,我们强烈建议您使用本地的 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
1921680. 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的配置一般有两种方式,一种是直接配置/etc目录下的yum.conf文件,另外一种是在/etc/yum.repos.d目录下增加.repo文件。

一、yum的配置文件
 
$ cat /etc/yum.conf

yum.conf配置文件

[main]

cachedir=/var/cache/yum

yum缓存的目录,该目录用于存储下载的RPM软件包和RPM数据库,例如:当你安装一个软件包时,在这个目录下对应的子目录( base/packages )中先下载这个软件包,然后再进行安装软件包,但是安装完后,它不会自动删除这个下载的软件包,所以占空间,但可以手动删除

keepcache=1

值可以是10,表示是否要缓存已安装成功的那些RPM包及头文件,默认值为1,表示缓存这些RPM包和头文件,作用:下一次安装相同的RPM包的时,yum就不用下载了,直接可以从缓存(/var/cache/yum…)安装些RPM

reposdir

设置.repo配置文件所存放的目录,默认是: /etc/yum.repos.d             /etc/yum/repos.d

assumeyes=0

值可以是10,表示是否安装RPM包时直接自动确认应答,而不用手动确认,默认值为0:表示要手动确认

alwaysprompt=1

值可以是10,表示是否安装RPM包时总是要手动确认,默认值为1:表示要手动确认

retries=2

网络连接发生错误后的重试次数,如果设为0,则会无限重试

debuglevel=2

除错级别:0-10

logfile=/var/log/yum.log

yum的日志文件

pkgpolicy=newest

包的策略:newestlast作用如果你设置了多个repository而同一软件在不同的repository中同时存在yum应该安装哪一个如果是newestyum会安装最新的那个版本。如果是last,则yum会将服务器id以字母表排序,并选择最后的那个服务器上的软件安装。一般都是选newest

distroverpkg=redhat-release

指定一个软件包yum会根据这个包判断你的发行版本默认是redhat-release例如centos-releaserpmforge-release等),也可以是安装的任何针对自己发行版的rpm

tolerant=1

也有10两个选项,表示yum是否容忍命令行发生与软件包有关的错误,比如你要安装:1.i386.rpm2.i386.rpm3.i386.rpm这三个包,而其中3.i386.rpm在此之前已经安装了,如果现在你将tolerant的值设为1,则yum不会出现错误信息。默认是0

exactarch=1

可选值有两个10,表示是否只升级和你安装软件包cpu体系一致的包,默认值为1表示如果你已经安装了一个i386的包那么就不会再安装相同的i686的包

obsoletes=1

该参数主要与升级有关

gpgcheck=1

是否进行gpg校验,默认是进行检验的

plugins=1

当要使用plugin(例如:python)时,plugins的值要设置成1

metadata_expire=1800

Metadata的过期时间,单位为秒

exclude=….

排除某些软件在升级名单之外,可以用通配符(例如:*与?),列表中各个项目要用空格隔开,这个对于安装了诸如美化包,中文补丁的朋友特别有用

二、*.repo文件详解
什么是repo文件?
repo文件是Fedora中yum源(软件仓库)的配置文件,通常一个repo文件定义了一个或者多个软件仓库的细节内容,例如我们将从哪里下载需要安装或者升级的软件包,repo文件中的设置内容将被yum读取和应用!

*.repo配置文件格式

[serverid]  

用于定义和区别repository服务器,必须唯一

name=repository server name

只是用来描述RPM存储服务器,但是name字段的等号右边支持像$releasever $basearch等这种变量

baseurl=url1://path/to/repository
        url2://path/to/repository
         ……………………………

支持的url协议有:httpftpfile(本地),同时等号右边也支持像$releasever $basearch等这种变量
注意:baseurl只能有一个,它的值url可以有多个

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

值有两个:roundrobinpriority,表示:当有多个url可供选择时,yum选择的次序,roundrobin是随机选择,如果连接失败则使用下一个,依次循环;priority则根据url的次序从第一个开始。如果不指明,默认是roundrobin

更多信息:man  5  yum.conf

 
有时需要自己手动导入gpgkey进行验证,特别是使用第三方软件库服务器时,必须要使用;当然你也可以把这个gpgkey下载到本地的/etc/pki/rpm-gpg/目录下,然后在相应的repo配置文件的相应repository服务器节中使用"gpgkey="字段来指定gpgkey存放位置,例如:
rpm --import     RPM-GPG-KEY.dag.txt
rpm --import     /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5
rpm --import     http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-5
 

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/26442672/viewspace-716582/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2012-01-30

  • 博文量
    20
  • 访问量
    118478