YUM前端程序包管理工具的使用

???在YUM沒出來之前,我們對(duì)程序包管理都是使用RPM程序包管理器(RPM家族),但RPM也有一個(gè)很大的詬病,那就是“軟件依賴屬性”問題,我們知道,RPM在打包軟件時(shí),加入了一些信息記錄功能,這些信息包括軟件版本、大小、說明、依賴性等,我們也稱為元數(shù)據(jù),然后在Linux系統(tǒng)上建立一個(gè)數(shù)據(jù)庫存儲(chǔ)這些信息,當(dāng)我們要安裝一個(gè)軟件時(shí),首先會(huì)去數(shù)據(jù)庫中查找是否存在該軟件的相關(guān)信息,如果沒有則無法安裝,這也就是軟件依賴的問題,直到Y(jié)UM出現(xiàn)該問題被很好的解決。
YUM原理:

    yum屬于C/S架構(gòu),它分為yum客戶端及yum服務(wù)端,yum服務(wù)端主要存儲(chǔ)的是rpm包及元數(shù)據(jù)(包名、
大小、依賴關(guān)系、軟件制作者等),通常我們也會(huì)把這些元數(shù)據(jù)稱為清單列表,yum服務(wù)器是對(duì)外共享的,
當(dāng)我們要下載某個(gè)程序包時(shí),yum客戶端對(duì)yum服務(wù)器發(fā)送一個(gè)指令(例如:yum isntall httpd),
yum服務(wù)器接收到該指定首先會(huì)在元數(shù)據(jù)中查找該程序包名即依賴的包是否存在,然后將查找出來的
元數(shù)據(jù)(mata_data)發(fā)送給yum客戶端(存儲(chǔ)在yum_cache緩存中),然后yum客戶端再向yum服務(wù)端
發(fā)送一個(gè)指定告知要下載的包并下載,最后整個(gè)安裝的就此結(jié)束,如圖:

10.png

配置yum倉庫:

在上面提到過在使用yum安裝程序包的時(shí)候,客戶端發(fā)送指令給yum服務(wù)器,那服務(wù)端不能莫名其妙
的就能接收指令啊,是不是需要客戶端指定一個(gè)yum服務(wù)器的路徑,對(duì)的,就是這樣,我們?cè)谑褂?yum的時(shí)候需要配置yum倉庫,里面涉及到一些相關(guān)的屬性配置,主要的兩個(gè)配置文件`/etc/yum.conf
(為所有倉庫提供的公共配置)`、`/etc/yum.repos.d/*.repo(為倉庫的指向提供配置)`,相
的屬性配置釋義可以通過man yum.conf配置文件進(jìn)行了解。

yum.conf相關(guān)參數(shù)詳解:

cachedir yum緩存及db文件目錄
keepcache 在yum安裝完整后是否要保留頭文件和yum包的緩存,不是“1”就是“0”,默認(rèn)為1,保留文件
logfile yum日志存放路徑
debuglevel 調(diào)試級(jí)別(0-10),默認(rèn)為2
exactarch 在更新的時(shí)候,是否允許更新不同版本的RPM包,比如是否在i386上更新i686的RPM包
obsoletes 這是一個(gè)update的參數(shù),具體請(qǐng)參閱yum(8),簡(jiǎn)單的說就是相當(dāng)于upgrade,允許更新陳舊的RPM包
gpgcheck 是否檢查包的簽名,不是“1”就是“0”,默認(rèn)為0,不檢查
plugins 是否允許使用插件,默認(rèn)是0不允許,但是我們一般會(huì)用yum-fastestmirror這個(gè)插件
installonly_limit 允許保留多少個(gè)內(nèi)核包
bugtracker_url bug跟蹤器,提交給錯(cuò)給給指定路徑y(tǒng)um
distroverpkg 確定發(fā)行版版本的包

配置yum倉庫:

配置yum倉庫是以.repo擴(kuò)展名結(jié)尾,放在/etc/yum.repo.d目錄下,例如我自己配置的一個(gè)yum
倉庫(11、12圖),

11.png

12.png

提示:圖12中的“7”、“x86_64可以用$releasever跟$basearch替代,這樣就更具有通用性了”

庫選項(xiàng)(也就是配置自己的庫相關(guān)參數(shù)):

Example: [repositoryid] 庫的唯一標(biāo)識(shí),相當(dāng)于身份證,圖12庫標(biāo)識(shí)為“epel”
name 倉庫名稱
baseurl 指向yum服務(wù)器的地址,這里可以指定多個(gè)地址,格式參考man yum.conf,指向的服務(wù)器可以是http://、ftp://、nfs://、file://
enabled 不是“1”就是“0”,告訴yum是否啟用該倉庫,默認(rèn)為1啟用
keepcache 覆蓋[man]中配置keepache
gpgcheck 不是“1”就是“0”,告訴yum是否檢查包的簽名,默認(rèn)為“0”
gpgkey 表示自動(dòng)從指定的路徑導(dǎo)入key,例如:file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6或者在光盤中/media/CentOS_6.10_Final/RPM-GPG-KEY-CentOS-6

....

yum用法及示例:

通過man yum獲取幫助
用法:
    yum [options] [command] [package ...]
    Options:
      -y:安裝程序包都自動(dòng)回答yes
      -nogpgcheck:禁止檢查包簽名
      -q, --quiet:運(yùn)行時(shí)沒有信息,可以跟-y一起使用
      --disablerepo=repoidglob:臨時(shí)禁止指定的倉庫,可以使用glob特性
      --enablerepo=repoidglob:臨時(shí)啟用指定的倉庫,支持glob特性
      --noplugins:禁用所有的插件

