一、自建YUM仓库
当网络不好时,或者说根本链接不上官方yum仓库,以及第三方yum仓库(zabbix源)等,我们就需要自建一个yum仓库来满足我们需要。除了网络条件以外,还有我们生产环境需要发布,更新自己软件,我们可以将这些软件打包成RPM包,放到自己的仓库,然后在各个机器执行yum更新。
1.1 使用一些RPM包自建一个YUM仓库
-
在目录
/data/yum/repo/custom
准备了如下的RPM包。根据自己的需求准备RPM包$ pwd /data/yum/repo/custom $ tree . . ├── dos2unix-3.1-37.el6.x86_64.rpm └── iftop-1.0-0.21.pre4.el7.src.rpm 0 directories, 2 files
-
创建
repodata
$ yum install -y createrepo $ createrepo /data/yum/repo/custom/ Spawning worker 0 with 2 pkgs Workers Finished Saving Primary metadata Saving file lists metadata Saving other metadata Generating sqlite DBs Sqlite DBs complete $ ls /data/yum/repo/custom/ dos2unix-3.1-37.el6.x86_64.rpm iftop-1.0-0.21.pre4.el7.src.rpm repodata
createrepo
完成之后能够看到在/data/yum/repo/custom
目录多出一个repodata
目录
至此yum仓库已经搭建完成,剩下的操作为将这个仓库发布出去,让其他用户能够访问。发布的方式有http
, ftp
, rsync
, filesystem
。当发布完成之后之后,用户配置好yum源即可访问了。
二、发布我们的YUM仓库
2.1 使用HTTP方式发布
-
在yum仓库所在机器搭建Nginx
$ yum install -y nginx
-
将
/etc/nginx/nginx.conf
内容替换成如下worker_processes 1; events { worker_connections 1024; } http { include mime.types; default_type application/octet-stream; sendfile on; keepalive_timeout 65; server { listen 80; server_name localhost; root /data/yum/repo/custom; autoindex on; autoindex_exact_size off; autoindex_localtime on; } }
-
重启nginx
$ systemctl restart nginx
此时在浏览器中访问http://your_host, 应能够看到我们yum仓库的两个包。
至此yum仓库已经发布完成,剩下需要用户配置yum源,指向自建的仓库。
三、配置yum源
这一步属于用户的操作,当用户需要使用我们的yum源时,应当做此步操作。
假定我们yum仓库的地址为http://192.168.30.10
, 名称为loveshell
,那么我们需要在/etc/yum.repos.d/
目录下创建文件lovezsh.repo
, 其内容如下:
[lovezsh]
name=lovezsh
baseurl=http://192.168.30.10
enable=1
gpgcheck=0
priority=1
然后,我们需要执行
$ yum clean all
$ yum makecache
添加完成之后我们执行yum repolist
能够开到一个名叫lovezsh
的yum源
$ yum repolist
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
* base: mirrors.aliyun.com
* epel: mirrors.aliyun.com
* extras: mirrors.cn99.com
* updates: mirror.bit.edu.cn
lovezsh | 2.9 kB 00:00:00
lovezsh/primary_db | 2.3 kB 00:00:00
repo id repo name status
base/7/x86_64 CentOS-7 - Base 10,097
epel/x86_64 Extra Packages for Enterprise Linux 7 - x86_64 13,517
extras/7/x86_64 CentOS-7 - Extras 323
lovezsh lovezsh 2
updates/7/x86_64 CentOS-7 - Updates 1,115
repolist: 25,054
不同发布方式,我们需要使用不同baseurl, 如使用文件系统,则是
file:///data/yum/repo/custom
来源:51CTO
作者:hucsxz
链接:https://blog.51cto.com/idweb/2468563