在进行现网环境搭建的时候,绝大多数情况下,centos或redhat(以下以centos为例)服务器是跟公网隔离的,因此需要找一台服务器挂载自己的yum源。

一、离线yum源包的制作

离线yum源可以从官网下载镜像文件直接用(具体怎么用下面会介绍),也可以自己下载rpm包后自己制作。

1、从官网下载镜像文件

既然是制作yum源,当然是希望镜像文件内包含的包越全越好,因此从官网下载时,尽量下载“Everything ISO”,另外一个“DVD ISO”是通用版,里面的包并不全,还有一个“Minimal ISO”就更不用说了,是centos最小安装版(相当于是windows的纯净系统)。centos

7版本的“Everything ISO”镜像下载地址如下(自行选择镜像服务器和下载的系统版本):

http://isoredirect.centos.org/centos/7/isos/x86_64/CentOS-7-x86_64-Everything-1511.iso

下载的文件名示例:CentOS-7-x86_64-Everything-1511.iso

2、自行下载rpm包制作

如果已经下载好了rpm包,可以自行制作一个yum源(yum仓库)。将下载的rpm包上传到centos服务器上(比如/data/rpm目录下),然后进入存放rpm包的目录,执行以下命令:

# createrepo .

这样,rpm包存放的目录就可以作为yum源目录使用了(后面说明如何使用),可以将这个目录打包后,放到其他地方也可以使用。

如上例打包 : cd /data;tar -zcvf rpm.tar.gz rpm/

【注】:如果提示找不到createrepo命令,可以使用yum install createrepo安装该程序。如果无法联网安装,需要自行到网上下载rpm包安装,尤其是还要下载一些依赖包,例如createrepo-0.9.9-23.el7.noarch版本就依赖于以下包:

[root@hps105 test]# yum deplist createrepo-0.9.9-23.el7.noarch
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
* base: mirrors.163.com
* epel: mirror01.idc.hinet.net
* extras: mirrors.btte.net
* updates: mirrors.163.com
package: createrepo.noarch 0.9.9-23.el7
dependency: /bin/sh
provider: bash.x86_64 4.2.46-19.el7
dependency: /usr/bin/python
provider: python.x86_64 2.7.5-34.el7
dependency: deltarpm
provider: deltarpm.x86_64 3.6-3.el7
dependency: libxml2-python
provider: libxml2-python.x86_64 2.9.1-6.el7_2.2
dependency: pyliblzma
provider: pyliblzma.x86_64 0.5.3-11.el7
dependency: python >= 2.1
provider: python.x86_64 2.7.5-34.el7
dependency: python(abi) = 2.7
provider: python.x86_64 2.7.5-34.el7
dependency: python-deltarpm
provider: python-deltarpm.x86_64 3.6-3.el7
dependency: rpm >= 4.1.1
provider: rpm.x86_64 4.11.3-17.el7
dependency: rpm-python
provider: rpm-python.x86_64 4.11.3-17.el7
dependency: yum >= 3.4.3-4
provider: yum.noarch 3.4.3-132.el7.centos.0.1
dependency: yum-metadata-parser
provider: yum-metadata-parser.x86_64 1.1.4-10.el7

二、离线yum源的配置

如上例,下载好ISO镜像,或者是创建好rpm的包(如上例,即rpm.tar.gz)之后,就是如何使用这些包创建离线yum源(即离线yum仓库)了。

1、系统ISO镜像文件

使用iso文件制作yum源,需要先挂载,然后才能使用。

1、将iso文件上传(假设上传到/data目录下);

2、创建挂载目录:

# mkdir -p /data/iso

3、挂载iso文件:

# cd /data
# mount -o loop -t iso9660 CentOS-7-x86_64-Everything-1511.iso /data/iso

4、配置yum

# cd /etc/yum.repos.d/
# mkdir bak
# mv *repo bak/
# vim local.repo

local.repo文件内容如下:

[iso]

name=CentOS-7-x86_64-Everything-iso

baseurl=file:///data/iso

gpgcheck=0

enabled=1

5、然后验证即可:

# yum clean all
# yum makecache

看是否有报错。

2、自行制作的yum仓库

如上例,如果是自行制作的rpm.tar.gz文件,直接解压后配置一下即可。

