离线yum源挂载及共享yum服务器搭建

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

一、离线yum源包的制作

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

1、从官网下载镜像文件

既然是制作yum源,当然是希望镜像文件内包含的包越全越好,因此从官网下载时,尽量下载“Everything ISO” 因为包比较多
CentOS7的“Everything ISO”镜像下载地址如下(自行选择镜像服务器和下载的系统版本):

http://isoredirect.centos.org/centos/7/isos/x86_64

可以下载这样的“CentOS-7-x86_64-Everything-XXXX.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版本就依赖于以下包:

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

添加如下内容:

[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服务器搭建

使用http制作共享yum服务器
注:此方法需要占用80端口请自行接触限制
1、搭建http服务

yum install -y httpd
systemctl enable httpd
systemctl start httpd

注:如果没有yum可以下载依赖包进行安装,这里列出httpd所需依赖包(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、在其他服务器(按上例)上配置yum源:

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

http.repo文件内容如下:

[http_iso] 
name=iso_yum_server 
baseurl=http://xxx.xxx.xxx.xxx/iso 
gpgcheck=0 
enabled=1

[http_rpm] 
name=rpm_yum_server 
baseurl=http://xxx.xxx.xxx.xxx/rpm 
gpgcheck=0 
enabled=1

4、验证:

yum clean all
yum makecache

所有原创文章采用 知识共享署名-非商业性使用 4.0 国际许可协议 进行许可。
您可以自由的转载和修改,但请务必注明文章来源并且不可用于商业目的。
本站部分内容收集于互联网,如果有侵权内容、不妥之处,请联系我们删除。敬请谅解!

仅有一条评论

添加新评论

  公告

我把那梦再给接上,看看后边啥情况。
--- updated on

  关于博主

你有你的诗和远方,我有我的腿和裤裆。没有洁癖的处女座不是一个好的处女座,想在乱世中寻找一个安静的角落静静地做一些分享,不断学习,很喜欢《士兵突击里》的军事、外语双学士,光电硕士,空军少校-吴哲的口头禅:平常心。但在生活中大都做不到......

  近期评论

  分类目录

有种脾气叫,不放弃。

梦想是注定孤独的旅行,路上少不了质疑和嘲笑,但那又怎样,哪怕遍体鳞伤也要活的漂亮。

不管现在有多么艰辛,我们也要做个生活的舞者。

命运从来不会同情弱者。

不怕万人阻挡在前方,只怕自己先行投降。