搭建YUM倉庫


概述

  YUM 主要用於自動安裝、升級 rpm 軟件包,它能自動查找並解決 rpm 包之間的依賴關系。要功的使用 YUM 工具安裝更新軟件或系統,就需要有一個包含各種 rpm 軟件包的 repository(件倉庫),這個軟件倉庫我們習慣稱為 yum 源。網絡上有大量的 yum 源,但由於受到網絡環的限制,導致軟件安裝耗時過長甚至失敗。特別是當有大量服務器大量軟件包需要安裝時,慢的進度條令人難以忍受。因此我們在優化系統時,都會更換國內的源。相比較而言,本地 YUM 源服務器最大優點是局域網的快速網絡連接和穩定性。有了局域網中YUM 源服務器,即便在 Internet 連接中斷的情況下,也不會影響其他 YUM 客戶端的軟件安裝升級。

1.YUM是什么?

  YUM(Yellow Dog Updater Modified)為多個 Linux 發行版的軟件包管理器,例如 Redhad RHEL、CentOS & Fedora。YUM 主要用於自動安裝,升級 rpm 軟件包,他能自動查找並解決 rpm 包的依賴關系,YUM 自動下載 YUM 包並安裝,類似軟件管家的一鍵安裝功能。

2.YUM源是什么

(1)要成功的使用 YUM 工具安裝更新軟件或系統,就需要有一個包含各種 rpm 軟件包的repository(軟件倉庫),這個軟件倉庫我們習慣稱為 yum 源,
(2)網絡上有大量的 yum 源,但由於受到網絡環境的限制,導致軟件安裝耗時過長甚至失敗,特別是當有大量服務器大量軟件包需要安裝時,緩慢的進度條令人難以忍受,因此我們在優化系統時,都會更換國內的源
(3)相比較而言,本地 YUM 源服務器最大優點是局域網的快速網絡連接和穩定性,有了局域網中的 YUM 源服務器,即便在 Internel 連接中斷的情況下,也不會影響其他 YUM 客戶端的軟件安裝和升級。

搭建內網中的YUM源

系統:CentOS6.5

YUM 源配置文件的存放路徑

[root@aery ~]# cd /etc/yum.repos.d/
[root@aery yum.repos.d]# ls
CentOS-Base.repo CentOS-Base.repo.bak
CentOS-Media.repo CentOS-Debuginfo.repo 
CentOS-Vault.repo

對比修改后的 YUM 源與原 YUM 配置文件的區別

[root@aery yum.repos.d]# vimdiff CentOS-Base.repo CentOS-Base.repo.bak

服務端配置

1. 創建目錄用來做YUM倉庫使用

[root@aery ~]# mkdir /yum_source
[root@aery ~]# cd /yum_source/
[root@aery yum_source]# 
  # 上傳 rpm 包到此目錄,此目錄下面還可以包括文件夾
  獲取 rpm 軟件包的幾種方法
   (1) 開啟 YUM 緩存
   (2) yumdownloader pcre-devel openssl-devel # 只下載軟件不安裝,作為忘記開啟YUM 緩存的補救手段

 我們這里使用系統光盤中的RPM包作為我們YUM倉庫的YUM源文件

[root@aery yum_source]# mount /dev/cdrom /mnt/            //掛載系統光盤
[root@aery yum_source]# cp /mnt/Packages/* /yum_source/        //將光盤下的所有rpm包拷貝到我們創建的YUM倉庫的目錄下

2. 安裝 createrepo 軟件,用於生成 yum 倉庫數據庫的軟件

[root@aery ~]# yum -y install createrepo        //安裝createrepo(YUM倉庫軟件)軟件
[root@aery ~]# rpm -q createrepo            //檢查軟件是否安裝

3. 初始化 repodata 索引文件(每次發布新的內容都需要更新)

更多createrepo命令的使用參考:http://linux.51yip.com/search/createrepo

[root@aery ~]# createrepo -pdo /yum_source/ /yum_source/        //初始化
Spawning worker 0 with 3995 pkgs
......        //部分內容省略
Sqlite DBs complete
[root@aery ~]# createrepo --update /yum_source/                //每加入一個rpm包就要更新一次

4. 使用 python 命令開啟 80 端口,(要求在 rpm 的路徑下執行此命令,)此命令的功能就是通過瀏覽器把內容發布出去

[root@aery ~]# cd /yum_source/
[root@aery yum_source]# python -m SimpleHTTPServer 80 &> /dev/null &
[1] 3729

5. 提供 web 服務查看 80 端口是否開啟

[root@aery yum_source]# lsof -i :80
COMMAND  PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
python 3729 root    3u  IPv4  29903      0t0  TCP *:http (LISTEN)

打開瀏覽器測試

客戶端配置

[root@aery ~]# curl -I 192.168.1.105                //檢查 YUM 發布的頁面客戶端是否可以訪問
HTTP/1.0 200 OK
Server: SimpleHTTP/0.6 Python/2.6.6
Date: Sat, 23 Sep 2017 09:51:43 GMT
Content-type: text/html; charset=UTF-8
Content-Length: 376140

[root@aery ~]# cd /etc/yum.repos.d/                //切換到 yum 配置文件
[root@aery yum.repos.d]# mkdir bak                //創建一個存放暫時不用的yum源配置文件目錄
[root@aery yum.repos.d]# mv CentOS-Debuginfo.repo CentOS-Media.repo CentOS-Vault.repo bak/    //將暫時不用的yum源配置文件移動到其他目錄
[root@aery yum.repos.d]# > CentOS-Base.repo             //清空 yum 配置文件
[root@aery yum.repos.d]# vim CentOS-Base.repo             //編輯 YUM 配置文件
 [inside] 
 name=inside yum source
 baseurl=http://192.168.1.105
 enabled=1
 gpgcheck=0

[root@aery yum.repos.d]# yum clean all                //需要先清除 yum 以前的緩存
Loaded plugins: fastestmirror, refresh-packagekit, security
Cleaning repos: inside
Cleaning up Everything
[root@aery yum.repos.d]# yum makecache                //更新 YUM 緩存

 安裝DNS服務測試

[root@aery ~]# yum -y install bind
Loaded plugins: fastestmirror, refresh-packagekit, security
Loading mirror speeds from cached hostfile
Setting up Install Process
Resolving Dependencies
--> Running transaction check
---> Package bind.x86_64 32:9.8.2-0.17.rc1.el6_4.6 will be installed
--> Finished Dependency Resolution
...... //部分內容省略

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM