この投稿では、Enterprise Linux Common Package Manager (RPM) について最もよく報告されるハウツーの質問について説明します。 rpm はあまり使用されませんが、Linux の面接を受ける際には知っておく必要があります。
RPM とは?
RPM は Red Hat Package Manager の略で、Linux ディストリビューションでのパッケージのインストール、アップグレード、および削除を提供します。フリーソフトウェアツールです。 RPM は、もともと Red Hat Linux 用に Red Hat によって開発されたもので、現在では多くの Linux ディストリビューションで使用されています。バージョン 5 の Suse Linux や IBM の AIX など、他のオペレーティング システムにも移植されています。
RPM の主な種類は?
RPM パッケージには、バイナリ (またはアプリケーション) とソースの 2 つの主なタイプがあります。バイナリ RPM は、特定のアーキテクチャ用にコンパイルされています。他のパッケージのソース コードを提供するソース コード RPM。として:
Binary Package: xpdf-3.00-11.12.i386.rpm Source code package: xpdf-3.00-11.12.src.rpm
パッケージがインストールされていることを確認する方法
「rpm –q」を使用します 」コマンドを使用して、パッケージがインストールされたことをすばやく確認します。確認するには、RPM ファイルの名前ではなく、インストールされたパッケージの名前を使用する必要があります。パッケージ名の一部を使用することもできます。または、コマンド「rpm -qa |grep key-word」を使用することもできます 」を選択すると、より多くのパッケージが表示されます。
rpm パッケージのインストール中に詳細情報を取得する方法
コマンドの構文は
# rpm -Uhv package
これにより、コマンドの実行時に -h オプションで # 記号が出力され、-v オプションで詳細情報が出力されます。パッケージは複数回インストールできます。 rpm コマンドは文句を言いません。ただし、アップグレード操作では、パッケージの他のすべてのバージョンが削除されます。これが、–U アップグレード オプションを使用するもう 1 つの理由です。
カーネルのアップグレード方法
セキュリティの観点から、新しいカーネルは「-i」を使用してインストールする必要があります 「-U」でアップグレードするのではなく、「」フラグ " 国旗。以前のバージョンがまだインストールされているため、新しいカーネルが機能しない場合でも使用できます。例:
# rpm -ivh kernel-2.6.9-78.0.0.0.1.EL4.I686rpm
rpm コマンドの実行時に完了したパーセンテージを表示する方法
基本的な構文は次のとおりです:
# rpm -U --percent package
–パーセント オプションは、rpm コマンドの実行時に完了したパーセンテージを示す 10 進数を出力します。このオプションは、Perl、Python、または Tcl/Tk スクリプトから作成されたグラフィカル ユーザー インターフェイスなど、他のコマンド内に rpm コマンドをラップする場合に最も便利です。
RPM パッケージをインストールする詳細なプロセスは何ですか?
rpm –U コマンドまたは rpm –i コマンドを使用して、パッケージをインストールできます。 rpm コマンドがパッケージをインストールするとき、いくつかのステップを経ます:
- インストールするパッケージとファイルを確認する
- プレインストール タスクの実行
- ファイルを解凍して適切な場所に配置する
- 後処理タスクの実行
- RPM データベースの更新
rpm コマンドをテストする方法
–テスト コマンドライン オプションは、rpm コマンドに、インストールまたはアップグレード プロセスをテストするが、ファイルをインストールしないように指示します。例:
# rpm -U --test eruby-devel-0.9.8-2.i386.rpm
複数のパッケージを同時にインストールまたはアップグレードする方法
rpm コマンドラインで各ファイル名をリストするだけです。基本的な構文は次のとおりです:
# rpm -U package1.rpm package2.rpm .. package100.rpm
異なるディレクトリに rpm パッケージをインストールする方法
–プレフィックス そして–移転 オプションは、rpm コマンドがパッケージを新しい場所に再配置するようにする必要があります。ただし、すべてのパッケージが再配置を許可するわけではありません。 –prefix オプションを指定したコマンドの基本的な形式は次のとおりです。
# rpm -U --prefix /new/directory package.rpm
–relocate オプションを使用した場合のコマンド形式は次のとおりです。
# rpm -i --relocate /old/directory=/new/directory package.rpm
–root も使用できます rpm コマンドがシステムのルートまたは / ディレクトリであると想定する別のディレクトリを指定するオプション。これにより、rpm コマンドは、/ の下のシステムの場所ではなく、新しいルートの下にファイルをインストールします。このオプションは、test ディレクトリの下で完全なシステムのインストールをテストする場合に最も役立ちます。コマンドは次の形式を使用する必要があります:
# rpm -U --root /tmp --dbpath /var/lib/rpm package.rpm
rpm パッケージのインストール/削除時にスクリプトをスキップする方法
パッケージのインストールおよび削除の一部として、RPM パッケージには rpm コマンドで実行するスクリプトが含まれている場合があります。これらには、インストール前およびインストール後のスクリプト、およびアンインストール前およびインストール後のスクリプトが含まれます。これらのスクリプトは、ターゲット環境に基づいてアプリケーションを自動的に構成するなどのオプションを実行できます。以下の表は、これらのオプションをまとめたものです。
オプション | 使い方 |
---|---|
–nopre | プレインストール スクリプトをスキップします。 |
–nopost | インストール後のスクリプトをスキップします。 |
–ノプルン | アンインストール前のスクリプトをスキップします。 |
–nopostun | アンインストール後のスクリプトをスキップします。 |
–noscripts | すべてのスクリプトをスキップします。 –nopre、–nopost、–nopreun、–nopostun と同じ。 |
インストール中に、すべてのトリガーを実行しないように、または特定のトリガーを実行しないように rpm コマンドに指示できます。 –トリガーではない オプションは、すべてのトリガーをスキップするように rpm コマンドに指示します。
オプション | 使い方 |
---|---|
–notriggerin | インストール トリガーをスキップします。 |
–notriggerrun | アンインストールのトリガーをスキップします。 |
–notriggerpostun | アンインストール後のトリガーをスキップします。 |
–トリガーしない | すべてのトリガーをスキップします。 –notriggerin、—notriggerun、—notriggerpostun と同じ。 |
RPM の無視オプションとは?
rpm コマンドはいくつかの無視オプションをサポートしており、コマンドが通常文句を言うパッケージの一部の側面を無視するようコマンドに指示します。
- –ignorearch オプションは、パッケージのアーキテクチャーとシステムのアーキテクチャーが一致しない場合でも、パッケージのアーキテクチャーを無視してパッケージをインストールするように rpm コマンドに指示します。これは非常に危険なオプションです。
- –ignoreos コマンドライン オプションは、オペレーティング システムを無視するように rpm コマンドに指示します。繰り返しますが、これはほとんどの状況で良い考えではありません。
- –ignoresize オプションは、パッケージをインストールするのに十分なスペースがあることを確認するために、ハードディスクのチェックを無視またはスキップするように rpm コマンドに指示します。 警告 :ハードディスクがほぼ満杯の場合、特にルート (/) パーティションの場合は、–ignoresize オプションを使用しないでください。
- –ノダイジェスト オプションは、パッケージの正確性を検証するのに役立つ特別な値であるダイジェストのテストをスキップするように rpm コマンドに指示します。
- -nosignature オプションは、パッケージの正確性の検証にも役立つ、暗号化されたキーであるダイジェストのテストをスキップするように rpm コマンドに指示します。
FTP 経由で rpm パッケージをインストール/更新する方法
一般的な構文は次のとおりです:
# rpm -i ftp://username:[email protected]/pub/rpms/sample_rpm.src.rpm
Http 経由で rpm パッケージをインストール/更新する方法
FTP 経由でファイルにアクセスする場合と同様に、ファイルを識別する URL を rpm コマンドに渡す必要があります。例:
# rpm –i http://ftp.redhat.com/pub/contrib/noarch/SRPMS/Squeak-sources-3-1.src.rpm
複数のパッケージを同時に削除する方法
基本的な構文は次のとおりです:
# rpm -e package1.rpm package2.rpm .. package100.rpm
パッケージのドキュメント ファイルを一覧表示する方法
基本的な構文は次のとおりです:
# rpm –qd package_name
パッケージ内のファイルを一覧表示する方法
基本的な構文は次のとおりです:
# rpm –ql package_name
パッケージ内のスクリプトを一覧表示する方法
基本的な構文は次のとおりです:
# rpm -q --scripts package_name
パッケージの変更点を一覧表示するには?
コマンドの基本的な形式は次のとおりです。
# rpm -q --changelog package_name
最近インストールされたパッケージを一覧表示する方法
基本的な構文は次のとおりです:
# rpm -qa --last
以下のコマンドは、10 行より多いまたは少ない行を表示します。
# rpm -qa --last | head
カスタム クエリの作成方法
クエリ形式の基本的な構文は %{tag_name} です。例:
# rpm -q --qf "%{N}.%{V}--%{R}.%{ARCH}\n" kernel-smp
上記のコマンドは、カスタムとして kernel-smp パッケージの完全な情報を表示します。例:
# rpm -q --qf "%{N}.%{V}--%{R}.%{ARCH}\n" kernel-smp kernel-smp.2.6.9--67.0.0.0.1.EL.i686
RPM でサポートされているパッケージ情報のタグは何ですか?
パッケージ情報クエリ タグ:
タグ | ホールド |
---|---|
名前 | パッケージ名 |
バージョン | バージョン番号 |
リリース | リリース番号 |
まとめ | パッケージ内容の 1 行の要約 |
説明 | パッケージに関する説明文 |
ビルド時間 | パッケージがビルドされた時間 |
ビルドホスト | ホスト パッケージの構築 |
サイズ | ペイロード内のすべての通常ファイルのサイズ |
ライセンス | ライセンスパッケージは | でリリースされました
グループ | パッケージのわかりやすいグループまたはカテゴリ名 |
OS | ビルドされたオペレーティング システム パッケージ |
ARCH | i386 などのアーキテクチャ |
SOURCERPM | 関連するソース RPM |
CHANGELOGTIME | 変更ログ時間の配列 |
CHANGELOGNAME | 変更ログ名の配列 |
CHANGELOGTEXT | 変更ログ テキスト エントリの配列 |
プレイン | プリインストール スクリプト |
POSTIN | インストール後のスクリプト |
プレウン | プリアンインストール スクリプト |
POSTUN | アンインストール後のスクリプト |
プラットフォーム | プラットフォーム |
インストールされた RPM パッケージを確認する方法
基本的な構文は次のとおりです:
# rpm -V verify_options package_name
システム全体を確認するには、-a を使用します オプション。
パッケージに必要な機能を判断する方法
基本的な構文は次のとおりです:
# rpm -q query_options --requires packages
特定のパッケージと競合するものを確認する方法
基本的な構文は次のとおりです:
# rpm –q query_options --conflicts packages