Linux存储库是Linux发行版中最有用的功能之一,它们包含特定发行版或其子发行版的软件包和软件数据库,例如Yum就是这些存储库之一。
Yum是RedHat和基于RedHat发行版中使用的RPM包的基本存储库。Yum包可以托管在国外服务器上,并通过HTTP、HTTPS和FTP或存储库的本地安装从而进行远程服务,本地安装涉及下载包并将它们存储在本地磁盘上。本文将介绍下CentOS配置本地Yum仓库操作步骤,仅供大家参考。
一、安装 Web 服务器
通常,yum包通过HTTP/HTTPS或FTP协议提供服务,但由于不能同时使用两者,因此这里选择了Web服务器,相对来说这样设置和配置更加简单。
本文将使用Apache环境,使用下面的命令来安装和启动服务器。
$ sudo yum install httpd
值得注意的是,你可以将FTP或HTTP/HTTPS用于本地存储库,也可以使用其他Web服务器,例如Nginx。
$ sudo systemctl start httpd
$ sudo systemctl enable httpd
$ sudo systemctl status httpd
一旦安装并成功启动了Apache,接下来就可以继续设置本地存储库。
二、安装所需的软件包
第二步需要安装包和工具来帮助创建、配置和管理本地存储库。
这里需要的工具是createrepo 包,它将 .rpm文件捆绑到repomd repo 和yum-utils中以管理存储库,可以使用以下命令安装软件包:
$ sudo yum install createrepo yum-utils
三、创建存储库目录
第三步是创建设置存储库所需的目录,由于本文使用的是Web服务器,因此在/var/www/html目录中创建它们肯定没错。
我们需要的目录是:
- Baseos
- Extras
- Appstream
- Epel
使用下面的命令显示来设置目录。
$ sudo mkdir /var/www/html/{baseos,extras,appstream,epel}
注意:根据各种因素的关系,可能不需要创建目录。但是,为了安全起见,请事先创建它们,如果出现错误可以将其删除。
四、同步Yum存储库
在这一步中,会将存储库同步到我们在上一步中创建的目录中,这类将使用reposync工具:
$ sudo yum reposync -p=/var/www/html –repoid=baseos –download-metadata
$ sudo yum reposync -p=/var/www/html –repoid=extras –download-metadata
$ sudo yum reposync -p=/var/www/html –repoid=appstream –download-metadata
$ sudo yum reposync -p=/var/www/html –repoid=epel –download-metadata
五、创建新存储库
最后一步是使用createrepo工具创建存储库,该命令是:
$ sudo createrepo /var/www/html/
这将开始创建repo,输出如下所示的内容:
Directory walk done – 2817 packages
Temporary output repo path: /var/www/html/.repodata/
Preparing sqlite DBs
Pool started (with 5 workers)
Pool finished
六、在客户端机器上设置本地仓库
最后一步是告诉用户端机器有关本地存储库的信息以及下载它们的链接,输入命令为:
$ sudo nano /etc/yum.repos.d/local.repo
在文件中,添加以下条目。
name=Yum Local Base
baseurl=http://192.168.0.20:80/base
enabled=1
gpgcheck=0
name=Yum Local Extras
baseurl=http://192.168.0.20:80/extras
enabled=1
gpgcheck=0[local-appstream]
name=Yum Local Appstream
baseurl=http://192.168.0.20:80/appstream
enabled=1
name=Yum Local Epel
baseurl=http://192.168.0.20:80/epel
enabled=1
gpgcheck=0
七、确认Repolist
要检查repolis 是否可用,请使用以下命令:
$ sudo yum repolist