在公司内部,假设有一批CentOS 服务器需要升级或者服务器软件升级,每一台机都使用yum update命令从外网下载升级包的话,既费时间,也占流量,实在不划算。而且,有时候会遇到物理机不方便联网的情况,那就加无奈。所以,在局域网内搭建yum服务器,应该是每个Linux从业者必须懂的基本功。在此分享一下经验。其实操作很简单,注意一些细节就行了。
提供Yum源的服务器,以下简称为Yum服务器:
CentOS 6.3,主机名为antrolA,IP为192.168.2.161
需要升级的服务器,以下简称为客户端:
CentOS 6.3,主机名为antrolB,IP为192.168.2.124
一、
到官网查找并下载最新的CentOS 6.5镜像。
如果Yum服务器是物理机,需将DVD2镜像刻录到DVD光碟,然后将放进Yum服务器光驱;
如果是虚拟机,则在虚拟机光驱设置中,选择物理机上存放的DVD镜像即可。
Yum服务器加载光驱
[root@antrol ~]# mount /dev/cdrom? /media/cdrom
mount: block device /dev/sr0 is write-protected, mounting read-only
二、
为使局域网内其他CentOS服务器可以访问到Yum 服务器上的资源,需要在Yum服务器上架设http服务器或者ftp服务器。鉴于http服务器设置简易、流行,本文使用http服务器。
?[root@antrol ~]#yum install httpd
启动httpd服务,并设置为开机时启动
[root@antrol ~]# service httpd start
[root@antrol ~]# chkconfig httpd on
三、
在Appache根目录下建立文件夹yum及其子文件夹CentOS,将光盘内CentOS文件夹下的所有内容拷贝到/var/www/html/yum/CentOS目录下(光碟内其他的数据不需要)。
[root@antrol ~]# mkdir -p /var/www/html/yum
[root@antrol ~]# mkdir -p /var/www/html/yum/CentOS
[root@antrol ~]# cp -prf /media/CentOS/* /var/www/html/yum/CentOS/
可以弹出光碟了
[root@antrol~]# umount /dev/cdrom
[root@antrol~]# eject
四、Yum服务器安装createrepo并创建仓库
createrepo是Linux下的创建仓库的软件包,这个软件包在系统镜像CentOS-5.8-i386-bin-DVD-1of2里是有的。这里已经拷贝到/var/www/html/yum/CentOS目录下了。
[root@antrol ~]# rpm -ivh /var/www/html/yum/CentOS /createrepo-0.4.11-3.el5.noarch.rpm
Preparing… ? ? ? ? ? ? ? ?########################################### [100%]
? ?1:createrepo ? ? ? ? ? ? ########################################### [100%]
warning: /var/www/html/yum/CentOS/createrepo-0.4.11-3.el5.noarch.rpm: Header V3 DSA signature: NOKEY, key ID e8562897)
安装完成之后,在/usr/bin/目录下会有一个createrepo命令。使用createrepo 生成XML metadata,在/var/www/html/yum/CentOS目录下生成repodata 文件夹(具体有何作用,还没弄明白)
[root@antrol ~]# createrepo /var/www/html/yum/CentOS/
2669/2669 – compat-gcc-34-g77-3.4.6-4.1.i386.rpm
Saving Primary metadata
Saving file lists metadata
Saving other metadata
五、
客户端修改Centos-Base.repo,建议先备份一个副本,以后若要从外网更新的话,可以再使用。
[root@zoro ~]# cp /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.bak
[root@zoro ~]# vi /etc/yum.repos.d/CentOS-Base.repo
[base]
name=CentOS-$releasever – Base
baseurl=http://192.168.2.161/yum/CentOS
enabled=1
gpgcheck=0
##############Centos-Base.repo内容修改后,以上#######################
yum install --downloadonly --downloaddir=/var/www/html/yumrepo/extras golang 下载包,并且下载依赖
使用--downloadonly需要安装yum-downloadonly 扩展插件用yum安装即可
如果缺少依赖可以用yum provides */libmemcachedutil.so.2反查询所需的包
本文转自 转身撞墙角 51CTO博客,原文链接:http://blog.51cto.com/chentianwang/1743617