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镜像源搭建的更多相关文章

  1. yum仓库源搭建

    本地yum源搭建 cd源 mount /dev/sr0 /mnt vim  /etc/yum.repos.d/base.repo [centos-base]name=centos7#baseurl=f ...

  2. docker基于本地模版导入创建镜像

    /* 因为直接去网站拿会下载的慢,所以直接到网站里,对着此包--〉右键--〉复制链接地址 网站地址:https://openvz.org/Download/template/precreated */ ...

  3. Linux系统下本地yum镜像源环境部署-完整记录

    之前介绍了Linux环境下本地yum源配置方法,不过这个是最简单最基础的配置,在yum安装的时候可能有些软件包不够齐全,下面说下完整yun镜像源系统环境部署记录(yum源更新脚本下载地址:https: ...

  4. Linux系统下yum镜像源环境部署记录

    之前介绍了Linux环境下本地yum源配置方法,不过这个是最简单最基础的配置,在yum安装的时候可能有些软件包不够齐全,下面说下完整yun镜像源系统环境部署记录(yum源更新脚本下载地址:https: ...

  5. 基于“基于dockerhub的jetty镜像的ossfs镜像”部署war包,遇到的文件夹读写权限被限制的问题解决方案

    前提: “基于dockerhub的jetty镜像的ossfs镜像” 已经搭建好了. 部署准备: 1.本地打包:war包-->idea工具 mvn 打包. 2.本地sh脚本:compile_vps ...

  6. Docker笔记--镜像&基于GO项目创建Docker镜像

    Docker笔记--镜像&基于GO项目创建Docker镜像 核心概念 Doker镜像--包含一个基本的操作系统运行环境和应用程序,镜像是创建Docker容器的基础. Docker容器--如果把 ...

  7. kubeadm init 时从本地私有仓库下载镜像

    #kubeadm init 时从本地私有仓库下载镜像 images=( gcr.io/google_containers/kube-proxy-amd64:v1.6.1 gcr.io/google_c ...

  8. howto:在构建基于debian的docker基础镜像时,更换国内包源

    debian经常被用作构建应用镜像的基础镜像,如微软在构建linux下的dotnetcore基础镜像时,提供了基于debian 8(jessie)和debian 9(stretch)的镜像. 由于这些 ...

  9. Docker搭建disconf环境,三部曲之二:本地快速构建disconf镜像

    Docker下的disconf实战全文链接 <Docker搭建disconf环境,三部曲之一:极速搭建disconf>: <Docker搭建disconf环境,三部曲之二:本地快速构 ...

随机推荐

  1. 锁-lock,信号量4

    1. 全局解释器锁,保证同一时间只有一个线程在执行,但是由于它是把数据copy成了两份,所以 只有全局解释器锁的时候,数据加减照样出错了. 2.用户态的锁,保证同一时间,只有一个线程在真真正正地修改数 ...

  2. [洛谷P4345][SHOI2015]超能粒子炮·改

    题目大意:给你$n,k$,求:$$\sum\limits_{i=0}^k\binom n i\pmod{2333}$$题解:令$p=2333,f(n,k)\equiv\sum\limits_{i=0} ...

  3. HDU.2647 Reward(拓扑排序 TopSort)

    HDU.2647 Reward(拓扑排序 TopSort) 题意分析 裸的拓扑排序 详解请移步 算法学习 拓扑排序(TopSort) 这道题有一点变化是要求计算最后的金钱数.最少金钱值是888,最少的 ...

  4. bzoj2165: 大楼(倍增floyd)

    题目大意:一个有向图,n(<=100)个点求一条长度>=m(<=10^18)的路径最少经过几条边. 一开始以为是矩乘,蓝鹅当时还没开始写,所以好像给CYC安利错了嘿嘿嘿QWQ 第一眼 ...

  5. node egg.js使用superagent做文件转发

    使用 egg.js + superagent 进行文件上传转发 // app/controller/file.js const Controller = require('egg').Controll ...

  6. JavaScript滚动条的制作

    效果演示   这个效果的制作是借助setTimeout的第三个参数.setTimeout/setInterval,这两个函数相信前端开发同学都很熟悉.它们在非IE(6-9)浏览器中还可以如下使用: v ...

  7. linux安装卸载MySQL以及密码设置+Hive测试

    linux系统卸载MYSQL 1,先通过yum方式卸载mysql及相关组件 命令:yum remove mysql* 2.通过命令:rpm -qa|grep -i mysql 查找系统的有关于mysq ...

  8. [zabbix]zabbix2.0apt源安装

    http://www.sysadminworld.com/2013/install-zabbix-2-on-ubuntu-12-04-precise/

  9. zabbix监控ipmi

    @1.假设idrac已经启用,并且使用ipmitool能正确读取数据(本文后面详细描述如何配置) @2.第一节只涉及web配置 1.创建主机 configuration-->hosts--> ...

  10. STM32之窗口看门狗

    1.有个7位递减计数器(WWDG->CR),就这个计数器和窗口计数器(WWDG->CFR)决定什么时候喂狗.狗喂早了,复位——“早”体现在 计数器值(tr)>窗口值(wr),也就是计 ...