ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 配置Yum本地源

配置Yum本地源

原创 Linux操作系统 作者:realkid4 时间:2012-06-17 13:05:28 0 删除 编辑

 

在使用Linux系列版本时,我们常常会有需要安装RPM库的情况。同Windows环境相同,rpm包是Linux很多版本的可执行程序版本。但是在我们使用时,经常会遇到rpm相互依赖的困境。我们安装一个RPM,可能需要连带安装很多依赖的rpm,需要我们一个个的进行寻找安装。

 

当我们需要的rpm包都在安装光盘介质上,一个个的寻找定位还可以。但是如果我们需要升级RPM或者手边恰好没有光盘,那么寻找的难度就很大了。这个时候,我们可以借助Yum工具。

 

1、  Yum简说

 

Yum是在目前Linux主流版本中配置的一个shell前端软件管理器。在使用yum进行指定包安装的时候,可以自动的进行依赖软件的定位、指定服务器的下载,实现一次性的将所有包安装完成。

 

Yum使用有很多好处,最大的好处莫过于简单化RPM软件包的安装、删除和更新,同时自动的解决了软件包依赖和下载包库(Repository)方便配置问题。

 

Yum的使用上,配置文件管理和使用是一个重点内容。具体来说,有两个主要配置文件需要关注,分别为Yum服务端配置文件和Yum源配置文件。

 

ü  Yum服务端配置文件/etc/yum.conf

 

在目前流行的Linux版本中,大都已经配置了Yum工具。配置文件/etc/yum.conf中,详细定义了yum的工作方式和参数。

 

 

[root@bspdev etc]# cat /etc/yum.conf

[main]  //主配置信息

cachedir=/var/cache/yum   //保存缓存和数据库文件的位置

keepcache=0

debuglevel=2              //调试信息输出等级

logfile=/var/log/yum.log  //日志位置

distroverpkg=redhat-release //yum使用的RPMdistribution版本;

tolerant=1           //默认为0,如果为1表示当安装多个包是,失败了继续安装其他;

exactarch=1          //精确匹配硬件平台,只有完全相同才更新;

obsoletes=1          //当使用升级模式时,一些包没有用了,可以删除(取值1

gpgcheck=0           //安装时是否检查RPM包的PGP签名;

plugins=1            //Yum插件是否可用

bugtracker_url=http://bugs.centos.org/yum5bug

 

# Note: yum-RHN-plugin doesn't honor this.

metadata_expire=1h

 

installonly_limit = 5

 

# PUT YOUR REPOS HERE OR IN separate files named file.repo

# in /etc/yum.repos.d  //定义可选的位置

[root@bspdev etc]#

 

 

