所在位置:

如何在 CentOS 6 的VPS上建立和使用 yum 仓库【翻译】

介绍

YUM 仓库是 Linux 软件(RMP 包文件)的仓库。RPM 包文件是 Red Hat 的包管理器,允许在 Red Hat/CentOS Linux 上快速和简单地安装软件。YUM 仓库拥有大量的 RPM 包文件并能够在我们的 VPS 上下载和安装新的软件。YUM 仓库也能够拥有本地(本地硬盘)或者远程的(FTP, HTTP 或者 HTTPS)的 RPM 包文件。YUM 配置文件保存在我们VPS上查询和安装(RPM 包文件)软件所需要的信息。

最常见和最大的 CentOS YUM 仓库:

从 YUM 仓库安装软件的优点是:

  • 软件容易管理 - 安装,更新和删除包是一个非常简单的

  • 软件依赖解决 - 软件的依赖被自动解决和安装

  • 官方的 Red Hat/CentOS 包管理 - YUM 是一个官方的 Red Hat/CentOS 包管理器

有时候想在我们的 CentOS VPS 上安装我们想要软件,但在官方的 CentOS 仓库是没有的。在这种情况下,我们可以使用一个额外(不是官方)的 CentOS YUM 仓库。额外的仓库有时候比官方的 CentOS 仓库拥有更新版本的软件。

YUM 仓库配置文件

我们能够在 Red Hat/CentOS Linux 上安装新的软件,通过终端中使用 "yum install packagename" 命令。一开始运行这个命令会在 /etc/yum.repos.d/ 目录下检查是否存在 YUM 仓库配置文件。它会读取每个 YUM 仓库配置文件来获取下载和安装新的软件所需要的信息,解决软件的依赖和安装所需的RPM 包文件。

YUM 仓库的配置文件必须:

  • 要在 /etc/yum.repos.d/ 的目录下

  • 要有能够被 YUM 认别的 .repo 扩展名

