本地Yum源库配置.docx
《本地Yum源库配置.docx》由会员分享,可在线阅读,更多相关《本地Yum源库配置.docx(9页珍藏版)》请在冰豆网上搜索。
本地Yum源库配置
需要考核的练习:
请参考以下文档,实现配置本地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@bspdevetc]#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-plugindoesn'thonorthis.
metadata_expire=1h
installonly_limit=5
#PUTYOURREPOSHEREORINseparatefilesnamedfile.repo
#in/etc/yum.repos.d//定义可选的位置
[root@bspdevetc]#
✓ Yum源配置/etc/yum.repos.d/*.repo
要定义好yum源库的信息,以配置文件的方式进行。
[root@bspdevetc]#cd/etc/yum.repos.d/
[root@bspdevyum.repos.d]#ls-l
total8
drwxr-xr-x2rootroot4096Jun1705:
47bak//笔者自己做的备份
-rw-r--r--1rootroot72Jun1705:
52localyum.repo
[root@bspdevyum.repos.d]#cdbak
[root@bspdevbak]#ls-l
total36
-rw-r--r--1rootroot1926Feb2516:
20CentOS-Base.repo
-rw-r--r--1rootroot631Feb2516:
20CentOS-Debuginfo.repo
-rw-r--r--1rootroot626Feb2516:
20CentOS-Media.repo
-rw-r--r--1rootroot6118Feb2516:
20CentOS-Vault.repo
[root@bspdevbak]#pwd
/etc/yum.repos.d/bak
[root@bspdevbak]#catCentOS-Base.repo
#CentOS-Base.repo
#
#ThemirrorsystemusestheconnectingIPaddressoftheclientandthe
#updatestatusofeachmirrortopickmirrorsthatareupdatedtoand
#geographicallyclosetotheclient.YoushouldusethisforCentOSupdates
#unlessyouaremanuallypickingothermirrors.
#
#Ifthemirrorlist=doesnotworkforyou,asafallbackyoucantrythe
#remarkedoutbaseurl=lineinstead.
#
#
[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
#releasedupdates
[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@bspdevbak]#
目前,Yum支持的源地址种类很多,有本地、FTP和Internet等。
三种方式的差异仅仅在于客户端访问Yum的方式不同。
本篇仅介绍本地Yum源的配置和使用。
2、配置本地Yum源库
目的是在本地目录上建立一个Yum源库,RPM包来自安装光盘。
使用Mount命令,将插入的光盘Mount到Linux的目录结构上。
[root@bspdev/]#mount/dev/cdrom/media//将光盘mount到/media目录上
mount:
blockdevice/dev/cdromiswrite-protected,mountingread-only
[root@bspdev/]#cd/media
[root@bspdevmedia]#ls–l//挂载CentOS版本;
total484
dr-xr-xr-x2rootroot432128Mar510:
16CentOS//CentOSRPM包位置
-r--r--r--1rootroot14Mar205:
00CentOS_BuildTag
-r--r--r--1rootroot212Oct12009EULA
-r--r--r--1rootroot18009Oct12009GPL
dr-xr-xr-x4rootroot2048Mar510:
12images
(篇幅原因,省略部分)
-r--r--r--1rootroot7058Mar510:
22TRANS.TBL
[root@bspdevmedia]#
[root@bspdevCentOS]#pwd
/media/CentOS
安装repository工具包。
[root@bspdevCentOS]#pwd
/media/CentOS
[root@bspdevCentOS]#rpm-ivhcreaterepo-0.4.11-3.el5.noarch.rpm
warning:
createrepo-0.4.11-3.el5.noarch.rpm:
HeaderV3DSAsignature:
NOKEY,keyIDe8562897
Preparing...###########################################[100%]
1:
createrepo###########################################[100%]
将rpm包拷贝的准备好的/yum/server中去。
[root@bspdevCentOS]#cd/
[root@bspdev/]#mkdir/yum/server-p
[root@bspdevmedia]#cdCentOS
[root@bspdevCentOS]#cp*/yum/server/
Youhavemailin/var/spool/mail/root
[root@bspdevCentOS]#
这样,我们将所有的rpm包保存在了/yum/server上。
最后,我们建立reposity的索引。
[root@bspdevCentOS]#createrepo/yum/server
2669/2669-totem-devel-2.16.7-7.el5_6.1.i386.rpm
SavingPrimarymetadata
Savingfilelistsmetadata
Savingothermetadata
3、配置参数文件
修改服务端文件,设置行为。
[root@bspdevCentOS]#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-plugindoesn'thonorthis.
metadata_expire=1h
installonly_limit=5
#PUTYOURREPOSHEREORINseparatefilesnamedfile.repo
#in/etc/yum.repos.d
~
在客户端,我们创建新的容器和配置文件。
首先我们先将原有的信息备份保存。
--客户端
[root@bspdevCentOS]#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@bspdevbak]#ls-l
total36
-rw-r--r--1rootroot1926Feb2516:
20CentOS-Base.repo
-rw-r--r--1rootroot631Feb2516:
20CentOS-Debuginfo.repo
-rw-r--r--1rootroot626Feb2516:
20CentOS-Media.repo
-rw-r--r--1rootroot6118Feb2516:
20CentOS-Vault.repo
[root@bspdevbak]#cd/
[root@bspdev/]#vim/etc/yum.repos.d/localyum.repo
[localyum]//容器名
Name=localyum
baseurl=file:
//yum/server//目录
enable=1
gpgcheck=0
~
4、验证启动yum程序
最后,通过配置的方法,进行验证。
//清理缓存
[root@bspdevyum.repos.d]#yumcleanall
Loadedplugins:
fastestmirror,security
CleaningupEverything
Cleaninguplistoffastestmirrors
//列出可用的mirrors
[root@bspdevyum.repos.d]#yumlist
Loadedplugins:
fastestmirror,security
Determiningfastestmirrors
localyum|951B00:
00
localyum/primary|950kB00:
00
最后,可以使用yum安装程序。
[root@bspdev~]#yuminstallelfutils-libelf-devel
Loadedplugins:
fastestmirror,security
Loadingmirrorspeedsfromcachedhostfile
SettingupInstallProcess
ResolvingDependencies
-->Runningtransactioncheck
--->Packageelfutils-libelf-devel.i3860:
0.137-3.el5settobeupdated
-->ProcessingDependency:
elfutils-libelf-devel-static-i386=0.137-3.el5forpackage:
elfutils-libelf-devel
-->Runningtransactioncheck
--->Packageelfutils-libelf-devel-static.i3860:
0.137-3.el5settobeupdated
-->FinishedDependencyResolution
DependenciesResolved
=========================================================
PackageArchVersionRepositorySize
========================================================
Installing:
elfutils-libelf-develi3860.137-3.el5localyum24k
Installingfordependencies:
elfutils-libelf-devel-statici3860.137-3.el5localyum66k
TransactionSummary
==================================================
Install2Package(s)
Upgrade0Package(s)
Totaldownloadsize:
90k
Isthisok[y/N]:
y
DownloadingPackages:
-----------------------------------------------------------
Total85MB/s|90kB00:
00
Runningrpm_check_debug
RunningTransactionTest
FinishedTransactionTest
TransactionTestSucceeded
RunningTransaction
Installing:
elfutils-libelf-devel1/2
Installing:
elfutils-libelf-devel-static2/2
Installed:
elfutils-libelf-devel.i3860:
0.137-3.el5
DependencyInstalled:
elfutils-libelf-devel-static.i3860:
0.137-3.el5
Complete!
5、结论
Yum工具是可以帮助我们解决很多依赖困扰的有用软件。
无论是个人开发还是团队开发,都可以发挥重要的作用。