在企业实际应用场景中,仅仅靠光盘里面的RPM软件包是不能满足需要,我们可以把外网的YUM源中的所有软件包同步至本地,可以完善本地YUM源的软件包数量及完整性。
获取外网YUM源软件常见方法包括Rsync、Wget、Reposync,三种同步方法的区别Rsync方式需要外网YUM源支持RSYNC协议,Wget可以直接获取,而Reposync可以同步几乎所有的YUM源,下面以Reporsync为案例,同步外网YUM源软件至本地,步骤如下:
(1)下载CentOS7 REPO文件至/etc/yum.repos.d/,并安装reposync命令工具:
wget http://mirrors.163.com/.help/CentOS7-Base-163.repo
mv CentOS7-Base-163.repo /etc/yum.repos.d/centos.repo
yum clean all
yum install yum-utils createrepo –y
yum repolist
(2)在nginx的发布目录下面创建目录,该目录就是用来存放同步过来的网络包的
mkdir -p /usr/share/nginx/html/centos
(3)修改nginx的配置文件,这里只是将目录的autoindex on的功能开启,记得修改完配置文件nginx记得reload
[root@localhost ~]# vim /etc/nginx/nginx.conf
server {
listen 80 default_server;
listen [::]:80 default_server;
server_name _;
root /usr/share/nginx/html;
include /etc/nginx/default.d/*.conf;
location / {
autoindex on;
}
(4)通过reposync命令工具获取外网YUM源所有软件包,-r指定repolist id,默认不加-r表示获取外网所有YUM软件包,-p参数表示指定下载软件的路径
reposync -r base -p /usr/share/nginx/html/centos/
reposync -r updates -p /usr/share/nginx/html/centos/
reposync -r extras -p /usr/share/nginx/html/centos/
(5)通过reposync工具下载完所有的软件包之后,需要执行createrepo更新本地YUM仓库
createrepo /usr/share/nginx/html/centos/
同时将163的key和可以下载文件拷贝到该目录下面
[root@localhost ~]# ls /usr/share/nginx/html/centos/
base CentOS_BuildTag EULA extras GPL repodata RPM-GPG-KEY-CentOS-7 RPM-GPG-KEY-CentOS-Testing-7 updates
[root@localhost html]# du -sh --可以看到所有东西都下载到本地的大小差不多是21G
21G
(6)效果展示
(7)配置yum源
[root@localhost ~]# vim /etc/yum.repos.d/my.repo
[test]
name=mytest
baseurl=http://192.168.179.99/centos/
gpgcheck=1
gpgkey=http://192.168.179.99/centos/RPM-GPG-KEY-CentOS-7
(6)生成缓存和查看配置的源信息
[root@localhost ~]# yum makecache
Loaded plugins: fastestmirror
base | 3.6 kB 00:00:00
extras | 2.9 kB 00:00:00
test | 2.9 kB 00:00:00
updates | 2.9 kB 00:00:00
Loading mirror speeds from cached hostfile
Metadata Cache Created
[root@localhost ~]# yum repolist
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
repo id repo name status
base/7/x86_64 CentOS-7 - Base - 163.com 10,097
extras/7/x86_64 CentOS-7 - Extras - 163.com 341
test mytest 12,225