[How to]基于本地镜像的yum镜像源搭建
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- rpm]# java -bash: java: command not found [root@node- 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 : PYCURL ERROR - "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 : PYCURL ERROR - "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 : PYCURL ERROR - "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- httpd_rpm]# rpm -ivh *

b.启动httpd服务:
[root@node- httpd_rpm]# service httpd start

c.安装createrepo
进入createrepo的存储目录执行:在安装过程中有一些冲突问题 ,直接使用--force参数去忽略。
[root@node- createrepo_rpm]# rpm -ivh * --force

4. 初始化yum的镜像库
a.进入库文件夹进行yum的镜像库初始化操作:
[root@node- opt]# cd test_repo/rpm/ [root@node- rpm]# ls jdk-7u79-linux-x64.rpm [root@node- rpm]# createrepo . Spawning worker with pkgs Workers Finished Gathering worker results Saving Primary metadata Saving file lists metadata Saving other metadata Generating sqlite DBs Sqlite DBs complete [root@node- rpm]# ls jdk-7u79-linux-x64.rpm repodata
b.将镜像文件夹拷贝到httpd服务文件夹并设置权限:
[root@node- opt]# cp -r test_repo /var/www/html/ [root@node- opt]# ls /var/www/html/ test_repo [root@node- opt]# chmod -R ugo+rX /var/www/html [root@node- 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 -j ACCEPT -A INPUT -p tcp -m tcp --dport -j ACCEPT -A INPUT -j REJECT --reject-with icmp-host-prohibited ...........
b.重启iptables
[root@node- 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= gpgcheck=
其中node-3即为前述步骤中我所安装的httpd所在的节点,读者可自行修改为自己的节点hostname(也可用ip)
叶子目录必须为createrepo所初始化过的含有repodata元数据目录的文件夹。
b.再次确认环境离线,进行安装
[root@node- 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 | :
Not using downloaded repomd.xml because it is older than what we have:
Current : Thu Dec ::
Downloaded: Wed Dec ::
解决依赖关系
--> 执行事务检查
---> Package jdk.x86_64 :1.7.0_79-fcs will be 安装
--> 完成依赖关系计算
依赖关系解决
================================================================================
软件包 架构 版本 仓库 大小
================================================================================
正在安装:
jdk x86_64 : M
事务概要
================================================================================
Install Package(s)
总下载量: M
Installed size: M
确定吗?[y/N]:y
下载软件包:
jdk-7u79-linux-x64.rpm | MB :
运行 rpm_check_debug
执行事务测试
事务测试成功
执行事务
正在安装 : :jdk-/
Unpacking JAR files...
rt.jar...
jsse.jar...
charsets.jar...
tools.jar...
localedata.jar...
jfxrt.jar...
Verifying : :jdk-/
已安装:
jdk.x86_64 :1.7.0_79-fcs
完毕!
[root@node- rpm]# java -version
java version "1.7.0_79"
Java(TM) SE Runtime Environment (build 1.7.0_79-b15)
Java HotSpot(TM) -Bit Server VM (build 24.79-b02, mixed mode)
[root@node- rpm]#
看到yum顺利找到了仓库 [myrepo]并安装成功!!
c.出现如下错误?
错误:Cannot find a valid baseurl for repo: base
因为是离线环境所以你可以值保留我们自己的源描述文件:
[root@node- yum.repos.d]# rm -rf C* [root@node- yum.repos.d]# ll 总用量 -rw-r--r--. root root 12月 : myrepo.repo
以上。
[How to]基于本地镜像的yum镜像源搭建的更多相关文章
- yum仓库源搭建
本地yum源搭建 cd源 mount /dev/sr0 /mnt vim /etc/yum.repos.d/base.repo [centos-base]name=centos7#baseurl=f ...
- docker基于本地模版导入创建镜像
/* 因为直接去网站拿会下载的慢,所以直接到网站里,对着此包--〉右键--〉复制链接地址 网站地址:https://openvz.org/Download/template/precreated */ ...
- Linux系统下本地yum镜像源环境部署-完整记录
之前介绍了Linux环境下本地yum源配置方法,不过这个是最简单最基础的配置,在yum安装的时候可能有些软件包不够齐全,下面说下完整yun镜像源系统环境部署记录(yum源更新脚本下载地址:https: ...
- Linux系统下yum镜像源环境部署记录
之前介绍了Linux环境下本地yum源配置方法,不过这个是最简单最基础的配置,在yum安装的时候可能有些软件包不够齐全,下面说下完整yun镜像源系统环境部署记录(yum源更新脚本下载地址:https: ...
- 基于“基于dockerhub的jetty镜像的ossfs镜像”部署war包,遇到的文件夹读写权限被限制的问题解决方案
前提: “基于dockerhub的jetty镜像的ossfs镜像” 已经搭建好了. 部署准备: 1.本地打包:war包-->idea工具 mvn 打包. 2.本地sh脚本:compile_vps ...
- Docker笔记--镜像&基于GO项目创建Docker镜像
Docker笔记--镜像&基于GO项目创建Docker镜像 核心概念 Doker镜像--包含一个基本的操作系统运行环境和应用程序,镜像是创建Docker容器的基础. Docker容器--如果把 ...
- kubeadm init 时从本地私有仓库下载镜像
#kubeadm init 时从本地私有仓库下载镜像 images=( gcr.io/google_containers/kube-proxy-amd64:v1.6.1 gcr.io/google_c ...
- howto:在构建基于debian的docker基础镜像时,更换国内包源
debian经常被用作构建应用镜像的基础镜像,如微软在构建linux下的dotnetcore基础镜像时,提供了基于debian 8(jessie)和debian 9(stretch)的镜像. 由于这些 ...
- Docker搭建disconf环境,三部曲之二:本地快速构建disconf镜像
Docker下的disconf实战全文链接 <Docker搭建disconf环境,三部曲之一:极速搭建disconf>: <Docker搭建disconf环境,三部曲之二:本地快速构 ...
随机推荐
- 用select模拟一个socket server
1, 必须在非阻塞模式下,才能实现IO的多路复用,否则一个卡住就都卡住了.(单线程下的多路复用) 先检测自己,现在没有客户端连进来,所以会卡住. # 用select去模拟socket,实现单线程下的多 ...
- 【题解】Uoj79一般图最大匹配
带花树裸题,感觉带花树强强……不会的勿看此文,解释的可能不对,只是给自己看的!!!如题,带花树即为求一般图最大匹配算法(匈牙利与dinic为二分图最大匹配).推荐论文:2015年<浅谈图的匹配算 ...
- 2018牛客多校第五场 E.room
题意: 一共有n个宿舍,每个宿舍有4个人.给出第一年的人员分布和第二年的人员分布,问至少有多少人需要移动. 题解: 对于第一年的每个宿舍,向今年的每种组合连边.流量为1,费用为(4 - 组合中已在该宿 ...
- BZOJ1604 & 洛谷2906:[USACO2008 OPEN]Cow Neighborhoods 奶牛的邻居——题解
http://www.lydsy.com/JudgeOnline/problem.php?id=1604 https://www.luogu.org/problemnew/show/P2906#sub ...
- 洛谷 P3332 [ZJOI2013]K大数查询 解题报告
P3332 [ZJOI2013]K大数查询 题目描述 有\(N\)个位置,\(M\)个操作.操作有两种,每次操作如果是\(\tt{1\ a\ b\ c}\)的形式表示在第\(a\)个位置到第\(b\) ...
- Java实验报告(实验四)
北京电子科技学院(BESTI) 实 验 报 告 课程:Java 班级:1352班 姓名:王国伊 学号:20135207 成绩: 指导 ...
- SRM12 T2夏令营(分治优化DP+主席树 (已更新NKlogN)/ 线段树优化DP)
先写出朴素的DP方程f[i][j]=f[k][j-1]+h[k+1][i] {k<i}(h表示[k+1,j]有几个不同的数) 显然时间空间复杂度都无法承受 仔细想想可以发现对于一个点 i ...
- php 获取客户端IP地址经纬度所在城市
1. [代码]获取客户端IP地址经纬度所在城市 ? 1 2 3 4 5 6 7 8 9 10 11 12 13 <?php $getIp=$_SERVER["REMOTE_ADDR ...
- 工作中常用的Linux命令(不断更新中)
最近工作中用到linux命令,简单总结如下: 1. pwd 查看当前所在的文件路径 2. cd 切换目录 cd .. 切换到上一级目录 3. ls 列出当前文件路径下的所有文件和文件夹 4. ll 是 ...
- Java IO------------------BIO(同步阻塞)、NIO1.0(多路复用)、NIO2.0(AIO,非阻塞)
1. BIO JDK5之前, JDK的IO模式只有BIO(同步阻塞)问题: 因为阻塞的存在, 需对每个请求开启一个线程. 过多的线程切换影响操作系统性能解决: 使用线程池, 处理不过来的放入队列, 再 ...