centos搭建本地库

--2013年8月23日11:00:26

环境:centos6.3(64bit)

--场景

默认情况下在用yum install 安装软件会从配置库中下载依赖包

默认依赖库:来自网络

在本地搭建依赖库可以节约带宽,充分发挥本地或局域网的优势

--核心思路

->安装createrepo把本地的rpm包管理为本地库

->安装httpd可以通过url访问本地库

->修改本地库配置使用本地库

--操作实例:

服务器计算机名:cos1

需要在cos1上安装:

1、安装httpd服务,作用:用browser查看本地库

--安装httpd

yum install httpd

--关闭防火墙

service iptables status

service iptables stop

--浏览器查看(需启用dns解析到cos1)

http://cos1

2、安装createrepo

--Createrepo用于创建本地源。

sudo yum install yum-utils createrepo

3、搭建本地源(方式1)

--下载CDH4 "1-click Install"包:

wget http://archive.cloudera.com/cdh4/one-click-install/redhat/6/x86_64/cloudera-cdh-4-0.x86_64.rpm

--安装:

sudo yum --nogpgcheck localinstall cloudera-cdh-4-0.x86_64.rpm

安装后,在 /etc/yum.repos.d/ 下多一个cloudera-chd4.repo

--将远程源的RPM包同步到本地的httpd服务目录

cd /var/www/html/

reposync -r cloudera-cdh4

--创建源(注意,createrepo后面有个点)

cd /var/www/html/cloudera-cdh4

--生成或刷新:RPMS,和一个放依赖关系等信息的文件夹repodata。

createrepo .

至此,CDH4本地源搭建完成。

4、本地rpm包搭建本地库

--原因:使用上步骤3的方法容易受网络限制,假设本地有rpm包

--用CentOS 的DVD搭建本地源CentOS-6.4-x86_64-bin-DVD1.iso,CentOS-6.4-x86_64-bin-DVD2.iso

--光盘放入光驱,挂载光盘:

sudo mkdir –p /media/cdrom/

sudo mount /dev/cdrom /media/cdrom/

如果在本地有安装盘镜像,也通过 loop 方式挂载到相应目录:

sudo mkdir –p /media/cdrom/

sudo mount -o loop CentOS-6.4-x86_64-bin-DVD1.iso /media/cdrom

把Packages下的RPM包复制到httpd服务的目录下的指定位置

cp -r /media/cdrom/Packages/* /var/www/html/test/RPMS

创建源

cd /var/www/html/test

createrepo .

5、使用资源库

进入etc/yum.repos.d/目录,vi test.repo,输入如下内容,将配置一个新源

[test]

name=Cloudera's Distribution for Hadoop, Version 4

baseurl=http://172.16.1.134/test

gpgkey = http://archive.cloudera.com/cdh4/redhat/6/x86_64/cdh/RPM-GPG-KEY-cloudera

gpgcheck = 0

--刷新资源库,使生效

sodu yum makecache

--详细解释

本地源的使用

为了让yum不去联外网下载RPM包,屏蔽CentOS-Base.repo、CentOS-Vault.repo 、CentOS-Debuginfo.repo

sudo mv Centos-Base.repo Centos-Base.repo-bak

sudo mv CentOS-Debuginfo.repo CentOS-Debuginfo.repo-bak

sudo mv CentOS-Vault.repo CentOS-Vault.repo-bak

修改cloudera-cdh4.repo

将cloudera-cdh4.repo中的baseurl修改指向本地局域网的服务器。

将baseurl=http://archive.cloudera.com/cdh4/redhat/6/x86_64/cdh/4/ 改为:

baseurl=http://172.16.2.52/cloudera-cdh4/

baseurl的地址是服务器地址+放置RPM包的目录名,结构如下图:里面有一个放RPM包的文件夹RPMS,和一个放依赖关系等信息的文件夹repodata。

6、yum下载依赖包

有时候会发现本地库中会缺少某些依赖包,这时候需要在本地库中按照步骤4上传依赖包

--安装yum-downloadonly插件

sudo yum install yum-downloadonly

使用yum-downloadonly

sudo yum install --downloadonly --downloaddir=<diretory> <package name>

--downloadonly 指明只下载,不安装;

--downloaddir 指定存放包及其依赖包的目录。

例子:将hadoop的包及其依赖的包下载到当前目录。

sudo yum install --downloadonly --downloaddir=./ hadoop

6、wiki

主要的操作已经完成,几个经验记录:

上传资源库到一个目录后,例如上传几个rpm包到/var/www/html/test/RPM/目录下

这时候资源库还不能用,必须在当前目录下执行:createrepo . 点号表示当前目录刷新资源库

附录:createrepo命令:

man createrepo