【实例】

由于公司服务器只有两台机器可以访问外网,其它处于内网的机器如果要安装一些工具包就比较麻烦了,所以决定在可以访问外网的机器做一个yum仓库。以下是实例。

可以访问外网的主机IP:120.120.120.111(server)

内网主机IP:192.168.75.76(client)

在server:

1、创建目录

#mkdir -p /var/ftp/pup/centos7/Packages

#mkdir /var/ftp/pup/centos7/updates

2、使用wget下载163yum源上centos7里的安装包

先下载基础包

#cd /var/ftp/pup/centos7/Packages

#wget -nd -np -l1 -r http://mirrors.163.com/centos/7.2.1511/os/x86_64/Packages/

下载下来的是index.html文件,由于不会用这个文件下载,就用了一个比较笨的办法

#cat index.html |awk -F"[><]" '{print "wget http://mirrors.163.com/centos/7.2.1511/os/x86_64/Packages/"$3}' > ./file.sh

检查file.sh中的语句都是wget+路径的形式就没有问题了,然后使用以下语句进行下载

#sh ./file.sh

以下是下载update包

#cd /var/ftp/pup/centos7/updates

#wget -nd -np -l1 -r http://mirrors.163.com/centos/7.2.1511/updates/x86_64/Packages/

#cat index.html |awk -F"[><]" '{print "wget http://mirrors.163.com/centos/7.2.1511/updates/x86_64/Packages/"$3}' > ./file.sh

#sh ./file.sh


3、创建yum仓库

#createrepo  /var/ftp/pup/centos7/Packages

#createrepo /var/ftp/pup/centos7/updates

运行以上两个语句后,会在Packages和updates目录下创建repodata目录,里面记录yum server信息

由于server可以连接外网,就不需要更改本地的yum.repos.d目录下的repo文件了,至此,server本地yum仓库已经配置完毕

在client:

1、配置yum文件

#cat > /etc/yum.repos.d/CentOS7-openstack.repo <<EOF

[base]

enabled = 1

name = rhel7 - Base - local

baseurl = ftp://120.120.120.111/pub/centos7.2/Packages

gpgcheck = 0

gpgkey = ftp://120.120.120.111/pub/centos7.2/RPM-GPG-KEY-redhat-release

[updates]

enabled = 1

name= rhel7 - Updates - local

baseurl = ftp://120.120.120.111/pub/centos7.2/updates

gpgcheck = 0

gpgkey = ftp://120.120.120.111/pub/centos7.2/RPM-GPG-KEY-redhat-release

EOF

2、清除yun缓存

#yum clean all

3、使用yum安装

#yum install gcc

显示可以安装的提示,就证明你的yum仓库可以正式使用了。

注意:

1、如果配置的是两个yum仓库目录,则两个目录都需要使用createrepo进行yum仓库创建,不然在client端yum安装时会报错,显示其中一个仓库目录没有权限访问

2、ftp的默认目录是/var/ftp,如果需要更改这个目录,需要修改/etc/passwd中ftp对应行的目录记录,例如将/var/ftp目录修改为/usr/ftp,如下

ftp:x:14:50:FTP User:/var/ftp/:/sbin/nologin

ftp:x:14:50:FTP User:/usr/ftp/:/sbin/nologin

修改完毕后,server端需要将yum仓库建立在新的ftp目录下,client端的yum配置文件也要修改为最新的ftp目录地址,否则yum仓库无法使用。


参考文献:

RedHat Linux 本地yum源的配置 http://www.linuxidc.com/Linux/2013-08/88217.htm

RedHat 6.2 Linux修改yum源免费使用CentOS源 http://www.linuxidc.com/Linux/2013-07/87383.htm

配置EPEL YUM源 http://www.linuxidc.com/Linux/2012-10/71850.htm

Redhat 本地yum源配置 http://www.linuxidc.com/Linux/2012-11/75127.htm

yum的配置文件说明 http://www.linuxidc.com/Linux/2013-04/83298.htm

RedHat 6.1下安装yum(图文) http://www.linuxidc.com/Linux/2013-06/86535.htm

YUM 安装及清理 http://www.linuxidc.com/Linux/2013-07/87163.htm