我的學習記錄--Linux (CentOS) 程式安裝包管理,rpm

來源:互聯網
上載者:User

標籤:rpm 安裝包管理

概述:

    因為一個應用程式是由很多檔案所組成,所以安裝卸載非常複雜,為了讓使用者更加方便的管理應用程式。所以引入了程式打包管理。主要包括:安裝,卸載,升級,查詢,檢驗。


常見的包管理器:

.deb: Debian研發

.rpm: Red Hat研發(Linux上的包管理器公用標準,故我學習的為rpm)


常見的CPU平台:(所以選擇應用程式安裝的時候,一定選擇和自己CPU所匹配的版本)

x86:i386, i486, i586, i686

x86_64: x86_64, amd64


分包機制:

核心包:主包,主要程式。

子包:為程式增加附加功能的包。


程式包擷取途徑:(務必在正規渠道獲得程式包)

1、系統的發行光碟片鏡像或官方網站(或鏡像伺服器)

    推薦網站:

        http://mirrors.sohu.com

        http://mirros.163.com

        http://mirros.aliyun.com

2、程式包的官方網站

3、可信任的第三方組織

4、程式包搜尋引擎

    推薦網站:

        http://rpmfind.net

        http://rpm.pbone.net

---------------------------------------------------------

準備實驗環境:

    1.準備CentOS6.6虛擬機器

    2.掛載CentOS6.6系統光碟片DVD1

    650) this.width=650;" src="http://s3.51cto.com/wyfs02/M01/5E/1C/wKiom1UpJ-eAnCRYAAB3H-ruDWU654.jpg" title="1.jpg" alt="wKiom1UpJ-eAnCRYAAB3H-ruDWU654.jpg" />


rpm命令:


安裝:(安裝新的程式包)

    rpm -i [install-options] PACKAGE_FILE1 ...      

            -h:hash,以#號來表示安裝進度

    -v:顯示安裝過程中的詳細資料

-vv:詳細

-vvv:更詳細

            --test:不執行真正的安裝過程,而僅報告依賴關係及衝突資訊

     650) this.width=650;" src="http://s3.51cto.com/wyfs02/M00/5E/1C/wKiom1UpKsvA2r-MAADBndXvUUg148.jpg" title="2.jpg" alt="wKiom1UpKsvA2r-MAADBndXvUUg148.jpg" />

    程式包之間是存在依賴關係的:因為程式包是由眾多目的單一的小程式組成,結果導致他們之間存在相關性,所以有時候安裝某個程式的時候,它會提示你缺少某些包。如下:

    650) this.width=650;" src="http://s3.51cto.com/wyfs02/M01/5E/1C/wKiom1UpLFSiJGMlAAEB27aMqBI531.jpg" title="3.jpg" alt="wKiom1UpLFSiJGMlAAEB27aMqBI531.jpg" />

            --nodeps:忽略依賴關係(能安裝成功,但未必能運行)

            --replacepkgs:覆蓋安裝(重新安裝,並覆蓋原有檔案)

            --force:強制安裝

升級:(升級已經安裝的程式包)

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

        -U:升級或安裝(若已安裝則升級,若未安裝則安裝)

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

        -F:僅升級

        -v,-h,--test,--nodeps,--force 常用選項用法同上

        --oldpackage:降級到舊版本

    注意:

        1.一定不要對核心執行升級!

        2.一般來說升級不會覆蓋使用者修改過的設定檔,新設定檔名會加尾碼(rpmnew)儲存


卸載:(移除已經安裝的程式包)

    rpm {-e|--erase} [--allmatches] [--nodeps] [--test] PACKAGE_NAME ...

        rpm -e PACKAGE_NAME... :卸載,簡單用法

        --nodeps:忽略依賴關係

        --test:卸載測試

        --allmatches:若一個程式包安裝有多個版本,則卸載所有版本

    注意:若程式包設定檔曾被修改,卸載時,設定檔不會刪除,會加尾碼(rpmsave)儲存


