yum配置使用及yum repository的創建詳解

yum安裝過程簡介

    yum安裝程序時需要連接遠程服務器提供的程序包倉庫,yum會請求遠程服務器發送RPM文件,放置在本地的cache中,然後yum分析有沒有要安裝的程序包,並嘗試的依賴關係分析 ,分析完依賴關係後,yum會分析本地已經安裝的依賴文件,把剩餘沒有安裝的依賴文件列出來,並把自己當做客戶端訪問遠程服務器,在遠程服務器上下載依賴文件,下載完成後yum會先安裝被依賴的文件,最後安裝程序包,安裝完成以後刪除本地緩存中的程序包,但元數據文件(放置在特定目錄:repodate)會被保留,以便下次安裝程序查詢,如果服務器上面的程序包沒有發生改變,那麼yum cache中的元數據還將有效,如果服務器上的程序包生改變,那麼服務器上面的一塊專門記錄校驗的程序包的文件將發生改變,yum上的元數據與服務器上的校驗文件對比發現不一致,則重新下載服務器上的程序包。但有時候可能yum不能夠連接到遠程服務器,這樣的話就要手動配置yum的安裝的策略了。

yum倉庫創建

    yum其實rpm的前端管理工具。yum安裝支持的服務器有FTPHTTPNFS,要想yum安裝程序必須保證主機已經安裝了yum這個程序所有倉庫的公共配置或與倉庫無關的配置存放在/etc/yum.config,倉庫指向信息存放在/etc/yum.repos.d/*.repo這個文件裏面可能指向多個倉庫,yum會選擇最優路徑。

 下面就來介紹一下這些配置文件裏面的數據都代表着什麼

cat/etc/yum.config(部分截圖)wKiom1Z6wgaw50NjAAFfAUpmTNo318.png

        關於倉庫配置參數有以下這些常用參數

            [repositoryID]:有以下兩個參數需要填寫

                  name:倉庫的名字,儘可能取與文件相關的名字

                  baseurl:指向倉庫的訪問路徑,可指明多個url

            mirrorlist:以鏡像指明urlyum需支持此插件

            enabled={1|0}:是否啓用此倉庫,默認啓用,1爲啓用,0爲禁用

            gpgcheck={1|0}:對此倉庫內的文件安裝前是否檢測完整信息和來源合法性

            gpgkey=URL:指明祕鑰文件訪問路徑

            enablegroups={1|0}:是否允許基於組在此倉庫批量管理程序包

            failovermethod={roundrobin|priority}:故障轉移方法默認roundrobin意味隨機挑選

            cost=開銷大小默認爲1000

    yum包的名字和存放都按照者某個規範,將路徑相應的位置換成變量可以根據不同的操作系統,不同的硬件平臺,自行隨之改變下載文件的路徑,實現一個路徑可在多種不同的用戶使用。

yumrepo配置文件中可用的變量:

            $releasever:當前OS的發行版的主版本號;

            $arch:平臺

            $basearch:基礎平臺

            $YUM0-$YUM9 :可自定義變量

    參照以上參數就可以新建倉庫了,但是新建倉庫不能與已有倉庫同名,簡單的yum倉庫建立如下

[root@localhost yum.repos.d]#vim /etc/yum.repos.d/CentOS-Base.repo

wKioL1Z6wpjxYfPwAAARX_cqHgY193.png


        編輯如上即可這個一個簡單的yum倉庫就建好了,這裏的baseurl也可以指向本地的倉庫,用file:///就可以了,這裏的$relaserver表示OS發行版本$basearch表示基礎平臺。

可以用下面的命令查看

wKiom1Z6wtPQ9sbcAAApUQ4NJTk759.png

使用光盤只做yum

[root@localhost~]# mount /dev/cdrom /media/       首先將光盤掛載到本地

wKiom1Z6wvnyhNc2AAApPOdXL4Y156.png

[root@localhost~]# cd /etc/yum.repos.d/local.repo  新建一個本地倉庫源指向,做以下編輯即可。

wKioL1Z6wyqiVmLvAAANDwxz5BE719.png

製作本地yum倉庫

        首先得安裝createrepo這個程序,這個命令一般情況下默認選項也夠用,就不多做介紹,直接yum install createrrepo.這裏我就將光盤上的RPM文件拷貝到本地做yum源倉庫了,這些rpm包你也可以通過其他更多方式獲得。

[root@localhost Packages]# mkdir -p /yum/repo

[root@localhost Packages]# cp/media/Packages/*.rpm /yum/repo/

wKiom1Z6w1rSCEp2AAAZXe6HuUw635.png

wKioL1Z6w22QNT3uAABOjP_STBE490.png

這樣一個yum倉庫就算做好了。生成的repdata文件裏面的文件分別的記載了主makedata數據,rpm包名,依賴關係,安裝生成數據等。repomd.xml存放了上面幾個文件的指紋信息。

yumyum [options] [command] [package ...]

     command is one of:

      * install package1 [package2] [...]安裝程序包,一次可安裝多個,並指明版本

      * update [package1] [package2] [...]升級程序包,一次可升級多個

      * check-update檢查可用升級程序

      * distribution-synchronization [package1][package2] [...]

      * remove | erase package1 [package2][...]卸載程序包,依賴程序包也將被卸載

      * list [...]顯示倉庫中程序包支持glob風格通配符

# yum list [all| glob_exp1] [glob_exp2] [...]

顯示倉庫中所有的程序包或以glob搜索方式查看

# yum list {available|installed|updates}[glob_exp1] [...]

顯示在倉庫中未安裝的已安裝的可升級的,可用glob搜索查看

      * info [...]查看程序包的詳細信息

      * provides | whatprovides feature1[feature2] [...]查看某文件是有哪個包提供的

      * clean [ packages | metadata |expire-cache | rpmdb | plugins | all ]清理本地緩存,可選擇清理。

      * makecache構建緩存。

      * search string1 [string2] [...]根據關鍵字搜索程序包

      * reinstall package1 [package2] [...]重新安裝,即覆蓋安裝

      * downgrade package1 [package2] [...]程序包降級

      * deplist package1 [package2] [...]查看指定包的依賴關係

      * repolist [all|enabled|disabled]顯示倉庫列表

      * version [ all | installed | available |group-* | nogroups* | grouplist | groupinfo ]可打印RPMDB的詳細信息

      * groupinstall group1 [group2] [...]安裝包組

      * groupupdate group1 [group2] [...]升級包組

      * grouplist [hidden] [groupwildcard][...]查看包組

      * groupremove group1 [group2] [...]移除包組

      * groupinfo group1 [...]查看包組詳細信息

      * history[info|list|packages-list|packages-info|summary|addon-info|redo|undo|rollback|new|sync|stats]可以查看yum每次啓用的相關事物歷史,但不包括查看

yum命令行選項

      --nogpgcheck:禁止進行gpg check檢查

      -y:自動回答爲“yes

      -q:靜默模式,

      --disablerepo=repoidglob:臨時禁止此處指定repo

      --disablerepo=repoidglob:臨時啓動此處指定repo

      --noplugins:禁用所有插件

     yum雖然能解決依賴關係,但是當一次安裝被意味終止時,下次再想安裝,yum將不能判斷依賴關係,所以以後終將是要被DNF所代替的,但者並不意味着yum就不用學習瞭解,畢竟現在yum還是主流。

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