视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
本地Yum源库配置
2025-09-29 00:06:45 责编:小OO
文档
需要考核的练习:

请参考以下文档,实现配置本地Yum源库,适用本地目录上建立一个Yum源库,RPM包来自安装光盘。

在使用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使用的RPM包distribution版本;

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支持的源地址种类很多,有本地、FTP和Internet等。三种方式的差异仅仅在于客户端访问Yum的方式不同。本篇仅介绍本地Yum源的配置和使用。

2、配置本地Yum源库

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

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

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

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工具是可以帮助我们解决很多依赖困扰的有用软件。无论是个人开发还是团队开发,都可以发挥重要的作用。下载本文

显示全文
专题