CentOS下yum软件包管理器的基本使用攻略

2020-01-30 15:02:32王冬梅

如果管理大量的服务器,rpm软件包的安装和更新,都需要访问连接Internet,这样会导致安装软件包的速度会很慢,而且会浪费带宽. 为了避免上述情况的弊端,我们可以通过自己创建本地的repository(仓库)的方法来实现软件包的快速安装和更新.
仓库服务器端创建,将DVD或者CD发行版中的所有数据拷贝到服务器上(以centos 5 为例)
创建仓库目录

复制代码
mkdir /yum

挂载安装介质盘

复制代码
mount -o loop /download/centos5.iso /mnt

复制光盘内容到/yum目录中

复制代码
cp /mnt/* /yum

创建repository的软件包的索引文件(需要安装 createrepo 软件包)

复制代码
cd /yum
createrepo -g repodata/comps.xml .
(.代表当前目录)
配置apache服务器,将DocumentRoot 指向 /yum 目录,可以列出目录内容即可(示例配置)。

复制代码
DocumentRoot "/yum"
<Directory "/yum">
Options Indexes FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
</Directory>

启动apache,测试访问正常,服务器端设置完成
客户端设置,修改 yum 配置文件(假设服务器ip = 192.168.0.1)
修改配置文件内容/etc/yum.repos.d/centos-server.repo 内容如下

复制代码
#cat /etc/yum.repos.d/centos-server.repo
[main]
cachedir=/var/cache/yum
debuglevel=2
logfile=/var/log/yum.log
pkgpolicy=newest
distroverpkg=redhat-release
tolerant=1
exactarch=1
retries=20
obsoletes=1
gpgcheck=0

[centos5]
name=centos5 - Base
baseurl=http://192.168.0.1/
gpgcheck=0

删除/etc/yum.repos.d/ 目录中 其他 .repo 文件(不使用其他的软件仓库)
经过如上配置后,就可以使用自己建立的仓库,进行软件包的安装和更新. 如果你需要建立很多发行版本的仓库,可以按照不同目录划分进行,参考如下目录结构

复制代码
/yum
|-- rh35-x86-32
| |-- headers
| `-- repodata
|-- rh36-x86-32
| |-- headers
| `-- repodata
|-- rh36-x86-64
| |-- headers
| `-- repodata
|-- rh38-x86-32
| |-- headers
| `-- repodata
|-- rh38-x86-64
| |-- headers
| `-- repodata
|-- rh39-x86-32
| |-- headers
| `-- repodata
|-- rh42-x86-32
| `-- repodata
|-- rh43-x86-32
| `-- repodata
|-- rh44-x86-32
| `-- repodata
|-- rh44-x86-64
| `-- repodata
|-- rh45-x86-64
|-- rh46-x86-32
| `-- repodata
|-- rh46-x86-64
| `-- repodata