ü  Yum源配置 /etc/yum.repos.d/*.repo

 

要定义好yum源库的信息,以配置文件的方式进行。

 

 

[root@bspdev etc]# cd /etc/yum.repos.d/

[root@bspdev yum.repos.d]# ls -l

total 8

drwxr-xr-x 2 root root 4096 Jun 17 05:47 bak  //笔者自己做的备份

-rw-r--r-- 1 root root   72 Jun 17 05:52 localyum.repo

[root@bspdev yum.repos.d]# cd bak

[root@bspdev bak]# ls -l

total 36

-rw-r--r-- 1 root root 1926 Feb 25 16:20 CentOS-Base.repo

-rw-r--r-- 1 root root  631 Feb 25 16:20 CentOS-Debuginfo.repo

-rw-r--r-- 1 root root  626 Feb 25 16:20 CentOS-Media.repo

-rw-r--r-- 1 root root 6118 Feb 25 16:20 CentOS-Vault.repo

[root@bspdev bak]# pwd

/etc/yum.repos.d/bak

[root@bspdev bak]# cat CentOS-Base.repo

# CentOS-Base.repo

#

# The mirror system uses the connecting IP address of the client and the

# update status of each mirror to pick mirrors that are updated to and

# geographically close to the client.  You should use this for CentOS updates

# unless you are manually picking other mirrors.

#

# If the mirrorlist= does not work for you, as a fall back you can try the

# remarked out baseurl= line instead.

#

#

 

[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/

gpgcheck=1

gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5

 

#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-5

 

(篇幅原因,省略部分……)

 [root@bspdev bak]#

 

 

目前,Yum支持的源地址种类很多,有本地、FTPInternet等。三种方式的差异仅仅在于客户端访问Yum的方式不同。本篇仅介绍本地Yum源的配置和使用。

 

2、配置本地Yum源库

 

目的是在本地目录上建立一个Yum源库,RPM包来自安装光盘。

 

使用Mount命令,将插入的光盘MountLinux的目录结构上。

 

 

 

[root@bspdev /]# mount /dev/cdrom /media //将光盘mount/media目录上

mount: block device /dev/cdrom is write-protected, mounting read-only

[root@bspdev /]# cd /media

[root@bspdev media]# ls –l //挂载CentOS版本;

total 484

dr-xr-xr-x 2 root root 432128 Mar  5 10:16 CentOS //CentOS RPM包位置

-r--r--r-- 1 root root     14 Mar  2 05:00 CentOS_BuildTag

-r--r--r-- 1 root root    212 Oct  1  2009 EULA

-r--r--r-- 1 root root  18009 Oct  1  2009 GPL

dr-xr-xr-x 4 root root   2048 Mar  5 10:12 images

(篇幅原因,省略部分)

-r--r--r-- 1 root root   7058 Mar  5 10:22 TRANS.TBL

[root@bspdev media]#

 

[root@bspdev CentOS]# pwd

/media/CentOS

 

 

安装repository工具包。

 

 

[root@bspdev CentOS]# pwd

/media/CentOS 

[root@bspdev CentOS]# 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 e8562897

Preparing...                ########################################### [100%]

   1:createrepo             ########################################### [100%]

 

 

rpm包拷贝的准备好的/yum/server中去。

 

 

[root@bspdev CentOS]# cd /

[root@bspdev /]# mkdir /yum/server -p

 

[root@bspdev media]# cd CentOS

[root@bspdev CentOS]# cp * /yum/server/

You have mail in /var/spool/mail/root

[root@bspdev CentOS]#

 

 

这样,我们将所有的rpm包保存在了/yum/server上。

 

最后,我们建立reposity的索引。

 

 

[root@bspdev CentOS]# createrepo /yum/server

2669/2669 - totem-devel-2.16.7-7.el5_6.1.i386.rpm                               

Saving Primary metadata

Saving file lists metadata

Saving other metadata

 

 

3、配置参数文件

 

修改服务端文件,设置行为。

 

 

[root@bspdev CentOS]# vi /etc/yum.conf

 

[main]

cachedir=/var/cache/yum

keepcache=0

debuglevel=2

logfile=/var/log/yum.log

distroverpkg=redhat-release

tolerant=1

exactarch=1

obsoletes=1

gpgcheck=0 //本地一般不需要设置该选项

plugins=1

bugtracker_url=http://bugs.centos.org/yum5bug

 

# Note: yum-RHN-plugin doesn't honor this.

metadata_expire=1h

 

installonly_limit = 5

 

# PUT YOUR REPOS HERE OR IN separate files named file.repo

# in /etc/yum.repos.d

~

 

 

在客户端,我们创建新的容器和配置文件。首先我们先将原有的信息备份保存。

 

 

--客户端

[root@bspdev CentOS]# cd /

[root@bspdev /]# mkdir /etc/yum.repos.d/bak

[root@bspdev /]# mv /etc/yum.repos.d/*.repo /etc/yum.repos.d/bak/

[root@bspdev /]# cd /etc/yum.repos.d/bak/

[root@bspdev bak]# ls -l

total 36

-rw-r--r-- 1 root root 1926 Feb 25 16:20 CentOS-Base.repo

-rw-r--r-- 1 root root  631 Feb 25 16:20 CentOS-Debuginfo.repo

-rw-r--r-- 1 root root  626 Feb 25 16:20 CentOS-Media.repo

-rw-r--r-- 1 root root 6118 Feb 25 16:20 CentOS-Vault.repo

[root@bspdev bak]# cd /

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

 

[localyum] //容器名

Name=localyum

baseurl=file://yum/server //目录

enable=1

gpgcheck=0

~

 

 

4、验证启动yum程序

 

最后,通过配置的方法,进行验证。

 

//清理缓存

[root@bspdev yum.repos.d]# yum clean all

Loaded plugins: fastestmirror, security

Cleaning up Everything

Cleaning up list of fastest mirrors

 

//列出可用的mirrors

[root@bspdev yum.repos.d]# yum list

Loaded plugins: fastestmirror, security

Determining fastest mirrors

localyum                                                 |  951 B     00:00    

localyum/primary                                         | 950 kB     00:00    

 

 

最后,可以使用yum安装程序。

 

[root@bspdev ~]# yum install elfutils-libelf-devel

Loaded plugins: fastestmirror, security

Loading mirror speeds from cached hostfile

Setting up Install Process

Resolving Dependencies

--> Running transaction check

---> Package elfutils-libelf-devel.i386 0:0.137-3.el5 set to be updated

--> Processing Dependency: elfutils-libelf-devel-static-i386 = 0.137-3.el5 for package: elfutils-libelf-devel

--> Running transaction check

---> Package elfutils-libelf-devel-static.i386 0:0.137-3.el5 set to be updated

--> Finished Dependency Resolution

 

Dependencies Resolved 

=========================================================

 Package                          Arch     Version           Repository    Size

========================================================

Installing:

 elfutils-libelf-devel            i386     0.137-3.el5       localyum      24 k

Installing for dependencies:

 elfutils-libelf-devel-static     i386     0.137-3.el5       localyum      66 k

 

Transaction Summary

==================================================

Install       2 Package(s)

Upgrade       0 Package(s)

 

Total download size: 90 k

Is this ok [y/N]: y

Downloading Packages:

-----------------------------------------------------------

Total                                            85 MB/s |  90 kB     00:00    

Running rpm_check_debug

Running Transaction Test

Finished Transaction Test

Transaction Test Succeeded

Running Transaction

  Installing     : elfutils-libelf-devel                                    1/2

  Installing     : elfutils-libelf-devel-static                             2/2

 

Installed:

  elfutils-libelf-devel.i386 0:0.137-3.el5                             

Dependency Installed:

  elfutils-libelf-devel-static.i386 0:0.137-3.el5                              

Complete!

 

 

5、结论

 

Yum工具是可以帮助我们解决很多依赖困扰的有用软件。无论是个人开发还是团队开发,都可以发挥重要的作用。

 

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

请登录后发表评论 登录
全部评论
求道~

注册时间:2010-11-30

  • 博文量
    545
  • 访问量
    7552650