GNU/Linux >> Linux の 問題 >  >> Cent OS

RPM を使用した Linux ソフトウェア管理の初心者向けガイド

RPM (Red Hat Package Manager) を使用したソフトウェアの保守

RPM は、個々のソフトウェア パッケージのビルド、インストール、クエリ、検証、更新、およびアンインストールに使用できる強力なソフトウェア マネージャーです。 RPM パッケージは、ファイルのアーカイブと、名前、バージョン、説明、他の RPM パッケージへの依存関係に関する情報などのパッケージ情報で構成されます。

RPM は、Red Hat 固有のツール以上のものです。 Ubuntu や SuSE など、他の多くの最近のディストリビューションも RPM を使用しています。 RPM を使用する利点は次のとおりです。

  • ソフトウェアの配布、インストール、アップグレード、削除の簡素化
  • 保証:
    • 必須ソフトウェアがシステムにインストールされている
    • 必須ソフトウェアのバージョンは互換性を維持します。
    • ローカルで変更された構成ファイルは、RPM の更新時にクロブされません。
    • パッケージが後で削除された場合、ローカルで変更された構成ファイルは「.rpmsave」サフィックスで保存されます。
  • インストールされたソフトウェアが変更、修正、破損、または変更されていないことを証明できます。

RPM は、インストールされたパッケージに関する情報を「/var/lib/rpm」ディレクトリの下に保持します。 RPM ツールのコンポーネントは次のとおりです。

  • 個々の RPM から収集された、システムにインストールされているすべてのソフトウェアに関する情報を含むカスタム データベース。
  • 「/bin/rpm」実行可能ファイル
  • 利用可能な RPM パッケージのインターネット アクセス可能なリポジトリ

RPM パッケージの種類

RPM パッケージには次の 2 つのカテゴリがあります。
1.ソース
2.バイナリ

ソース RPM

ファイル名が文字列「.src.rpm」で終わるため、ソース RPM は常に認識できます。ソース RPM には、元のプログラム ソース コード ファイルだけでなく、コードの自動再コンパイル、自動インストール、および自動削除を可能にするスクリプトも含まれています。ソース RPM にはエンドユーザーの実行可能ファイルはありません。通常、ソース RPM に関心があるのは開発者だけです。

バイナリ RPM

バイナリー RPM には、RPM のエンドユーザー構成要素が含まれています。バイナリ RPM ファイル名は、コンテンツのホスト アーキテクチャを識別します。たとえば、バイナリ RPM ファイル:

bash-3.1-16.1.x86_64.rpm

– 64 ビット Intel X86 アーキテクチャ CPU でのみ使用可能なファイルが含まれています。その他の一般的なアーキテクチャ値には、32 ビット Intel ホストの「i386」が含まれます。一部のバイナリ RPM は、ファイルが任意のホストで機能するため、任意の CPU アーキテクチャにインストールできます。これらの「.noarch.rpm」パッケージの例は、世界のタイムゾーンに関する情報を含む「tzdata」RPM です。システムをパッケージの最新バージョンに更新するには、最新のバイナリ RPM が必要です。

RPM 命名スキーム

各 RPM パッケージは、1 つのファイルに含まれています。ファイル名には、パッケージの内容を完全に識別するためのいくつかのフィールドがあります。 RPM ツール自体はファイル名自体に依存しませんが、適切なパッケージを識別またはダウンロードするのに役立つファイル名の規則を理解する必要があります。

以下は RPM ファイル名の例です:

bash-3.1-16.1.x86_64.rpm

この RPM は BASH シェル (「/bin/bash」) 用です。ファイル名はいくつかの部分で構成されています:

[name]-[version]-[release].[arch].rpm

ここで:

  • [名前] プログラムまたはパッケージの名前です。 [名前] は通常、プログラムの作成者によって割り当てられます。この例では、開発者は面白いと思われる理由から、製品に「bash」という名前を付けることにしました。
  • [バージョン] この RPM に含まれるソフトウェアのエディションを識別します。 [バージョン] 番号は、プログラムの作成者によって割り当てられます。 [バージョン] 番号を使用すると、RPM の生成に使用された作成者のソースのバージョンを特定できます。
  • [リリース] 著者のソースファイルのバージョンではなく、RPM ファイル自体のエディション番号を提供します。更新された RPM は、作成者のオリジナル ソフトウェアのパッチ バージョンを提供するために発行される場合があります。パッチは元の開発者から提供されたものである必要はないため、RPM [リリース] は [バージョン] ではなく増分されます。
  • [アーチ] RPM の内容を記述し、このファイルに製品ソース (「.src.rpm」)、アーキテクチャに依存しないファイル (「.noarch.rpm」)、または特定のホストにのみインストールできるファイルが含まれているかどうかを示します。タイプ (「.sh.rpm」は、STRONGHOLD 組み込みプロセッサでのみ機能します)。
注意 :[バージョン] は元の作成者によって管理され、[リリース] は RPM を作成した人によって管理されます。

ファイルのインストールと削除

通常、一度にインストールできる RPM の [バージョン] または [リリース] は 1 つだけです。新しいバージョンは、通常、「-i」RPM 関数の代わりに「-U」(更新) RPM 関数を使用してインストールされます。唯一の RPM ルールの一般的な例外は、カーネル RPM です。通常、システムには複数のバージョンのカーネルがインストールされています。 RPM には、複数のバージョンがインストールされている可能性がある RPM のリストがあります。複数のバージョンがインストールされているときに 1 つのバージョンを削除するには、パッケージ名とバージョンを完全に指定する必要があります。

