自建YUM仓库

僤鯓⒐⒋嵵緔 提交于 2020-01-29 22:03:48

一、自建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.rpm
    
    0 directories, 2 files
  2. 创建repodata

    $ yum install -y createrepo
    $ createrepo /data/yum/repo/custom/
    Spawning worker 0 with 2 pkgs
    Workers Finished
    Saving Primary metadata
    Saving file lists metadata
    Saving other metadata
    Generating sqlite DBs
    Sqlite 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=lovezsh
baseurl=http://192.168.30.10
enable=1
gpgcheck=0
priority=1

然后,我们需要执行

$ yum clean all
$ yum makecache

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

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

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

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!