使用createrepo自建yum仓库
当服务器由于某些原因没有外网时,可以通过createrepo搭建本地yum仓库,使用yum能够自动安装软件,并且自动处理好依赖关系。
那么怎么获取该软件及其依赖包的rpm包,供本地源使用?
本次以安装httpd为例,准备好两台服务器:
ip |
备注 |
192.168.100.162 |
有外网,获取rpm包,供本地源使用 |
192.168.100.163 |
无外网,自建本地源,安装软件 |
1、在搭建YUM仓库之前,先来了解下如何获取RPM包
方式一:通过修改yum配置文件来获取rpm包
在默认配置下使用yum命令安装完软件后安装包是不会保留的,如果想在本地也留存一份安装包,只需要将yum配置文件/etc/yum.conf中的keepcache=0改为1即可,这样安装包都会留存在cachedir所指定的目录中
存放安装包的路径会根据不同的yum源创建不同的目录,软件包通过哪个源安装的就会保存在哪个目录中,同时相关依赖包也会自动下载,需要注意的如果执行了yum clean all的话是会删除掉这些安装包的:
方式二:通过yum的—downloadonly参数来获取rpm包,此方式仅下载软件包而不进行安装 (本次使用此方式)
[root@162 ~]# yum install httpd --downloadonly --downloaddir=/data/repo
2、使用createrepo搭建本地仓库
[root@162 ~]# yum install createrepo
[root@162 ~]# createrepo /data/repo/ #将该目录制作成软件仓库
[root@162 ~]# ll /data/repo/
-rw-r--r-- 1 root root 2844388 8月 23 05:25 httpd-2.4.6-90.el7.centos.x86_64.rpm
-rw-r--r-- 1 root root 92944 8月 23 05:25 httpd-tools-2.4.6-90.el7.centos.x86_64.rpm
-rw-r--r-- 1 root root 31264 7月 4 2014 mailcap-2.1.41-2.el7.noarch.rpm
drwxr-xr-x 2 root root 4096 1月 9 10:24 repodata #创建一个repodata目录
3、测试
登录没有外网的机器(192.168.100.163)
[root@163 ~]# ll /data/repo/ #把162机器上的仓库文件拷贝到本地
-rw-r--r-- 1 root root 2844388 8月 23 05:25 httpd-2.4.6-90.el7.centos.x86_64.rpm
-rw-r--r-- 1 root root 92944 8月 23 05:25 httpd-tools-2.4.6-90.el7.centos.x86_64.rpm
-rw-r--r-- 1 root root 31264 7月 4 2014 mailcap-2.1.41-2.el7.noarch.rpm
drwxr-xr-x 2 root root 4096 1月 9 10:24 repodata
[root@163 ~]# cat /etc/yum.repos.d/test.repo #写个repo文件
[test]
name=test
enable=1
gpgcheck=0
baseurl=file:///data/repo
[root@163 ~]# yum repolist
[root@163 ~]# yum install httpd
[root@163 ~]# ss -tanlp |grep 80
LISTEN 0 128 *:80 *:*