command is one of:
    install package1 [package2] [...]:安裝程序包,同時(shí)確保所有依賴都滿足,同一標(biāo)準(zhǔn)
    reinstall package1 [package2] [...]:重新安裝程序包
    update [package1] [package2] [...]:升級(jí)程序包
    downgrade package1 [package2] [...]:降級(jí)程序包
    check-update:檢查可升級(jí)的程序包
    remove | erase package1 [package2] [...]:卸載程序包
    yum list [all | glob_exp1] [glob_exp2] [...]:列出所有的程序包,可以根據(jù)glob來查詢
    yum list {available | installed | updates} [glob_exp1] [...]:列出available(可用的程序包)、已經(jīng)安裝的程序包installed、可更新的程序包
    info [...]:查看程序包的基本信息
    provides | whatprovides feature1 [feature2] [...]:查看指定的特性是由哪個(gè)程序包所提供的
    clean [ packages | metadata | expire-cache | rpmdb | plugins | all ]:清除緩存
    search string1 [string2] [...](以指定的關(guān)鍵字搜索程序包名及summary簡(jiǎn)要信息,例如:yum search "z")
    deplist package1 [package2] [...]:查詢程序包所提供的能力
    history [info|list|packages-list|packages-info|summary|addon- 
    info|redo|undo|rollback|new|sync|stats]:查看yum事務(wù)歷史
    localinstall rpmfile1 [rpmfile2] [...]:安裝本地程序包
    localupdate rpmfile1 [rpmfile2] [...] :升級(jí)本地的程序包
注意:安裝或升級(jí)本地程序包需要先下載最新的程序包到本地上然后操作
示例:
`
yum -y install zsh:安裝zsh程序包,并自動(dòng)回答yes
yum -q -y install zsh:靜默安裝zsh程序包,但不建議,中間出了問題都不知道
yum -y install zsh --disablerepo=base:安裝zsh程序包,但禁止base倉庫(如圖14)
`

4

包組的相關(guān)命令:

groupinstall(安裝包組)
    groupinstall group1 [group2] [...](用于在指定類型的組中安裝所有單獨(dú)的包)

grouplist(列出所有包組)
    grouplist [hidden] [groupwildcard] [...]

groupremove(是用來刪除一個(gè)組中的所有包)
    groupremove group1 [group2] [...]

groupinfo(用于給出組的描述和包列表以及這些包被標(biāo)記為什么類型)
    groupinfo group1 [...]

rpm源碼包編譯過程:

編譯源碼的過程通常是:
    源代碼 --> 預(yù)處理 --> 編譯--> 匯編--> 鏈接--> 執(zhí)行

源碼編譯三步曲:
    1)運(yùn)行configure腳本
    2)運(yùn)行make命令(make -j # 增加速度)
    3)執(zhí)行make install
    ①、首先在官網(wǎng)或者其它途徑獲取源代碼,解壓后進(jìn)入文件中
    ②、執(zhí)行./configure腳本,通過選項(xiàng)傳遞相關(guān)的參數(shù),指定啟用的特性(如安裝路徑),執(zhí)行時(shí)會(huì)參考用戶的指定及Makefile.in生成makefile文件
                    在執(zhí)行該腳本時(shí),會(huì)檢查外部依賴,也就是說會(huì)需要依賴其它包才能完成該步驟
    ③、執(zhí)行make指令,該步驟會(huì)根據(jù)makefile文件來判定執(zhí)行預(yù)處理器、編譯器、匯編器等操作
    ④、執(zhí)行make install安裝程序包
    ⑤、添加PATH路徑、幫助文檔路徑、頭文件等

./configure腳本中的選項(xiàng):
  --help:獲取其支持的選項(xiàng)
    選項(xiàng)分類:
      安裝路徑設(shè)定:
         --prefix=/PATH/TO/SOMEWHERE:指定默認(rèn)安裝位置。
         --sysconfigdir=/PATH/TO/SOMEWHERE:配置文件安裝位置
           System types:
            Optional Features:可選特性
               --disable-FEATURE:
                --enable-FEATURE[=ARG]

            Optional Packages:可選程序包
                 --with-PACKAGE[=ARG]
                 --without-PACKAGE

以上為yum基本用法,Thanks

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Linux程序包的管理需要依賴程序包管理工具,程序包管理工具可以實(shí)現(xiàn)程序的安裝、升級(jí)、卸載、查詢和校驗(yàn),等等相關(guān)操...
    piziyang12138閱讀 997評(píng)論 0 0
  • Linux程序包的管理需要依賴程序包管理工具,程序包管理工具可以實(shí)現(xiàn)程序的安裝、升級(jí)、卸載、查詢和校驗(yàn),等等相關(guān)操...
    數(shù)據(jù)萌新閱讀 1,104評(píng)論 0 3
  • Linux程序包的管理需要依賴程序包管理工具,程序包管理工具可以實(shí)現(xiàn)程序的安裝、升級(jí)、卸載、查詢和校驗(yàn),等等相關(guān)操...
    Dream_wdl閱讀 704評(píng)論 0 3
  • Linux程序包的管理需要依賴程序包管理工具,程序包管理工具可以實(shí)現(xiàn)程序的安裝、升級(jí)、卸載、查詢和校驗(yàn),等等相關(guān)操...
    數(shù)據(jù)萌新閱讀 793評(píng)論 0 1
  • Linux程序包的管理需要依賴程序包管理工具,程序包管理工具可以實(shí)現(xiàn)程序的安裝、升級(jí)、卸載、查詢和校驗(yàn),等等相關(guān)操...
    Arroganter閱讀 1,053評(píng)論 0 2

友情鏈接更多精彩內(nèi)容