RPM軟體包管理器及使用

來源:互聯網
上載者:User

標籤:rpm軟體包 rpm管理器


一. RPM介紹及其組成:


1.)RPM包簡介:

rpm分為源碼包,二進位包,Delta包三種。源碼包將由rpm自動編譯,安裝。


2.)Linux中的包管理器:

dpkg:  debian發行版本的包管理器。

rpm:redhat發行版的包管理器。



3.)程式包組成部分:

二進位程式:

/bin /sbin, /usr/bin /usr/sbin, /usr/local/bin

有些特殊程式放在/libexec目錄中。

有些預設安裝在/opt目錄下。

庫檔案(開發庫,運行庫):

/lib64, /usr/lib64

設定檔:

/etc

協助檔案:

/usr/share/man

協助檔案:手冊man,資訊頁info。


4.)RPM封裝管理員:

資料庫:

程式名及版本號碼。

軟體包依賴關係。

軟體包功能說明。

安裝產生的各檔案路徑校正碼。

程式組成清單:

檔案清單。

安裝卸載時啟動並執行指令碼。


二.RPM使用操作:


1.)RPM安裝軟體包命令。

*安裝過程中會多次顯示waring key等資訊,在後面會說密鑰校正來解決。這裡暫時忽略。-i: 安裝程式包。    # rpm -i zsh-4.3.10-7.el6.x86_64.rpm     warning: zsh-4.3.10-7.el6.x86_64.rpm: Header V3 RSA/SHA1 Signature, key ID c105b9de:     NOKEY-v: 安裝時顯示詳細資料。    # rpm -iv zsh-4.3.10-7.el6.x86_64.rpm     Preparing packages for installation...    zsh-4.3.10-7.el6    -vv: 比v更加詳細的資訊。    # rpm -ivv zsh-4.3.10-7.el6.x86_64.rpm     D: ============== zsh-4.3.10-7.el6.x86_64.rpm    D: loading keyring from pubkeys in /var/lib/rpm/pubkeys/*.key    D: couldn‘t find any keys in /var/lib/rpm/pubkeys/*.key    D: loading keyring from rpmdb    D: opening  db environment /var/lib/rpm cdb:mpool:joinenv    D: opening  db index       /var/lib/rpm/Packages rdonly mode=0x0    D: locked   db index       /var/lib/rpm/Packages    D: opening  db index       /var/lib/rpm/Name rdonly mode=0x0    -h:安裝時以#號顯示安裝進度條,每個#號代表2%的進度。    # rpm -ivh zsh-4.3.10-7.el6.x86_64.rpm     Preparing...                ########################################### [100%]    1:zsh                       ########################################### [100%]       --test:測試能否安裝。    # rpm -ivh --test zsh-4.3.10-7.el6.x86_64.rpm     Preparing...                ########################################### [100%]用rpm -q 查看這個包是沒有安裝的,--test的效果出來了。    # rpm -q zsh    package zsh is not installed    --nodeps: 忽略依賴關係。    # rpm -ivh php-dba-5.3.3-26.el6.x86_64.rpm     error: Failed dependencies:    php-common(x86-64) = 5.3.3-26.el6 is needed by php-dba-5.3.3-26.el6.x86_64上面的正常安裝是沒有安裝上,顯示需要依賴php-common的包,下面的就是忽略依賴關係。不建議這麼安裝,即使安裝上,很可能也用不了。    # rpm -ivh --nodeps php-dba-5.3.3-26.el6.x86_64.rpm     Preparing...                ########################################### [100%]    1:php-dba                   ########################################### [100%]    # rpm -q php-dba    php-dba-5.3.3-26.el6.x86_64--replacepkgs: 重新安裝,重新安裝時原設定檔做過修改,可能不會執行替換,而只是把修改的設定檔重新命名為.rpmnew的檔案。    還是使用zsh這個包。    #rpm -qc zsh    /etc/skel/.zshrc    ...    修改下設定檔,在最後一行加入一個#hello word!    # rpm -ivh --replacepkgs  zsh-4.3.10-7.el6.x86_64.rpm     Preparing...                ########################################### [100%]    1:zsh                       ########################################### [100%]這個時候沒有給原來的設定檔重新命名,還是使用原來的設定檔,裡面最後一行還是hello woed。


2.)RPM卸載軟體包命令。

-e:卸載rpm包。在卸載的時候提示我有一個設定檔修改過然後給重新命名儲存了。    # rpm -e zsh    warning: /etc/skel/.zshrc saved as /etc/skel/.zshrc.rpmsave    # rpm -q zsh    package zsh is not installed


3.)升級軟體包命令。

-U:升級或安裝。    # rpm -U zsh-4.3.10-7.el6.x86_64.rpm     warning: zsh-4.3.10-7.el6.x86_64.rpm: Header V3 RSA/SHA1 Signature, key ID c105b9de:     NOKEY    package zsh-4.3.10-7.el6.x86_64 is already installed由於沒有更(gèng)新的安裝包,下面兩步就跳過了。-F:直接升級。--force:強制安裝,升級。


4.)RPM查詢操作命令。

-q: 檢查軟體包是否安裝。    # rpm -q zsh    zsh-4.3.10-7.el6.x86_64    -ap: 查詢所有安裝的軟體包。    # rpm -qa | more    system-config-firewall-base-1.2.27-5.el6.noarch    tcp_wrappers-7.6-57.el6.x86_64    sinjdoc-0.5-9.1.el6.x86_64    gtksourceview2-2.8.2-4.el6.x86_64    dejavu-fonts-common-2.30-2.el6.noarch    ...    -qi: 查詢軟體包的安裝資訊。    # rpm -qi zsh    Name        : zsh                          Relocations: (not relocatable)    Version     : 4.3.10                            Vendor: CentOS    Release     : 7.el6                         Build Date: Mon 25 Nov 2013 01:40:59 AM C    Install Date: Sun 20 Jul 2014 11:01:39 AM CST      Build Host: c6b9.bsys.dev.centos.o    Group       : System Environment/Shells     Source RPM: zsh-4.3.10-7.el6.src.rpm    Size        : 5009102                          License: BSD    Signature   : RSA/SHA1, Mon 25 Nov 2013 03:33:46 AM CST, Key ID 0946fca2c105b9de    Packager    : CentOS BuildSystem <     -ql: 查詢安裝軟體包產生的檔案。    # rpm -ql zsh | more     /bin/zsh    /etc/skel/.zshrc    /etc/zlogin    /etc/zlogout    /etc/zprofile    /etc/zshenv    /etc/zshrc    /usr/lib64/zsh    /usr/lib64/zsh/4.3.10    -qc: 查詢安裝軟體包產生的設定檔。    # rpm -qc zsh    /etc/skel/.zshrc    /etc/zlogin    /etc/zlogout    /etc/zprofile    /etc/zshenv    /etc/zshrc    -qd: 查詢安裝軟體包產生的協助檔案。    # rpm -qd zsh | more    /usr/share/doc/zsh-4.3.10/BUGS    /usr/share/doc/zsh-4.3.10/CONTRIBUTORS    /usr/share/doc/zsh-4.3.10/FAQ    /usr/share/doc/zsh-4.3.10/FEATURES    /usr/share/doc/zsh-4.3.10/LICENCE    /usr/share/doc/zsh-4.3.10/MACHINES    /usr/share/doc/zsh-4.3.10/NEWS    -q --scriptes: 查詢軟體包的相關指令碼。指令碼有四類:    安裝前指令碼。    安裝後指令碼。    卸載前指令碼。    卸載後指令碼。    # rpm -q --scripts zsh    postinstall scriptlet (using /bin/sh):    if [ ! -f /etc/shells ] ; then        echo "/bin/zsh" > /etc/shells    else        grep -q "^/bin/zsh$" /etc/shells || echo "/bin/zsh" >> /etc/shells    fi    if [ -f /usr/share/info/zsh.info.gz ]; then    # This is needed so that --excludedocs works.    ...    -qf: 查詢某檔案是由哪個軟體包產生的。     # rpm -qf /etc/zshenv      zsh-4.3.10-7.el6.x86_64     -qp: 對尚未安裝的軟體包執行查詢。    # rpm -qp zsh-4.3.10-7.el6.x86_64.rpm      zsh-4.3.10-7.el6.x86_64


5.)軟體包來源合法性,完整性校正。

rpm --import key這個時候在也沒有warning的提示了。    # rpm --import /media/RPM-GPG-KEY-CentOS-6     # rpm -qp zsh-4.3.10-7.el6.x86_64.rpm     zsh-4.3.10-7.el6.x86_64    顯示已經匯入的公開金鑰:rpm -qa gpg-pubkey*    # rpm -qa gpg-pubkey*    gpg-pubkey-c105b9de-4e0fd3a3    rpm -qi gpg-pubkey-name    # rpm -qi gpg-pubkey-c105b9de-4e0fd3a3    Name        : gpg-pubkey                   Relocations: (not relocatable)    Version     : c105b9de                          Vendor: (none)    Release     : 4e0fd3a3                      Build Date: Sun 20 Jul 2014 11:13:27 AM C    Install Date: Sun 20 Jul 2014 11:13:27 AM CST      Build Host: localhost    Group       : Public Keys                   Source RPM: (none)    Size        : 0                                License: pubkey    Signature   : (none)    Summary     : gpg(CentOS-6 Key (CentOS 6 Official Signing Key) <[email protected]    Description :    ...


三.RPM軟體包資料庫。

rpm資料庫重建:

rpm資料庫目錄:/var/lib/rpm重建:rpm --initdb:初始化,如果沒有資料庫,會建立一個,如果有,就不建立。rpm --rebuilddb: 直接重建,覆蓋原有資料庫。        # cd /var/lib/rpm        #tar czvf rpm-db.tgz ./__db00*         #rpm --rebuilddb        在網上找了下rpm資料庫的報錯資訊:    warning: waiting for transaction lock on /var/lib/rpm/__db.000    error: can‘t create transaction lock on /var/lib/rpm/__db.000這時候他們的解決辦法就是重建資料庫。


總結:

在使用卸載及查詢的時候,不要跟軟體包的全名,而是取版本號碼之前的字母進行操作。

如果真的需要重建rpm資料庫的時候,需要先備份在重建。

在安裝rpm軟體包時,如果需要安裝依賴包,要耐心的一個個安裝,或者使用yum安裝。最好不要使用強制安裝或者忽略依賴關係安裝,即使安裝成功,也可能導致軟體包不能運行。

關於第三方軟體包的安裝,最好驗證軟體包的合法性。去可靠的網站下載。




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.