1、上传rpm.tar.gz文件(假设上传到/data下);

2、解压

# cd /data
# tar -zxvf rpm.tar.gz -C /data/rpm

3、配置yum

# cd /etc/yum.repos.d/
# mkdir bak
# mv *repo bak/
# vim local_rpm.repo

local_rpm.repo文件内容如下:

[rpm]

name=rpm_package

baseurl=file:///data/rpm

gpgcheck=0

enabled=1

4、然后验证即可:

# yum clean all
# yum makecache

看是否有报错。

三、yum服务器搭建

上述步骤及配置,都只能在本地使用离线yum仓库,如果希望其他服务器(例如10.1.245.102)也能使用该服务器(例如10.1.245.105)的离线yum仓库,就需要在该服务器上通过http服务或者是ftp服务将yum仓库共享出去,这里提供的方法是http方式。

注:这里提供的http方式需要占用80端口,其他服务器也不能将这个端口防火墙过滤掉。

1、搭建http服务器(按上例10.1.245.105,如果已搭建,可以继续下一步)

# yum install -y httpd
# systemctl enable httpd
# systemctl start httpd

注:如果无法通过yum方式安装,请依次下载以下包进行安装(centos7.0系统为例):

# rpm -ivh apr-1.4.8-3.el7.x86_64.rpm
# rpm -ivh apr-util-1.5.2-6.el7.x86_64.rpm
# rpm -ivh httpd-tools-2.4.6-31.el7.x86_64.rpm
# rpm -ivh mailcap-2.1.41-2.el7.noarch.rpm
# rpm -ivh httpd-2.4.6-31.el7.x86_64.rpm
# systemctl enable httpd
# systemctl start httpd

2、按照如上方式启动的httpd服务,占用端口80,默认访问路径是/var/www/html/,因此需要将上例中创建的/data/rpm、/data/iso目录做个软连接到这个目录下:

# mkdir -p /var/www/html/
# ln -s /data/rpm /var/www/html/rpm
# ln -s /data/iso /var/www/html/iso

3、在其他服务器(按上例,即10.1.245.102)上配置yum源:

# cd /etc/yum.repos.d/
# mkdir bak
# mv *repo bak/
# vim http.repo

http.repo文件内容如下:

[http_iso]

name=iso_105

baseurl=http://10.1.245.105/iso

gpgcheck=0

enabled=1

[http_rpm]

name=rpm_105

baseurl=http://10.1.245.105/rpm

gpgcheck=0

enabled=1

4、然后验证即可:

# yum clean all
# yum makecache

看是否有报错。

最新文章

  1. dubbox微服务实例及引发的“血案”
  2. [转] STM32各种时钟的区别
  3. Linux网络编程系列-TCP传输控制
  4. 快速入门系列--WCF--02消息、会话与服务寄宿
  5. java script 确认框
  6. jquery一个按钮全选和反选
  7. paip.哈米架构CAO.txt
  8. PowerPoint 打开文档发现.pptx中胡内容有问题
  9. gcc / g++ 编译选项
  10. POJ 2362 Square
  11. [原创作品] Express 4.x 接收表单数据
  12. poj3299
  13. [Effective Modern C++] Item 5. Prefer auto to explicit type declarations - 相对显式类型声明,更倾向使用auto
  14. HDU 3473 Minimum Sum (划分树)
  15. java多线程-消费者和生产者模式
  16. [PHP] 算法-将一个字符串转换成一个整数的PHP实现
  17. 下单快发货慢:一个 JOIN SQL 引起 SqlClient 读取数据慢的奇特问题
  18. ABAP设计模式——适配器
  19. Introduction to pinatrace annotate version 2: a look into latches again
  20. iScroll4插件的使用实例

热门文章

  1. Swift学习 (一)
  2. IPVS支持的调度算法
  3. 《Hadoop大数据技术开发实战》学习笔记(一)
  4. 【ARM-Linux开发】Wi-Fi 应用工具wpa_supplicant
  5. jquery获得 当前页面url的变量
  6. Python中logging在多进程环境下打印日志
  7. php去掉字符串中的最后一个字符和汉字
  8. VMware安装windows7系统
  9. 利用Python进行数据分析_Numpy_基础_3
  10. VS2013+WDK8.1 驱动开发环境配置