YUM 主要用於自動安裝、升級 rpm 軟件包,它能自動查找並解決 rpm 包之間的依賴關係。要功的使用 YUM 工具安裝更新軟件或系統,就須要有一個包含各類 rpm 軟件包的 repository(件倉庫),這個軟件倉庫咱們習慣稱爲 yum 源。網絡上有大量的 yum 源,但因爲受到網絡環的限制,致使軟件安裝耗時過長甚至失敗。特別是當有大量服務器大量軟件包須要安裝時,慢的進度條使人難以忍受。所以咱們在優化系統時,都會更換國內的源。相比較而言,本地 YUM 源服務器最大優勢是局域網的快速網絡鏈接和穩定性。有了局域網中YUM 源服務器,即使在 Internet 鏈接中斷的狀況下,也不會影響其餘 YUM 客戶端的軟件安裝升級。html
1.YUM是什麼?python
YUM(Yellow Dog Updater Modified)爲多個 Linux 發行版的軟件包管理器,例如 Redhad RHEL、CentOS & Fedora。YUM 主要用於自動安裝,升級 rpm 軟件包,他能自動查找並解決 rpm 包的依賴關係,YUM 自動下載 YUM 包並安裝,相似軟件管家的一鍵安裝功能。linux
2.YUM源是什麼web
(1)要成功的使用 YUM 工具安裝更新軟件或系統,就須要有一個包含各類 rpm 軟件包的repository(軟件倉庫),這個軟件倉庫咱們習慣稱爲 yum 源,
(2)網絡上有大量的 yum 源,但因爲受到網絡環境的限制,致使軟件安裝耗時過長甚至失敗,特別是當有大量服務器大量軟件包須要安裝時,緩慢的進度條使人難以忍受,所以咱們在優化系統時,都會更換國內的源
(3)相比較而言,本地 YUM 源服務器最大優勢是局域網的快速網絡鏈接和穩定性,有了局域網中的 YUM 源服務器,即使在 Internel 鏈接中斷的狀況下,也不會影響其餘 YUM 客戶端的軟件安裝和升級。數據庫
系統:CentOS6.5vim
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
...... //部份內容省略