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进行安装了。
(完)