一、自建YUM倉庫
當網絡不好時,或者說根本鏈接不上官方yum倉庫,以及第三方yum倉庫(zabbix源)等,我們就需要自建一個yum倉庫來滿足我們需要。除了網絡條件以外,還有我們生產環境需要發佈,更新自己軟件,我們可以將這些軟件打包成RPM包,放到自己的倉庫,然後在各個機器執行yum更新。
1.1 使用一些RPM包自建一個YUM倉庫
-
在目錄
/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
-
創建
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方式發佈
-
在yum倉庫所在機器搭建Nginx
$ yum install -y nginx
-
將
/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; } }
-
重啓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