企业内部创建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目录,有如下变化,同步外网成功。