x86_64 アーキテクチャでは、32 ビットと 64 ビットの両方のアプリケーションをサポートするために、32 ビットの「.i386」と 64 ビットの「.x86_64」RPM パッケージの両方をインストールするのが一般的です。通常、RPM はクエリでパッケージのアーキテクチャを表示しませんが、手動で表示できます。

インストールと削除

  • rpm -i または –install ### (新しい RPM をインストールします。既にインストールされている場合はエラーになります)
  • rpm -U または –upgrade ### (既存の RPM がある場合は削除し、新しいものをインストールします)
  • rpm -F または –freshen ### (パッケージが既にインストールされている場合のみ RPM を更新します)
  • rpm -e または –erase ### (削除、削除、消去)

共通オプション

  • 出力 :-v (詳細 - ファイル名)、-h (ハッシュ)
  • 前提条件 :–nodeps、–replacefiles、–force (ここで注意してください!!!)
  • 引っ越し :–excludepath、–prefix、–relocate、–badreloc、–root
  • URL のサポート :ftp、http

例:

rpm -ivh binutils-2.11.90.0.8-12.i386.rpm
rpm -Uvh finger-0.17-9-i386.rpm
rpm -Fvh ftp://updates.redhat.com/current/i386/*.rpm
rpm -e diffutils
rpm -e kernel-enterprise-2.4.9-e.12

ヒントとコツ

– 「-U」オプションを使用して新しいカーネル RPM をインストールしないでください。
– 「-U」更新機能は、最初に現在の RPM をシステムから削除してから、新しい RPM のインストールを試みます。新しい RPM のインストールを妨げる問題があると、システムは起動できなくなります。これは望ましくないため、常に「-i」スイッチを使用してカーネル RPM をインストールしてください。

パッケージを照会、インストール、削除、およびアップグレードするための RPM コマンドの例

クエリ (パッケージおよび/または情報)

インストールされているパッケージに関する情報を取得するには、クエリを使用します。インストールされているすべてのパッケージに対してクエリを実行することも、単一のインストールされたパッケージに対してクエリを実行することもできます。また、特定のファイルを提供する RPM を見つけることもできます。

  • rpm -q [パッケージ] [情報]
  • rpm -qa
  • rpm -q package_name
  • rpm -qf [ファイル名]
  • rpm -qp [パッケージ ファイル名]

情報

デフォルト (パッケージ名)
-i :一般情報
-l :ファイル一覧

例:

rpm -qa
rpm -q kernel -i (information)
rpm -q kernel -l (files contained in package)
rpm -q kernel --requires (prereqs)
rpm -q kernel --provides (capabilities provided by package)
rpm -q kernel --scripts (scripts run during installation and removal)
rpm -q kernel --changelog (revision history)
rpm -q kernel -queryformat format (rpm --querytags for list of options)

ヒントとコツ

– 正確な名前がわからない場合に特定の RPM パッケージを検索する場合、次のようなコマンド パイプライン:

$ rpm -qa | grep foo

が一般的に使用されます。 RPM ツールの新しいバージョンでは、これを次のように簡潔に行うことができます:

$ rpm -qa '*foo*'

クエリ – 検証 (ファイル)

RPM データベースには、RPM によってインストールされたすべてのファイルに関する多くの属性が含まれています。パッケージのインストール時に RPM によってカタログ化された情報に対して、ファイルの現在のステータスを確認できます。

  • rpm -V パッケージ名
  • rpm -Va (すべてを確認)
  • rpm -Vf (ファイル名)
  • rpm -Vp (パッケージ ファイル名)

多くの Linux ディストリビューションには、「プレリンク」が含まれています アプリケーションのプログラム ファイルに特別な情報を直接追加することで、共有ライブラリ (ほとんどのアプリケーションは少なくとも 1 つの共有ライブラリを使用し、場合によっては数十の共有ライブラリを使用します) を使用してアプリケーションを起動するのに必要な時間を短縮しようとする RPM。

この情報を追加すると、アプリケーションの起動が速くなりますが、ファイルの変更により、RPM データベース内のほとんどのファイル属性 (最終ファイル変更日、ファイル サイズ、ファイルの MD5 チェックサムなど) が無効になります。

クエリ – 検証 (パッケージ)

以下は、パッケージ検証用の RPM クエリです。

  • rpm -import /mnt/cdrom/RPM-GPG-KEY
  • rpm -q gpg-pubkey
  • rpm –checksig m4-1.4.1-11.i386.rpm

例:

rpm -qf /path/filename (what package owns filename)
rpm -qf /path/filename -i (what does it do)
rpm -qp m4-1.4.1-11.i386.rpm -l (files in m4)
rpm -qp m4-1.4.1-11.i386.rpm --requires (prereqs needed to install m4)
rpm -q --whatprovides glibc.so (what package provides requisite library)


Cent OS
  1. aptによるLinuxパッケージ管理

  2. CでのLinuxソフトウェアライブラリを理解するためのガイド

  3. Linuxでgocryptfsを使用してファイルを暗号化する方法

  1. LinuxRPMComamndと10の便利な例

  2. LinuxでZIPファイルを操作する

  3. Linux での Udev の初心者向けガイド

  1. LinuxソフトウェアをRPMでパッケージ化するためのその他のヒント

  2. Linux でのパフォーマンスの問題をトラブルシューティングする方法 – 初心者向けガイド

  3. Linux で Densify を使用して PDF ファイルを圧縮する