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