[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
离线环境下未完成本文步骤时候的安装现象为:
可以看到由于离线环境根本无法安装jdk
4.开始
在线下载必须的rpm安装包
在进入离线环境前你需要为离线环境下载必须的安装包httpd和createrepo。
a.下载httpd:
b.下载createrepo:
2.创建本地库文件
主要用于后续测试。包括一个普通文件和一个rpm文件。
3.进入离线状态,开始安装httpd和createrepo程序
本人测试的机器为mac上的虚拟机,所以将mac网络关闭以模拟离线环境。
a.安装httpd
进入httpd的存储目录执行:
b.启动httpd服务:
c.安装createrepo
进入createrepo的存储目录执行:在安装过程中有一些冲突问题 ,直接使用--force参数去忽略。
4. 初始化yum的镜像库
a.进入库文件夹进行yum的镜像库初始化操作:
b.将镜像文件夹拷贝到httpd服务文件夹并设置权限:
5. http访问镜像库:
在浏览器中输入:http://<hostname>/test_repo
你将看到如下页面:
不能访问!?
a.检查防火墙设置:
加入80端口的访问权限:
-A INPUT -p tcp -m tcp --dport 80 -j ACCEPT
如下:
b.重启iptables
6.使用本地yum镜像库安装jdk
a.在其他想要安装jdk的离线节点上编辑如下文件并放入文件夹中
其中node-3即为前述步骤中我所安装的httpd所在的节点,读者可自行修改为自己的节点hostname(也可用ip)
叶子目录必须为createrepo所初始化过的含有repodata元数据目录的文件夹。
b.再次确认环境离线,进行安装
看到yum顺利找到了仓库 [myrepo]并安装成功!!
c.出现如下错误?
因为是离线环境所以你可以值保留我们自己的源描述文件:
以上。
本文介绍如何在封闭环境(无外网)下安装离线安装本地镜像与基于本地镜像的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
以上。
相关文章推荐
- 年底许愿
- iOS 自动布局相关
- c#,任务失败,因为未找到“resgen.exe”
- Ext.js问题重现整理(3)(reference)(实例化后才能引用)
- Linux常用命令
- 职责链模式(chain of responsibility)
- 再回首DLL
- 职责链模式(chain of responsibility)
- 1230递归下降语法分析
- springMVC @Value 注解取不到值
- Android代码风格
- 【iOS】去掉Tabbar顶部线条
- 【PHP】PHP转换图片为ico格式源码
- 用stuff 写sql 函数,查询拼装出某列数据中的所有数字。
- STL中vector的capacity、size、reserve、resize
- BI
- 邻接矩阵存储结构,深度,广度遍历。
- 【机房收费系统】——工厂
- servlet生命周期以及工作原理
- 支付宝集成获取私钥与公钥