軟件包管理工具的使用及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 01:40
下一篇 2016-11-06 11:14

相關推薦

  • centos啟動流程

    1、加電自檢(power on system test POST) 加電,就是按下電源鍵使電腦主機通電,在諸多硬件設備中有一個被稱為CMOS設備在計算機啟動的過程中起到了至關重要的作用,CMOS在加電之后會啟動保存在它上面的BIOS程序,即基本輸入輸出系統(Basic Input Output System)。自檢,主要是檢測各…

    Linux干貨 2016-09-11
  • LINUX集群概念

    反向代理服務器:客戶端發現請求給反向代理服務器,反向代理服務器與后端真實服務器進行通信,并由反向代理服務器返回信息給客戶端 不同的服務,反向代理服務器使用的協議不同(如http、mysql等): 反代服務器后端的真實服務器一般是多臺服務器組成的集群 Linux Cluster:          集群:將多臺…

    Linux干貨 2017-01-10
  • 正則表達式及grep使用

    正則表達式分為:“基本正則表達式 BRE”跟“擴展正則表達式 ERE” 基本正則表達式:     (1)字符匹配               "."任意單個字符 &nbs…

    Linux干貨 2016-07-10
  • LVM基本應用,擴展以及縮減的實現

    這是一篇馬哥課堂博客作業,這次換個表現方式寫,前面先寫總體的操作過程,后面顯示詳情 其實馬哥視頻講的非常詳盡,聽起來特別容易理解,只是讓我要寫出來那得費九牛二虎之力,估計還得照著視頻寫。如下僅是看過視頻之后的一個操作過程,比較粗糙,僅僅是作業。。。 LVM:logical volume manager version2 邏輯卷管理系統 PV:physical…

    Linux干貨 2016-06-28
  • 馬哥linux 0726作業

    1,課堂練習 顯示當前日期,格式:2016-08-08 顯示前天是星期幾 設置當前日期為2008-08-08 08:00 使用字符端登陸時,顯示當前登錄終端號,主機名和當前時間 1,首先我們知道當前登錄信息的配置文件在/etc/issue中 2,然后我們查詢幫助看看issue的具體描述查到了相關的mingetty的命令當中關于當中的一些選項就是我們需要的三個…

    Linux干貨 2016-08-04
  • Hadoop簡介

    Hadoop的概要介紹 Hadoop,是一個分布式系統基礎架構,由Apache基金會開發。用戶可以在不了解分布式底層細節的情況下,開發分布式程序。充分利用集群的威力高速運算和存儲。 簡單地說來,Hadoop是一個可以更容易開發和運行處理大規模數據的軟件平臺。該平臺使用的是面向對象編程語言Java實現的,具有良好的可移植性。 Hadoop的發展歷史 &nbsp…

    Linux干貨 2015-04-13
欧美性久久久久