1、背景

   最近遇到几个项目都是不能连接外网的,很是郁闷,公司的软件又需要通过yum安装一些依赖包。没有办法,只能在客户的服务器手动搭建一个yum源解决一下问题。


2、实施环境

操作系统:CentOS6.4 64位

vpn到客户内网,有跳转机。

客户服务器全部最小化安装(you know,fuck!)

虚拟机VMWare10


3、配置步骤


3.1 虚拟机上下载对应的包


先配置一下,让rpm都能缓冲在本地。

vim /etc/yum.conf
cachedir=/var/cache/yum/$basearch/$releasever
keepcache=0

cachedir是yum安装时缓冲的包的位置,要到这里去找rpm文件。

keepcache=0 表示不保留yum安装的包,把这里改为1,因为我们需要把这些包搞走。


首先需要yum安装一下这个:

yum -y install createrepo

然后到/var/cache/yum/x86_64/6/base/packages(依据你的系统和yum源的不同找对应的目录。)找如下文件,记住名字:

Total download size: 1.3 M
Downloading Packages:
(1/5): createrepo-0.9.9-18.el6.noarch.rpm           |  94 kB     00:00    
(2/5): deltarpm-3.5-0.5.20090913git.el6.x86_64.rpm  |  71 kB     00:00    
(3/5): libxml2-2.7.6-14.el6.x86_64.rpm              | 799 kB     00:00    
(4/5): libxml2-python-2.7.6-14.el6.x86_64.rpm       | 321 kB     00:00    
(5/5): python-deltarpm-3.5-0.5.20090913git.el6.x86_ |  27 kB     00:00    
---------------------------------------------------------------------------
Total                                      1.5 MB/s | 1.3 MB     00:00


在虚拟机yum安装需要的软件,我是这么安装的:

yum -y groupinstall "Development Tools"
yum -y install vim lrzsz mysql-server php php-fpm

把所有的rpm文件上传到服务器的一个目录中去,我上传到了/mnt目录中


3.2服务器安装、配置

手动安装如下rpm包(rpm -ivh )


createrepo-0.9.9-18.el6.noarch.rpm         
deltarpm-3.5-0.5.20090913git.el6.x86_64.rpm
libxml2-2.7.6-14.el6.x86_64.rpm            
libxml2-python-2.7.6-14.el6.x86_64.rpm     
python-deltarpm-3.5-0.5.20090913git.el6.x86_64.rpm
zlib-devel-1.2.3-29.el6.x86_64.rpm


安装完成后就可以使用createrepo命令了。

createrepo  -d /mnt #生成yum使用的sqlite数据库


然后就会在/mnt下生成repodata目录,这个目录中就存放着yum的各种列表和依赖关系图谱


3.3使用本地yum源

cd /etc/yum.repos.d/
mv CentOS-Base.repo CentOS-Base.repo.bak


编辑CentOS-Media.repo

[c6-media]
name=CentOS-$releasever - Media
baseurl=file:///mnt/
        file:///media/cdrom/
        file:///media/cdrecorder/
gpgcheck=0
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6


解释:

[....]    代表这个库的名字,必须是唯一的,不可以重复。
name=    是这个库的说明,没有太大的实际意义,只是一个字段说明。
baseurl= 说明采取什么方式传输,具体路径在哪里,可以使用的方式有,file://,ftp://,http://等
enabled=1 说明启用这个更新库,0表示不启用。
gpgcheck=1 表示使用gpg文件来检查软件包的签名
gpgkey=   表示gpg文件所存放的位置,此处也可以有http方式的位置。


4、createrepo  -d /mnt重新生成一下。


5、安装
yum -y install .......


6、添加新的包

把新的rpm文件上传到服务器的/mnt目录下,然后执行createrepo  -d /mnt,这样就可以用过yum进行安装了。


(完)