您的位置:首页 > 其它

[How to]基于本地镜像的yum镜像源搭建

2015-12-31 18:46 465 查看
1.简介

本文介绍如何在封闭环境(无外网)下安装离线安装本地镜像与基于本地镜像的yum镜像源。

2.环境版本交代:

OS:CentOS-6.7-x86_64-minimal

yum: yum-3.2.29-69.el6.centos.noarch

(不同版本的yum的命令区别较大,请结合实际版本使用)

3.目标

在局域网中的任何节点上使用自己搭建的本地yum本地镜像源安装jdk

离线环境下未完成本文步骤时候的安装现象为:

[root@node-1 rpm]# java
-bash: java: command not found
[root@node-1 rpm]# yum install jdk
已加载插件:fastestmirror
设置安装进程
Loading mirror speeds from cached hostfile
Could not retrieve mirrorlist http://mirrorlist.centos.org/?release=6&arch=x86_64&repo=os&infra=stock error was
14: PYCURL ERROR 6 - "Couldn't resolve host 'mirrorlist.centos.org'"
Could not retrieve mirrorlist http://mirrorlist.centos.org/?release=6&arch=x86_64&repo=extras&infra=stock error was
14: PYCURL ERROR 6 - "Couldn't resolve host 'mirrorlist.centos.org'"
Could not retrieve mirrorlist http://mirrorlist.centos.org/?release=6&arch=x86_64&repo=updates&infra=stock error was
14: PYCURL ERROR 6 - "Couldn't resolve host 'mirrorlist.centos.org'"


可以看到由于离线环境根本无法安装jdk

4.开始

在线下载必须的rpm安装包

在进入离线环境前你需要为离线环境下载必须的安装包httpd和createrepo。

a.下载httpd:

yum install --downloadonly --downloaddir=/opt/httpd_rpm httpd




b.下载createrepo:

yum install --downloadonly --downloaddir=/opt/createrepo_rpm createrepo




2.创建本地库文件

主要用于后续测试。包括一个普通文件和一个rpm文件。



3.进入离线状态,开始安装httpd和createrepo程序

本人测试的机器为mac上的虚拟机,所以将mac网络关闭以模拟离线环境。

a.安装httpd

进入httpd的存储目录执行:

[root@node-3 httpd_rpm]# rpm -ivh *




b.启动httpd服务:

[root@node-3 httpd_rpm]# service httpd start




c.安装createrepo

进入createrepo的存储目录执行:在安装过程中有一些冲突问题 ,直接使用--force参数去忽略。

[root@node-3 createrepo_rpm]# rpm -ivh * --force




4. 初始化yum的镜像库

a.进入库文件夹进行yum的镜像库初始化操作:

[root@node-3 opt]# cd test_repo/rpm/
[root@node-3 rpm]# ls
jdk-7u79-linux-x64.rpm
[root@node-3 rpm]# createrepo .
Spawning worker 0 with 1 pkgs
Workers Finished
Gathering worker results

Saving Primary metadata
Saving file lists metadata
Saving other metadata
Generating sqlite DBs
Sqlite DBs complete
[root@node-3 rpm]# ls
jdk-7u79-linux-x64.rpm  repodata


b.将镜像文件夹拷贝到httpd服务文件夹并设置权限:

[root@node-3 opt]# cp -r test_repo /var/www/html/
[root@node-3 opt]# ls /var/www/html/
test_repo
[root@node-3 opt]# chmod -R ugo+rX /var/www/html
[root@node-3 opt]#


5. http访问镜像库:

在浏览器中输入:http://<hostname>/test_repo

你将看到如下页面:





不能访问!?

a.检查防火墙设置:

vi /etc/sysconfig/iptables


加入80端口的访问权限:

-A INPUT -p tcp -m tcp --dport 80 -j ACCEPT

如下:

...........
-A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 80 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
...........


b.重启iptables

[root@node-3 html]# service iptables restart
iptables: Setting chains to policy ACCEPT: filter          [  OK  ]
iptables: Flushing firewall rules:                         [  OK  ]
iptables: Unloading modules:                               [  OK  ]
iptables: Applying firewall rules:                         [  OK  ]


6.使用本地yum镜像库安装jdk

a.在其他想要安装jdk的离线节点上编辑如下文件并放入文件夹中

vi /etc/yum.repos.d/myrepo.repo


[myrepo]
name=myrepo
baseurl=http://node-3/test_repo/rpm
enabled=1
gpgcheck=0


其中node-3即为前述步骤中我所安装的httpd所在的节点,读者可自行修改为自己的节点hostname(也可用ip)

叶子目录必须为createrepo所初始化过的含有repodata元数据目录的文件夹。

b.再次确认环境离线,进行安装

[root@node-1 rpm]# yum install jdk
已加载插件:fastestmirror
设置安装进程
Loading mirror speeds from cached hostfile
* base: mirrors.yun-idc.com
* extras: mirrors.yun-idc.com
* updates: mirrors.yun-idc.com
myrepo                                                   | 2.9 kB     00:00
Not using downloaded repomd.xml because it is older than what we have:
Current   : Thu Dec 31 00:12:39 2015
Downloaded: Wed Dec 30 06:38:58 2015
解决依赖关系
--> 执行事务检查
---> Package jdk.x86_64 2000:1.7.0_79-fcs will be 安装
--> 完成依赖关系计算

依赖关系解决

================================================================================
软件包       架构            版本                        仓库             大小
================================================================================
正在安装:
jdk          x86_64          2000:1.7.0_79-fcs           myrepo          132 M

事务概要
================================================================================
Install       1 Package(s)

总下载量:132 M
Installed size: 209 M
确定吗?[y/N]:y
下载软件包:
jdk-7u79-linux-x64.rpm                                   | 132 MB     00:02
运行 rpm_check_debug
执行事务测试
事务测试成功
执行事务
正在安装   : 2000:jdk-1.7.0_79-fcs.x86_64                                                                                                                                      1/1
Unpacking JAR files...
rt.jar...
jsse.jar...
charsets.jar...
tools.jar...
localedata.jar...
jfxrt.jar...
Verifying  : 2000:jdk-1.7.0_79-fcs.x86_64                                                                                                                                      1/1

已安装:
jdk.x86_64 2000:1.7.0_79-fcs

完毕!
[root@node-1 rpm]# java -version
java version "1.7.0_79"
Java(TM) SE Runtime Environment (build 1.7.0_79-b15)
Java HotSpot(TM) 64-Bit Server VM (build 24.79-b02, mixed mode)
[root@node-1 rpm]#


看到yum顺利找到了仓库 [myrepo]并安装成功!!

c.出现如下错误?

错误:Cannot find a valid baseurl for repo: base


因为是离线环境所以你可以值保留我们自己的源描述文件:

[root@node-4 yum.repos.d]# rm -rf C*
[root@node-4 yum.repos.d]# ll
总用量 4
-rw-r--r--. 1 root root 78 12月 31 22:11 myrepo.repo


以上。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: