RPMパッケージマネージャおよび使用


一.RPMの紹介とその構成:
1.)RPMパッケージの概要:
rpmはソースパケット,バイナリパケット,Deltaパケットの3種類に分けられる.ソースパッケージは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を使用してインストールします.強制インストールを使用したり、依存関係のインストールを無視したりしないほうがいいです.インストールに成功しても、パッケージが実行できない可能性があります.
サードパーティ製パッケージのインストールについては、パッケージの正当性を検証することが望ましい.信頼できるサイトにダウンロードします.