十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
当网络不好时,或者说根本链接不上官方yum仓库,以及第三方yum仓库(zabbix源)等,我们就需要自建一个yum仓库来满足我们需要。除了网络条件以外,还有我们生产环境需要发布,更新自己软件,我们可以将这些软件打包成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仓库所在机器搭建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仓库的地址为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