rpm:過小評価されたツール


Linuxシステムを使い始めたばかりの頃は、LinuxシステムとWindowsシステムを比較するのが好きで、Linuxシステムはいろいろ使いにくいと感じました.例えば、
  • にはグラフィックインタフェースがありません.XwindowスイートをインストールしてWindowsのようなグラフィックインタフェースを実現することもできますが、まだいろいろな適応がありません.最も重要なのは、サーバシステムとして使用されているLinuxのほとんどがXwindowsスイートをインストールしていないことです.
  • 真っ暗なコマンドラインに直面して、私はどのようなソフトウェアが利用できるか知っていますか?Windowsシステムには少なくともコントロールパネルがあり、どんなソフトウェアがインストールされているかは一目瞭然です.
  • Windowsの常用ソフトは何に使うのかよく知っていますが、Linuxの中のソフトは以前見たことがありません.私はどうしてそれが何をしているのか、いつインストールされたのか、どのパッケージから来たのか知っていますか.
  • ソフトウェアをダウンロードしましたが、インストールする前にどのようにしてその情報を知っていますか?

  • 以上の疑問はrpmコマンドで答えを見つけることができます.

    概要


    rpm、すなわちRadhet Package Manager、レッドキャップパッケージマネージャ.最初は赤い帽子のオペレーティングシステムのために開発したパッケージ管理プログラムで、このツールを利用して以前のソースパッケージのインストール過程を簡略化して、パッケージ管理の標準化を実現して、redhatシステムのパッケージ管理を更に容易にして、システム管理の敷居を下げました.このツールは現在、すべてのRadhetシリーズのLinuxシステムで使用されています.ここでは、ソースパッケージのインストール手順を簡単に振り返ります.Linuxシステムのオープンソース遺伝子とLinuxシステムの分岐の多様性のため、以前のLinuxシステムのソフトウェアの発表はすべて直接ソースコードを発表して、つまり:ソースコードを直接パッケージして、ネット上に発表してあるいは必要な人に送ります.ソフトウェアをインストールするときは、自分が使用しているシステムに基づいて、個性的なパラメータを設定し、まずコンパイルを行い、コンパイルが完了してからインストールする必要があります.ソースパケットの方式、利点は:
  • ソフトウェアの配布者は手間が省け、自分でコンパイルしたりパッケージしたりする必要はありません.
  • ソフトウェアの互換性は良好であり、このソフトウェアを使用するシステム上でコンパイルされるため、現在のオペレーティングシステムによりよく適応することができる.
  • はカスタマイズ性が高く、同様に自分でコンパイルするため、ソフトウェアが許容する範囲内で、自分のニーズを最大限に満たすことができる.

  • 対照的に、これらの利点はrpmパケット管理の欠点である.しかし、欠点は隠さず、rpmの機能は強い.

    適用シーン1:使用可能なソフトウェアを見てみましょう

    #             
    rpm -qa |less	#              ,   less  ,        。
    ……
    kernel-tools-3.10.0-957.el7.x86_64
    keyutils-libs-1.5.8-3.el7.x86_64
    btrfs-progs-4.9.1-1.el7.x86_64
    p11-kit-trust-0.23.5-3.el7.x86_64
    rootfiles-8.1-11.el7.noarch
    iwl5000-firmware-8.83.5.1_1-69.el7.noarch
    libblkid-2.23.2-59.el7.x86_64
    :
    

    パラメータ解析:-q#クエリーモード;-a#すべてのソフトウェアを問い合わせる;

    適用シーン2:ソフトウェアの基本情報を表示する

    [root@lnmp1 ~]# rpm -qi yum	#  yum       。
    Name        : yum
    Version     : 3.4.3		#    
    Release     : 161.el7.centos	#      
    Architecture: noarch
    Install Date: 2019 11 13      18 17 11 	#    
    Group       : System Environment/Base
    Size        : 5824869
    License     : GPLv2+
    Signature   : RSA/SHA256, 2018 11 12      23 27 16 , Key ID 24c6a8a7f4a80eb5
    Source RPM  : yum-3.4.3-161.el7.centos.src.rpm	#     
    Build Date  : 2018 11 05      09 54 01 	#      
    Build Host  : x86-01.bsys.centos.org
    Relocations : (not relocatable)
    Packager    : CentOS BuildSystem <http://bugs.centos.org>
    Vendor      : CentOS
    URL         : http://yum.baseurl.org/
    Summary     : RPM package installer/updater/manager	#    
    Description :			#          。
    Yum is a utility that can check for and automatically download and
    install updated RPM packages. Dependencies are obtained and downloaded
    automatically, prompting the user for permission as necessary.
    

    パラメータ解析:-i#ソフトウェア関連情報を表示する;

    アプリケーションシーン3:ソフトウェアがインストールされているときにインストールされているファイルを表示します。

    [root@lnmp1 ~]# rpm -ql yum	
    /etc/logrotate.d/yum
    /etc/yum
    /etc/yum.conf
    /etc/yum.repos.d
    /etc/yum/fssnap.d
    /etc/yum/pluginconf.d
    /etc/yum/protected.d
    /etc/yum/vars
    /etc/yum/version-groups.conf
    /usr/bin/yum
    /usr/lib/python2.7/site-packages/rpmUtils
    /usr/lib/python2.7/site-packages/rpmUtils/__init__.py
    /usr/lib/python2.7/site-packages/rpmUtils/__init__.pyc
    /usr/lib/python2.7/site-packages/rpmUtils/arch.py
    /usr/lib/python2.7/site-packages/rpmUtils/arch.pyc
    /usr/lib/python2.7/site-packages/rpmUtils/miscutils.py
    /usr/lib/python2.7/site-packages/rpmUtils/miscutils.pyc
    /usr/lib/python2.7/site-packages/rpmUtils/oldUtils.py
    /usr/lib/python2.7/site-packages/rpmUtils/oldUtils.pyc
    /usr/lib/python2.7/site-packages/rpmUtils/transaction.py
    /usr/lib/python2.7/site-packages/rpmUtils/transaction.pyc
    /usr/lib/python2.7/site-packages/rpmUtils/updates.py
    /usr/lib/python2.7/site-packages/rpmUtils/updates.pyc
    ……
    

    パラメータ解析:-l#ソフトウェアに関連するファイルのリストを表示します.以上はyumソフトウェアのインストール時に生成されたファイルの一部のリストにすぎず、ファイルがリストされているだけでなく、ファイルが存在する経路も示されていることがわかりますが、やはり親切です.

    適用シーン4:ファイルがどのソフトウェアに属しているかを表示する

    [root@lnmp1 ~]# rpm -qf /etc/passwd
    setup-2.8.71-10.el7.noarch
    

    パラメータ解析:-f#指定ファイルが属するソフトウェアを表示します.

    適用シーン5:インストール前に、インストールするソフトウェアを確認します。

    [root@lnmp1 ~]# rpm -qpi apr-1.4.8-5.el7.x86_64.rpm 
    Name        : apr
    Version     : 1.4.8
    Release     : 5.el7
    Architecture: x86_64
    Install Date: (not installed)			#    ,        
    Group       : System Environment/Libraries
    Size        : 226790
    License     : ASL 2.0 and BSD with advertising and ISC and BSD
    Signature   : RSA/SHA256, 2019 08 23      05 20 27 , Key ID 24c6a8a7f4a80eb5
    Source RPM  : apr-1.4.8-5.el7.src.rpm
    Build Date  : 2019 08 08      20 04 16 
    Build Host  : x86-01.bsys.centos.org
    Relocations : (not relocatable)
    Packager    : CentOS BuildSystem 
    Vendor      : CentOS
    URL         : http://apr.apache.org/
    Summary     : Apache Portable Runtime library
    Description :
    The mission of the Apache Portable Runtime (APR) is to provide a
    free library of C data structures and routines, forming a system
    portability layer to as many operating systems as possible,
    including Unices, MS Win32, BeOS and OS/2.
    

    パラメータ解析:-p#指定したパッケージの情報を表示します.インストールされたソフトウェアをクエリーする情報との差は少なく、インストール日はありません.

    適用シーン6:インストール前に、インストールするソフトウェアによって生成されるファイルを確認します。


    インストールされているソフトウェアをクエリーして生成されたファイルと似ています.
    [root@lnmp1 ~]# rpm -qpl apr-1.4.8-5.el7.x86_64.rpm 
    /usr/lib64/libapr-1.so.0
    /usr/lib64/libapr-1.so.0.4.8
    /usr/share/doc/apr-1.4.8
    /usr/share/doc/apr-1.4.8/CHANGES
    /usr/share/doc/apr-1.4.8/LICENSE
    /usr/share/doc/apr-1.4.8/NOTICE
    

    適用シーン7:rpmパッケージのインストール

    [root@lnmp1 Packages]# rpm -ivh tcpdump-4.9.2-4.el7_7.1.x86_64.rpm 
    Preparing...                          ################################# [100%]
    Updating / installing...
       1:tcpdump-14:4.9.2-4.el7_7.1       ################################# [100%]
    

    パラメータ解析:-i#インストールパッケージ;-v#コマンド実行プロセスを表示します.-h#と-vパラメータを一緒に使用し、進捗バーを表示します.

    適用シーン8:rpmパッケージのアンインストール

    [root@lnmp1 Packages]# rpm -e tcpdump 
    [root@lnmp1 Packages]# 
    

    パラメータ解析:-e#指定したソフトウェアをアンインストールします.アンインストール時にバージョンを指定する必要はありません.

    アプリケーションシーン9:rpmパッケージが改ざんされているかどうかを検出する

    [root@lnmp1 Packages]# rpm -V httpd
    S.5....T.  c /etc/httpd/conf/httpd.conf
    .....UG..    /var/www/html
    

    ここでのパラメータ:-V(大文字)は完全性を検証します.つまり、現在のファイルのステータスがインストール時と一致していることを確認します.一致する場合、出力はありません.一致しない場合は、上記のように指定フラグが出力されます.具体的には、これらのマークの意味について、もう一つ単独で話すことができます.ここはもう展開しません.
    以上の9つのシーンを通じて、rpmが本当に簡単ではないことを見ることができて、あなたがLinuxの世界を泳ぐ時、あなたの力を助けることができます!