为Red Hat和CentOS创建一个Yum存储库服务器

时间:2020-01-09 10:37:55  来源:igfitidea点击:

说明

本教程将向我们展示如何配置Yum存储库服务器。

安装Createrepo

要创建和初始化Yum存储库,必须首先下载并安装默认CentOS仓库中可用的createrepo软件包。如果我们无法访问Internet,则可以使用Red Hat或者CentOS安装光盘作为存储库进行安装。

  • 安装Createrepo
yum install createrepo

创建存储库

准备存储库目录

存储库需要一个目录,其中存储软件包。理想情况下,我们将希望存储库位于其自己的卷中,最好在其自己的磁盘上。为了展示如何创建存储库,我将其添加到根卷中。我的存储库将在/ repos / CentOS / 6/5 /中创建。在处理多个基于Red Hat的发行版和版本时,最好创建一个易于理解和管理的目录结构。

  • 为存储库创建一个新目录。
mkdir -p /repos/CentOS/6/5/Packages
  • 将RPM软件包添加到我们刚刚创建的目录中。

初始化存储库

存储库使用一个简单的数据库来跟踪所有软件包及其相关性。这样可以为我们提供如此迅速安装所需的所有软件包。初始化步骤将创建数据库并准备目录以托管存储库,从而允许客户端连接到该存储库。

  • 初始化存储库。
createrepo /repos/CentOS/6/5

更新资料库

并非所有存储库都停滞不前。通常,我们将要添加新软件包或者软件包更新。将它们添加到Packages目录不足以使其可供客户端使用。我们还需要更新存储库的软件包数据库。

  • 将新软件包添加到存储库Package目录。
  • 更新存储库的数据库。
createrepo --update /repos/CentOS/6/5

镜像基本存储库

使用ISO或者安装光盘

Red Hat和CentOS的安装光盘随附基本软件包的完整库,该库可镜像联机存储库。这些软件包将过期,但是我们可以稍后自己更新它们。使用安装光盘为存储库添加种子是创建基础存储库的简便方法。

  • 挂载安装光盘或者ISO。
  • 将光盘上的软件包复制到存储库中。例如,我已将光盘安装到/ media / CentOS。
cp -arv /media/CentOS/Packages/* /repos/CentOS/6/5/
  • 创建存储库。
createrepo /repos/CentOS/6/5

镜像在线基础存储库

另一种方法是从在线存储库下载软件包。这将确保我们具有用于存储库的软件包的最新版本。

  • 通过转到http://centos.org/download/mirrors/找到现有的镜像。查找我们附近的站点,然后在" Rysnc位置"列下获取地址。例如,我将在我所在位置附近使用大学。
  • 使用Rsync下载整个存储库。我只对CentOS 6.5感兴趣,所以我将其定位为本地大学的目录。
rsync -rz --progress rsync://mirror.csclub.uwaterloo.ca/centos/os/x86_64/ /repos/CentOS/6/5/

发布本地存储库

该存储库已准备就绪,但是除非我们使用HTTP或者FTP发布该存储库,否则客户端将无法使用它。

通过HTTP使用Apache

  • 安装Apache。
yum install httpd
  • 在默认的Apache根目录中创建一个指向我们新存储库的符号链接。我们将创建链接,使其指向我们的CentOS存储库目录的根目录。这样可以减少在向仓库中添加新版本时所需的精力。
ln -s /var/www/html/CentOS /repos/CentOS
  • 启动Apache守护程序以开始托管回购文件。

通过FTP使用VSFTPD

  • 安装VSFTP
yum install vsftpd
  • 在默认的VSFTP根目录中创建指向我们新存储库的smbolic链接。我们将创建链接,使其指向我们的CentOS存储库目录的根目录。这样可以减少在向仓库中添加新版本时所需的精力。
ln -s /var/ftp/public/CentOS /repos/CentOS
  • 启动VSFTPD守护程序以开始托管回购文件。

在客户端上配置存储库

现在我们的存储库已为客户准备就绪。在他们可以访问它之前,我们需要创建一个Yum存储库配置文件。

  • 登录到客户端计算机。
  • 导航到托管Yum存储库配置文件的目录。
cd /etc/yum.repos.d
  • 为本地存储库创建配置文件。
nano local.repo
  • 将以下行添加到文件中。替换baseurl值以指向HTTP主机或者FTP主机。
[mylocalrepo]
name=Local CentOS Repo
baseurl=http://my-repo-server/CentOS/6/5
gpgcheck=0
  • 保存更改并退出文本编辑器。