自建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.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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章