軟件包管理工具的使用及yum源倉庫的配置

我們知道CentOS,本質上是RedHat的社區版,其無論是功能還是軟件配置上都與RedHat保持一致,因此CentOs系列的軟件包管理主要的也是rpm和yum工具。

RPM包管理

rpm包管理工具可以說是歷史悠久、名聲斐然了。rpm起初是RedHat公司研發的軟件包管理工具,即RedHat Package Managemer。但由于其性能突出,在開源界得到了各大Linux發行廠商的認同,被推崇為公認的行業標準,因此rpm也改為遞歸稱呼RPM Package Manager。

雖然現在的標準CentOS系統都有yum可以使用,rpm工具似乎已經無用武之地,但作為yum利器的基礎軟件,在某些情況下還是很需要掌握的。尤其是當我們安裝一個單獨的外來rpm軟件包的時候,直接使用rpm進行安裝明顯要好很多。

安裝

    rpm {-i|–install} [install-options] PACKAGE_FILE…  

        #尤其需要注意的是這里使用的是rpm包文件的全名

        -v:  顯示安裝過程信息

        -h:  以# 顯示程序包管理執行進度

        –test:  測試安裝,但不真正執行安裝;dry run 模式

        –nodeps :忽略依賴關系

        –replacepkgs | replacefiles :替換原來的安裝包或文件

        –nosignature:  不檢查來源合法性

        –nodigest :不檢查包完整性

        –noscripts :不執行程序包腳本

升級/更新

    rpm {-U|–upgrade} [install-options]  PACKAGE_FILE …

    rpm {-F|–freshen} [install-options]   PACKAGE_FILE …

        upgrade :安裝有舊版程序包,則“升級”;如果不存在舊版程序包,則“安裝”

        freshen :安裝有舊版程序包,則“升級”;如果不存在舊版程序包,則不執行升級操作

    –oldpackage :降級

    –force : 強制安裝

注意:在Linux下同一軟件的不同版本可以共存,這在某些情況下是非常方便的,尤其是當需要在某個軟件的兩個版本之間進行頻繁切換的時候。另外?。。∩a環境中,針對系統內核一定要謹慎升級,可以重新安裝,讓兩個版本的內核并存,避免新內核不穩定造成嚴重影響。

查詢

    rpm {-q|–query} [select-options] [query-options] [select-options]

        -a:  所有已經安裝的軟件包

        -f:  查看系統上指定的文件由哪個程序包安裝生成

        -p:對尚未安裝的程序包文件進行查詢,需要加上-p選項

        –whatprovides CAPABILITY :查詢指定的CAPABILITY由哪個包所提供

        –whatrequires CAPABILITY :查詢指定的 CAPABILITY 被哪個包所依賴

        –changelog :查詢rpm 包的changelog

        -c:  查詢程序的配置文件

        -d:  查詢程序的文檔

        -i: information

        -l:  查看指定的程序包安裝后生成的 所有文件

        –scripts :程序包自帶 的腳本

        -R|–requires:  查詢指定的程序包所依賴的 CAPABILITY

        –provides:  列出指定程序包所提供的 CAPABILITY

卸載

    rpm {-e|–erase}[–allmatches][–nodeps][–noscripts][–notriggers][–test] PACKAGE_NAME…

校驗

    rpm {-V|–verify} [select-options] [verify-options]  對安裝后的軟件進行校驗

    校驗結果各字符的含義:

        S  文件大小發生改變

        M  Mode 改變(包括權限和文件類型)

        5  MD5校驗發生改變

        D  設備號不匹配

        L  readLink(2) 路徑不匹配

        U  User 信息發生改變

        G  Group 信息發生改變

        T  mTime 改變

        P  capabilities 發生改變

    rpm -K|checksig rpmfile 軟件包文件的校驗,需要提前導入密鑰文件

    rpm –import / etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

YUM管理工具

