千家信息网

自建YUM仓库

发表于:2024-11-29 作者:千家信息网编辑
千家信息网最后更新 2024年11月29日,一、自建YUM仓库当网络不好时,或者说根本链接不上官方yum仓库,以及第三方yum仓库(zabbix源)等,我们就需要自建一个yum仓库来满足我们需要。除了网络条件以外,还有我们生产环境需要发布,更新
千家信息网最后更新 2024年11月29日自建YUM仓库

一、自建YUM仓库

当网络不好时,或者说根本链接不上官方yum仓库,以及第三方yum仓库(zabbix源)等,我们就需要自建一个yum仓库来满足我们需要。除了网络条件以外,还有我们生产环境需要发布,更新自己软件,我们可以将这些软件打包成RPM包,放到自己的仓库,然后在各个机器执行yum更新。

1.1 使用一些RPM包自建一个YUM仓库

  1. 在目录/data/yum/repo/custom准备了如下的RPM包。根据自己的需求准备RPM包

    $ pwd/data/yum/repo/custom$ tree ..├── dos2unix-3.1-37.el6.x86_64.rpm└── iftop-1.0-0.21.pre4.el7.src.rpm0 directories, 2 files
  2. 创建repodata

    $ yum install -y createrepo$ createrepo /data/yum/repo/custom/Spawning worker 0 with 2 pkgsWorkers FinishedSaving Primary metadataSaving file lists metadataSaving other metadataGenerating sqlite DBsSqlite DBs complete$ ls /data/yum/repo/custom/dos2unix-3.1-37.el6.x86_64.rpm  iftop-1.0-0.21.pre4.el7.src.rpm  repodata

    createrepo完成之后能够看到在/data/yum/repo/custom目录多出一个repodata目录

至此yum仓库已经搭建完成,剩下的操作为将这个仓库发布出去,让其他用户能够访问。发布的方式有http, ftp, rsync, filesystem。当发布完成之后之后,用户配置好yum源即可访问了。

二、发布我们的YUM仓库

2.1 使用HTTP方式发布

  1. 在yum仓库所在机器搭建Nginx

    $ yum install -y nginx
  2. /etc/nginx/nginx.conf内容替换成如下

    worker_processes  1;events {    worker_connections  1024;}http {    include       mime.types;    default_type  application/octet-stream;    sendfile        on;    keepalive_timeout  65;    server {        listen       80;        server_name  localhost;        root /data/yum/repo/custom;        autoindex on;        autoindex_exact_size off;        autoindex_localtime on;    }}
  3. 重启nginx

    $ systemctl restart nginx

此时在浏览器中访问http://your_host, 应能够看到我们yum仓库的两个包。

至此yum仓库已经发布完成,剩下需要用户配置yum源,指向自建的仓库。

三、配置yum源

这一步属于用户的操作,当用户需要使用我们的yum源时,应当做此步操作。

假定我们yum仓库的地址为http://192.168.30.10, 名称为loveshell,那么我们需要在/etc/yum.repos.d/目录下创建文件lovezsh.repo, 其内容如下:

[lovezsh]name=lovezshbaseurl=http://192.168.30.10enable=1gpgcheck=0priority=1

然后,我们需要执行

$ yum clean all$ yum makecache

添加完成之后我们执行yum repolist能够开到一个名叫lovezsh的yum源

$ yum repolistLoaded plugins: fastestmirrorLoading mirror speeds from cached hostfile * base: mirrors.aliyun.com * epel: mirrors.aliyun.com * extras: mirrors.cn99.com * updates: mirror.bit.edu.cnlovezsh                                                                                                                    | 2.9 kB  00:00:00     lovezsh/primary_db                                                                                                         | 2.3 kB  00:00:00     repo id                                                repo name                                                                            statusbase/7/x86_64                                          CentOS-7 - Base                                                                      10,097epel/x86_64                                            Extra Packages for Enterprise Linux 7 - x86_64                                       13,517extras/7/x86_64                                        CentOS-7 - Extras                                                                       323lovezsh                                                lovezsh                                                                                   2updates/7/x86_64                                       CentOS-7 - Updates                                                                    1,115repolist: 25,054

不同发布方式,我们需要使用不同baseurl, 如使用文件系统,则是 file:///data/yum/repo/custom

0