Linux存储库是Linux发行版中最有用的功能之一,它们包含特定发行版或其子发行版的软件包和软件数据库,例如Yum就是这些存储库之一。
Yum是RedHat和基于RedHat发行版中使用的RPM包的基本存储库。RPM易于配置和使用,允许用户轻松快速地在其系统中安装软件包。
Yum包可以托管在服务器上,并通过HTTP、HTTPS和FTP或存储库的本地安装从而进行远程服务,本地安装涉及下载包并将它们存储在本地磁盘上。
在本文中,小编将简单介绍下如何在CentOS系统上设置本地托管的Yum存储库的方法,感兴趣的小伙伴可以看看。
前提条件
想要在CentOS系统上设置本地托管的Yum存储库,需要满足以下要求:
- REHL或CentOS 发行版;
- root用户或sudo组中的用户;
- 服务器已经连接网络;
- 安装了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
这将为你提供所有存储库的列表:
此外,还可以使用URL导航到repo列表,地址是:
https://192.168.0.20:80
结论
以上就是在CentOS系统中创建本地Yum存储库的全部内容,设置过程仅供参考,有不清楚的小伙伴可以参考上述方法进行设置。