使用過yum的人,信息都不想再繼續用rpm來進行軟件的安裝,最主要的原因就是yum很好的解決了軟件安裝過程中的包依賴關系,讓軟件的安裝不再那么“痛苦”,尤其是當我們在安裝過程中被各種依賴搞得焦頭爛額卻仍然無法搞定的時候,一條yum命令卻可以輕松解決。這么神奇的工具是如何實現的呢?

YUM: Yellowdog Update Modifier,是Yellowdog公司開發出來的rpm前端程序,能夠很好的解決軟件包安裝過程中的相互依賴關系。Yum是構建在rpm基礎之上的,所以沒有rpm,yum也是無法使用的。要想更好的使用yum,需要進行提前配置的(系統默認已經進行配置,我們也可以根據自己需要進行修改),yum的配置主要分為客戶端和服務端(在后面部分會講解相關配置)。

安裝程序包:

    yum install package1 [package2] […]  注意:這里用的是軟件包名,不是軟件包的文件名

    yum reinstall package1 [package2] […]  重新安裝

        –nogpgcheck :禁止進行gpg check

        -y:  自動回答為“yes”

        -q :靜默模式

        –noplugins :禁用所有插件

升級程序包:

    yum update [package1] [package2] […]

    yum downgrade package1 [package2] […]   降級

檢查可用升級:

    yum check-update

卸載程序包:

    yum remove | erase package1 [package2] […]

安裝及升級本地程序包:

    yum localinstall rpmfile1 [rpmfile2] […]   ( 用install 替代)

    yum localupdate rpmfile1 [rpmfile2] […]  ( 用update 替代)

包組管理的相關命令:

    yum groupinstall group1 [group2] […]

    yum groupupdate group1 [group2] […]

    yum grouplist [hidden] [groupwildcard] […]

    yum groupremove group1 [group2] […]

    yum groupinfo group1 […]

查看程序包information: :

    yum info […]  查看指定的特性(可以是某文件)由哪個程序包所提供:

    yum provides | whatprovides feature1 [feature2][…]

搜索:

    yum search string1 [string2] […] 以指定的關鍵字搜索程序包名及summary 信息

查看指定包所依賴的capabilities: :

    yum deplist package1 [package2] […]

查看yum 事務歷史:

    yum history [info|list|packages-list|packages-info|summary|addon-info|redo|undo|rollback|new|sync|stats]

    yum history

    yum history info 6

    yum history undo 6

顯示倉庫列表:

    yum repolist [all|enabled|disabled]

顯示程序包:

    yum list

    yum list [all | glob_exp1] [glob_exp2] […]

    yum list {available|installed|updates} [glob_exp1][…]

清理本地緩存:

    yum clean [ packages | metadata | expire-cache |rpmdb | plugins | all ]

構建緩存:

    yum makecache

YUM倉庫的配置

yum倉庫主要分為兩部分,一部分是rpm軟件包,一部分是yum配置文件repodata。可以將兩者放在一個目錄,當然為了便于管理,我們還是建議兩者分開。

第一步,創建目錄結構。那么首先我們創建一個yum倉庫的目錄centos,如果你同時為多個版本(如centos6和7)提供yum源,那么可以在centos目錄下分別創建目錄(目錄6和7),然后分別創建yum倉庫;如果只是為單一版本提供yum源,可以直接在centos目錄創建yum倉庫,我們這里以centos7為例。進入到要創建yum倉庫的目錄,創建一個軟件包的存放目錄Packages(名稱可以自己定義)。

第二步,獲取rpm軟件包。rpm軟件包,可以從光盤、官方網站、第三方獲取,或自己制作rpm軟件包,把我們獲取到的rpm軟件包移到Packages目錄下。

第三步,創建配置文件。當以上步驟準備就緒以后,我們就可以使用createrepo命令來創建yum倉庫的配置文件repodata了。命令格式如下:

createrepo  [/PATH/TO/REPODATA]  [/PATH/TO/RPM_PACKAGES/]

createrepo centos/7 centos/7/Packages

至此,我們的yum倉庫服務端已經配置好了,最終的目錄結構如下圖。是不是感覺很簡單呢?當然,如果你想通過網絡為更多的人提供yum源服務,那就需要配置ftp或http web服務了,只需要將我們配置好的yum倉庫放置在我們提供服務的相應目錄里即可。

