搭建离线YUM仓库

2019-07-29

准备工作

用作仓库的虚拟机IP为172.16.45.6。我计划将/home/repo这个目录下的软件当做YUM源。首先确保http服务正常

安装apache或者nginx服务即可

createrepo必须已经安装否则无法格式化仓库

yum -y install createrepo

安装web服务

我用的是nginx,默认根目录是/usr/share/nginx/html,所以在这个目录下做了一个软链接:

root@localhost html]# ln -s /home/repo .
[root@localhost html]# ll
总用量 4
-rw-r--r-- 1 root root  5 7月  26 10:17 index.html
lrwxrwxrwx 1 root root 10 7月  26 10:24 repo -> /home/repo
[root@localhost html]# cd repo/

使用createrepo命令格式化仓库

[root@localhost repo]# createrepo .
Saving Primary metadata
Saving file lists metadata
Saving other metadata
Generating sqlite DBs
Sqlite DBs complete
[root@localhost repo]# ls
repodata
[root@localhost repo]# cd repodata/
[root@localhost repodata]# ls
01a3b489a465bcac22a43492163df43451dc6ce47d27f66de289756b91635523-filelists.sqlite.bz2
401dc19bda88c82c403423fb835844d64345f7e95f5b9835888189c03834cc93-filelists.xml.gz
5dc1e6e73c84803f059bb3065e684e56adfc289a7e398946574d79dac6643945-primary.sqlite.bz2
6bf9672d0862e8ef8b8ff05a2fd0208a922b1f5978e6589d87944c88259cb670-other.xml.gz
7c36572015e075add2b38b900837bcdbb8a504130ddff49b2351a7fc0affa3d4-other.sqlite.bz2
dabe2ce5481d23de1f4f52bdcfee0f9af98316c9e0de2ce8123adeefa0dd08b9-primary.xml.gz
repomd.xml

依赖包下载

将rpm包放在/home/repo目录下,更新一下,在客户端就能看到这个包了

yum install httpd --downloadonly --downloaddir=/home/repo
           服务名称

--downloadonly 只下载rpm包

--downloaddir 设置下载目录

更新repo库

如果添加或者删除了个人的rpm包,不需要再次重新create,浪费时间,只需要--update就可以了

cd /home/repo
createrepo --update  ./

获取repo到/etc/yum.repos.d

自动获取

使用wget来获取repo文件也是可以的

wget http://172.16.45.6:8191/local_repo.repo
或者使用curl命令来查看
curl -XGET http://172.16.45.6:8191/local_repo.repo

将.repo文件保存到/etc/yum.repos.d

手动获取

在客户端/etc/yum.repos.d下创建一个以.repo结尾的文件

#vi local_repo.repo
[local_repo]
name=local_repo
baseurl=http://IP地址+端口/repo
gpgcheck=0
enabled=1

刷新本地库

yum clean all && yum repolist