企业内部创建YUM仓库

一、YUM的使用与命令

 YUM工具的使用简便、快捷、高效,在企业中得到广泛的使用,因此得到众多IT运维、程序人员的青睐。要能熟练使用YUM工具,需要先掌握YUM命令行参数的使用。

  YUM命令工具指南,YUM格式为

  YUM [command] [package] -y

其中的-y表示安装或者卸载出现yes时,自动确认yes。YUM命令工具的参数详解如下:

  yum install httpd:安装httpd软件包。

  yum search:搜索软件包。

  yum list httpd:显示指定程序包安装情况httpd。

  yum list:显示所有已安装及可安装的软件包。

  yum remove httpd:删除程序包httpd。

  yum update:内核升级或者软件更新。

  yum update httpd:更新httpd软件。

  yum check-update:检查可更新的程序。

  yum info httpd:显示安装包信息。

  yum provides:列出软件包提供了哪些文件。

  yum provides "* /rz":列出rz命令由哪个软件包提供。

  yum groupinstall "Chinese Support":安装中文支持。

  yum deplist httpd:查看程序httpd依赖情况。

  yum clean packages:清除缓存目录下的软件包。

  yum clean headers:清除缓存目录下的headers。

  yum clena all:清除缓存目录下的软件包和headers。

二、构建HTTP分发的本地YUM本地源

  通常而言,YUM客户端使用前提是必须联外网,YUM安装软件会检查.repo配置文件查找相应的YUM源仓库。企业IDC机房很多服务器为了安全起见,会禁止服务器上外网,因此不能使用默认的官方YUM源仓库,需要自建本地的YUM源仓库。

  1、使用createrepo创建本地源,执行如下命令会在centos目录生成repodate目录。

[root@localhost ~]# yum install createrepo
root@localhost ~]# mkdir /var/repo/centos -p
[root@localhost ~]# cd /var/repo/
[root@localhost repo]# createrepo centos/
Directory walk started
Directory walk done - 0 packages
Temporary output repo path: centos/.repodata/
Preparing sqlite DBs
Pool started (with 5 workers)
Pool finished

由此,本地YUM源建成功,将来常下载下来的rpm包拷贝到/var/repo/centos目录下,然后更新repodate。

[root@localhost ~]# createrepo --update /var/repo/centos/
Directory walk started
Directory walk done - 2 packages
Loaded information about 0 packages
Temporary output repo path: /var/repo/centos/.repodata/
Preparing sqlite DBs
Pool started (with 5 workers)
Pool finished

查看repodata目录

 

  2、利用HTTP发布本地YUM源

  安装nginx软件

[root@localhost ~]# yum install nginx -y

  配置nginx.conf

 

 通过网页访问http://本地IP,如下图所示:

至此,构建HTTP分发的本地YUM本地源成功。

三、YUM在客户端配置repo,然后测试是否成功。

  1、在YUM客户端,创建/etc/yum.repos.d/http.repo文件,输入如下内容:

[base]
name = "Centos HTTP YUM"
baseurl = http://10.10.10.128
gpgcheck = 0
enabled = 1

http.repo配置文件详解如下:

name:YUM源的显示名称

baseurl:YUM源的所在地点

gpgchek:是否检查GPG-KEY

enabled:是否启用YUM源

  2、清空客户端上原来的YUM缓存。

[root@ansible ~]# yum clean all

测试客户端的YUM使用,如图所示:

 

 四、同步外网YUM源

  要企业实际应用场景,仅仅靠日常下载下来的rpm软件包是不能满足需要的,用户可以把外网的YUM源中所有软件包同步至本地,完善本地YUM源的软件包数量及完整性。

  获取外网YUM源软件常见方法包括:rsync、wget、reposync,三种同步方法区别:rsync方式需要外网YUM源支持rsync协议;wget可以直接获取;reposync可以同步几乎所有的YUM源,下面以reposync为案例,同步外网YUM源软件至本地。

  1、安装reposync工具

[root@localhost ~]# yum install yum-utils

  2、通过reposync命令工具获取外网YUM源所有软件包,-r指定repolist id仓库ID,默认不加-r表示获取外网所有YUM软件包,-p参数表示指定下载软件的路径。

[root@localhost ~]# yum repolist
仓库 id                                              仓库名称
AppStream                                            CentOS-8.5.2111 - AppStream - mirrors.aliyun.com
base                                                 CentOS-8.5.2111 - Base - mirrors.aliyun.com
copr:copr.fedorainfracloud.org:atim:bottom           Copr repo for bottom owned by atim
copr:copr.fedorainfracloud.org:atim:nushell          Copr repo for nushell owned by atim
docker-ce-stable                                     Docker CE Stable - x86_64
draios                                               Draios
epel                                                 Extra Packages for Enterprise Linux 8 - x86_64
epel-modular                                         Extra Packages for Enterprise Linux Modular 8 - x86_64
extras                                               CentOS-8.5.2111 - Extras - mirrors.aliyun.com

执行reposync命令如下:

[root@localhost ~]# reposync -p /var/repo/centos/

测试用例,没有下载完整

 

   3、更新repodate

[root@localhost ~]# createrepo --update /var/repo/centos/
Directory walk started
Directory walk done - 11 packages
Loaded information about 2 packages
Temporary output repo path: /var/repo/centos/.repodata/
Preparing sqlite DBs
Pool started (with 5 workers)
Pool finished

查看/var/repo/centos目录,有如下变化,同步外网成功。

 

posted @ 2022-07-18 17:08  启云  阅读(294)  评论(0编辑  收藏  举报