Image 1.jpg

YUM客戶端的配置

yum客戶端的配置文件在/etc/yum.repos.d/目錄中,默認系統已經提供了大部分的官方網絡yum源配置,當然大家也可以使用我們自己配置的yum源。這里需要我們創建一個以.repo結尾的配置文件,并編輯文件的內容,格式如下:

[CentOS7]

name=CentOS7 base repo

baseurl=file:///misc/cd/

gpgcheck=1

gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS7

enabled=1

[CentOS7]  這個是yum倉庫的ID,名稱可以自己定義,但在系統中需要是唯一的,不能重復

name=  這個是yum倉庫的描述信息,可以沒有

baseurl=  這個是yum源repodata父目錄的位置,有本地file://或網絡ftp://或http://三種形式

gpgcheck=  這個說明對于安裝的軟件是否要進行校驗,1為校驗,0為不校驗

gpgkey=  指定gpgcheck校驗碼的位置;如果gpgcheck為1,則該項必須填寫,并且正確

enabled=  該項指明該倉庫是否可用,1為可用,0為不可用

該例中,我們的yum倉庫位于本機/misc/cd目錄下,該目錄下有rpm軟件包目錄Packages和配置文件目錄repodata兩個子目錄,因此使用baseurl=file:///misc/cd指明路徑。

當配置好本地客戶端以后,使用yum clean all命令清理一下yum緩存,這樣我們就可以愉快的使用yum了。

原創文章,作者:M21-張國輝,如若轉載,請注明出處:http://www.www58058.com/57835

(2)
M21-張國輝M21-張國輝
上一篇 2016-11-06
下一篇 2016-11-06

相關推薦

  • 進程管理

    Process Manager 工作管理  jobs ctrl+z,& bg,fg nohup 進程,資源管理  查看:pstree,ps,top,vmstat,pmap 查詢:pgrep,pidof,fuser,lsof 管理:kill,nice,renice 管理軟件or命令  htop glances dstat …

    Linux干貨 2016-04-11
  • 基于NFS服務的mariadb數據庫實現

    實驗要求:     (1) nfs server導出/data/目錄;     (2) nfs client掛載/data/至本地的/mydata目錄;本地的mysqld或mariadb服務的數據目錄設置為/mydata, 要求服務能正常啟動,且可正常 存儲數據;   (3)用另一臺主機,…

    2017-06-11
  • linux目錄管理之整合篇

    目錄配置:     1,根目錄,所有目錄都由根目錄衍生出,與開機,還原,系統修復等操作有關。     2,根目錄下各子目錄應存放的文件。             I,/bin和/sbin目錄,/bin放置的是單用戶維護模式下能被操作的命令,可以被root和一般…

    Linux干貨 2017-05-29
  • nfs 安裝及基于 nfs 安裝部署 mysql 與 httpd

    nfs安裝及基于nfs安裝部署mysql以及httpd.pdf

    Linux干貨 2016-11-07
  • 優云Monitor:開啟數據中心主機運維的上帝視角

    常常有這么一句話在激勵每一位運維人員,“不以故障多為恥,而以恢復快為榮。”運維人員就是要快速定位問題,分析問題,排除故障,快速恢復來保障生產業務不受中斷。然而,現代大型數據中心,運維人員要管理的系統節點比以前繁多,為了掌控數據中心的實時運行情況與定位問題,需要花的時間成本已經長得無法接受。 而優云Monitor給運維人員提供了極好的可視化手段,能夠讓運維人員…

    系統運維 2017-01-09
  • ansible自動化運維工具使用詳解

    一、ansible簡介   1.ansible        ansible是新出現的自動化運維工具,基于Python研發。糅合了眾多老牌運維工具的優點實現了批量操作系統配置、批量程序的部署、批量運行命令等功能。僅需在管理工作站上安裝ansible程序配置被管控主機的IP信息,被…

    2016-04-30
欧美性久久久久