查詢:(查詢某包是否安裝,以及檢查安裝的所有包,查看某包資訊)

    rpm {-q|--query} [select-options] [query-options] PACKAGE_NAME ...

        [select-options]:

            1.查詢某包或某些包是否安裝

                rpm -q PACKAGE_NAME...

                

            2.查詢已經安裝的所有包

                rpm -qa

            3.查詢某檔案是由哪個包安裝產生(如:inittab這個檔案則是由initscripts這個包產生)

                rpm -qf /PATH/TO/SOMEFILE

                650) this.width=650;" src="http://s3.51cto.com/wyfs02/M02/5E/18/wKioL1UpNouzGl11AABTiTjVO4w984.jpg" title="4.jpg" alt="wKioL1UpNouzGl11AABTiTjVO4w984.jpg" />

            4.查詢尚未安裝的包檔案的相關資訊

                rpm -p (通常組合以下選項使用)

                    -pqi 未安裝包簡要資訊

                    -pqc 未安裝包產生的設定檔

                    -pql 未安裝包將產生的檔案清單

        [query-options]:

            1.查詢某包的簡要說明資訊

                rpm -qi PACKAGE_NAME

            2.查詢某包安裝產生的檔案清單

                rpm -ql PACKAGE_NAME

            3.查詢某包安裝完成後產生的設定檔

                rpm -qc PACKAGE_NAME

            4.查詢某包安裝完成後產生的協助檔案

                rpm -qd PACKAGE_NAME

            5.查看程式曆史版本以及改版的資訊

                rpm -q --changelog PACKAGE_NAME

            6.查詢某包提供的capabilities(功能,能力)

                rpm -q --provides PACKAGE_NAME

            7.查詢某包所依賴的capabilities(查詢依賴關係)

                rpm -q --requires PACKAGE_NAME

            8.查詢某包安裝或卸載時執行的指令碼

                rpm -q --scripts PACKAGE_NAME


校正:(查詢包安裝產生的檔案是否發生了改變)

        rpm {-V|--verify} [select-options] [verify-options]

        

    常見用法:rpm -V PACKAGE_NAME

        S file Size differs  檔案大小改變

        M Mode differs (includes permissions and file type) 許可權改變

5 digest (formerly MD5 sum) differs 內容改變

D Device major/minor number mismatch 主次裝置號改變

L readLink(2) path mismatch

U User ownership differs屬主

G Group ownership differs屬組

T mTime differs 修改時間

P caPabilities differ

             650) this.width=650;" src="http://s3.51cto.com/wyfs02/M01/5E/28/wKiom1UpRNLzGXxZAAA1UE9DLQw409.jpg" title="6.jpg" alt="wKiom1UpRNLzGXxZAAA1UE9DLQw409.jpg" />


程式包的合法性驗證:

      來源合法:

  由我們信任的製作者提供

  依賴於:製作者的數位簽章;簽名是作者使用自己的私密金鑰加密程式包的特徵碼進行的;

      內容合法:

  包未被二次修改;完整性校正成功

  依賴於:製作者提供的程式特徵碼:

  驗證方式:安裝者用通用的特徵碼提取演算法提取程式包的特徵碼,並與原作者提供的相比較;如果一樣則說明內容合法;

      驗證其光碟片中程式包的來源及完整性:

    匯入公開金鑰:rpm -import /path/to/RPM-GPG-KEY-FILE

            驗證:rpm {-K|--checksig} PACKAGE FILE

            650) this.width=650;" src="http://s3.51cto.com/wyfs02/M01/5E/2B/wKiom1UpS-CTKlNVAAFnwE1gr3Q034.jpg" title="8.jpg" alt="wKiom1UpS-CTKlNVAAFnwE1gr3Q034.jpg" />

            --nosignnature:不檢查來源合法性

    --nodigest:不檢查完整性

rpm管理器資料庫:/var/lib/rpm(每安裝一個程式,安裝資訊都會存放在此目錄下)

      重建資料庫:

            --initdb:初始化資料庫,即資料庫完全不存在,可建立之;

    --rebuilddb:無論當前資料存在否,都會直接重建此庫;


本文出自 “Linux” 部落格,請務必保留此出處http://laoliao.blog.51cto.com/10027070/1631414

我的學習記錄--Linux (CentOS) 程式安裝包管理,rpm

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.