YUM 仓库配置的文件选项:

  • Repository ID - 仓库的ID是唯一的(例如: [examplerepo])

  • name - 仓库可读的名称(例如:name=Example Repository)

  • baseurl - 数据元目录地址。如果仓库是在本地的你可以使用 file://path 或者 如果仓库是在远程的,可以使用 ftp://linkhttp://linkhttps://link - HTTP 认证可用 http://user:password@www.repo1.com/repo1(例如: baseurl=http://mirror.cisp.com/CentOS/6/os/i386

  • enabled - 当执行更新和安装的时候启用仓库 (例如:enabled=1)

  • Gpgcheck - 启动/取消 GPG 签名检查(例如:gpgcheck=1)

  • Gpgkey - GPG URL的密钥(例如:gpgkey=http://mirror.cisp.com/CentOS/6/os/i386/RPM-GPG-KEY-CentOS-6

  • Exclude - 排除的包列表(例如:exclude=http,mod_ssl

  • Includepkgs - 包含的包列表(例如: include=kernel)

YUM 仓库配置所必须的选项有:

  • Repository ID

  • Name

  • Baseurl

  • Enabled

第一步:创建 YUM 仓库配置文件

使用你喜欢的终端文本编辑器,并在 /etc/yum.repos.d/目录下创建一个带 .repo 后缀新的 YUM 仓库配置文件。要使 "vi 编辑器" 创建一个新文件,请从终端运行下面命令:

vi /etc/yum.repos.d/example.repo
第二步:添加 YUM 仓库的选项

在新创建的 YUM 仓库配置文件中添加所需要的 YUM 仓库选项并保存

比如 YUM 仓库配置文件:
/etc/yum.repos.d/example.repos
[examplerepo]
name=Example Repository
baseurl=http://mirror.cisp.com/CentOS/6/os/i386/
enabled=1
gpgcheck=1
gpgkey=http://mirror.cisp.com/CentOS/6/os/i386/RPM-GPG-KEY-CentOS-6

CentOS DVD ISO 的 YUM 仓库

CentOS DVD ISO 拥有大量的软件(RPM包文件),这些文件在 Red Hat/CentOS安装向导中是可用的。我们也能够从 CentOS DVD ISO 创建 CentOS DVD ISO YUM 的仓库来使用RPM包文件。我们可以用这种方式在 CentOS DVD ISO 中用 "yum install packagename" 来安装所有的有用软件,即使我们已经完成了 Red Hat/CentOS 的安装向导。

第一步:下载/传输 CentOS DVD ISO

CentOS DVD ISO 文件可以在这里下载 http://mirror.centos.org/。我们需要下载或者传输 CentOS DVD ISO 到我们的 VPS上:

  • 传输 - 如果我们已经下载了不同于我们 VPS 的 CentOS DVD ISO,我们需要通过 FTP 或者 SSH 把它从我们的机器传输到我们的云服务器。我们能够用像 WinSCP(免费的 SFTP 客户端和 FTP ) 这样的软件来做或者相似的软件。

  • 下载 - 我们能够通过 VPS 在终端(请相应地更改 HTTP 链接)输入 "wget" 命令来直接下载 CentOS DVD ISO

wget http://mirror.lihnidos.org/CentOS/6.4/isos/i386/CentOS-6.4-i386-LiveDVD.iso
第二步:挂载 CentOS DVD ISO

为了查看 CentOS DVD ISO 的数据,我们需要把它挂载到目标位置。我们通常挂载 CD-ROM,USB设备或者 ISO 文件到 /mnt 目录(如果是免费使用)。为了挂载 CentOS DVD ISO 需要从终端运行下面的命令 (请相应地更改 /path/to/iso 和 /mnt)

mount -o loop /path/to/iso /mnt
第三步: 创建 YUM 仓库配置文件

为了使用最新的自定义YUM仓库,我们必须要创建 带 .repo 后缀的 YUM 仓库配置文件,这个文件必须要放在 /etc/yum.repos.d/ 目录下。在这篇文章的第一个主题里有一个叫 "YUM 仓库配置文件",介绍了创建 YUM 仓库的配置文件。

CentOS DVD ISO YUM 仓库配置文件的例子:
/etc/yum.repos.d/centosdvdiso.repo
[centosdvdiso]
name=CentOS DVD ISO
baseurl=file:///mnt
enabled=1
gpgcheck=1
gpgkey=file:///mnt/RPM-GPG-KEY-CentOS-6

创建自定义的 YUM 仓库

有时我们需要创建一个自定义的 YUM 仓库(方便我们的 VPS 没有连网的时候)。我们可以从我们选中期望的RPM 包文件来创建自定义的仓库。自定义 YUM 仓库仅仅拥有我们想包含的 RPM包文件。

第一步: 安装 "createrepo"

为了创建自定义的 YUM 仓库,我们需要在我们的云服务器上安装额外的一个叫做 "createrepo" 的软件。我们能够从终端运行下面的命令来安装 "createrepo"

yum install createrepo
第二步:创建仓库目录

我们需要创建一个新的目录用来作为我们自定义的YUM仓库的位置和将拥有所需的 RPM 包文件。我们能够从终端上运行下面的命令来处理(如果你喜欢,你可以选择不同于 /repository1 的目录):

mkdir /repository1
第三步:把 RPM 文件放到仓库目录

如果在我们的 VPS 上还没有 RPM 包文件,我们需要通过 FTP 或者 SHH( 像 WinSCP 的软件 或者类似的 ) 把它们传输到云服务器。我们也可以在终端(请修改http连接)上输入 "wget" 命令直接从我们的 VPS(需要连网)上下载 RPM 包文件

wget http://mirror.lihnidos.org/CentOS/6/os/i386/Packages/NetworkManager-0.8.1-43.el6.i686.rpm

注意: 上面的下载链接失效了,我使用的是 centos7,所以可以使用这个:

wget http://mirrors.163.com/centos/7/updates/x86_64/Packages/NetworkManager-1.8.0-11.el7_4.x86_64.rpm

如果在我们的 VPS 已经存在 RPM 文件,我们需要复制或者移动这些文件到 "第二步" 创建的最新目录。我们可以通过终端运行下面的命令来移动这些 RPM 文件(请直接修改 /path/to/rpm 和 /repository1):

mv /path/to/rpm /repository1

我们能够通过终端运行下面的命令来复制这些 RPM 文件(请直接修改 /path/to/rpm 和 /repository1):

cp /path/to/rpm /repository1
第四步:运行 "createrepo"

createrepo 命令读取通过第二步所创建的自定义仓库目录,并创建了一个新目录叫 "repodata"在里面。Repodata 目录拥有最新创建仓库的元数据信息。每次我们添加额外的RPM包文件到我们自定义的 YUM 仓库中,我们需要通过 "createrepo" 命令来重新创建仓库。我们能够从终端上运行下面的命令来创建新的元数据仓库(请直接修改 /repository1 ):

createrepo /repository1
第五步:创建 YUM 仓库配置文件

为了使用最新创建的自定义 YUM 仓库,我们必须创建相应的带 .repo后缀的YUM仓库配置文件,这个文件必须要放在 /etc/yum.repos.d/ 目录。在这篇文章的第一个主题里有一个叫 "YUM 仓库配置文件",介绍了创建 YUM 仓库的配置文件。

自定义 YUM 仓库配置文件的例子:

/etc/yum.repos.d/custom.repo
[customrepo]
name=Custom Repository
baseurl=file:///repository1/
enabled=1
gpgcheck=0

原文

【上一篇】yum 的配置与使用

【下一篇】grep的基本用法