Yum、RPM、Apt、Dpkg、Aptitude、Zypper を使用した Linux パッケージ管理 - パート 9
昨年 8 月、Linux Foundation は LFCS 認定 (Linux Foundation Certified Sysadmin) を発表しました。これは、世界中のシステム管理者にとって、パフォーマンスベースの試験を通じて、 Linux システムの全体的な運用サポートを成功させることができます。 Linux Foundation 認定システム管理者は、効果的なシステム サポート、第 1 レベルのトラブルシューティング、監視を確実に行うための専門知識を備えており、必要に応じてエンジニアリング サポート チームに最終的に問題をエスカレーションすることも含まれます。
Linux Foundation 認定プログラムについて説明した次のビデオをご覧ください。
この記事は、10 回にわたるチュートリアルの長期シリーズの第 9 部です。今日この記事では、LFCS 認定試験に必要な Linux パッケージ管理について説明します。
パッケージ管理
一言で言えば、パッケージ管理は、システム上のソフトウェアのインストールと保守 (これには、更新とおそらく削除も含まれます) を行う方法です。
Linux の初期の頃、プログラムは、必要なマニュアル ページ、必要な設定ファイルなどとともに、ソース コードとしてのみ配布されました。現在、ほとんどの Linux ディストリビュータは、デフォルトで事前に構築されたプログラム、またはパッケージと呼ばれるプログラムのセットを使用しており、これらはそのディストリビューションにインストールできる状態でユーザーに提供されます。しかし、Linux の驚異の 1 つは、研究、改良、コンパイルの対象となるプログラムのソース コードを入手できることです。
パッケージ管理システムの仕組み
特定のパッケージが共有ライブラリや別のパッケージなどの特定のリソースを必要とする場合、そのパッケージには依存関係があると言われます。すべての最新のパッケージ管理システムは、パッケージのインストール時にそのすべての依存関係も確実にインストールされるように、依存関係を解決する何らかの方法を提供しています。
包装システム
最新の Linux システムにインストールされているほとんどすべてのソフトウェアはインターネット上にあります。これは、中央リポジトリ (それぞれがディストリビューション用に特別に構築、テスト、保守されている数千のパッケージを含むことができる) を通じてディストリビューション ベンダーによって提供されるか、手動でダウンロードしてインストールできるソース コードとして提供されます。 。
ディストリビューション ファミリが異なれば、異なるパッケージ システム (Debian: *.deb/CentOS: *.rpm/openSUSE: *.rpm 用に特別に構築された) が使用されるためです。 openSUSE)、あるディストリビューション向けのパッケージは、別のディストリビューションと互換性がありません。ただし、ほとんどのディストリビューションは、LFCS 認定の対象となる 3 つのディストリビューション ファミリのいずれかに分類される可能性があります。
高レベルおよび低レベルのパッケージ ツール
パッケージ管理のタスクを効果的に実行するには、次の 2 種類のユーティリティが利用可能であることに注意する必要があります。低レベル ツール (バックエンドで実際のインストール、アップグレード、およびパッケージ ファイルの削除)、および高レベル ツール(依存関係の解決とメタデータ検索のタスク(「データに関するデータ」)が確実に実行されるように担当します)。
DISTRIBUTION | LOW-LEVEL TOOL | HIGH-LEVEL TOOL |
Debian and derivatives | dpkg | apt-get / aptitude |
CentOS | rpm | yum |
openSUSE | rpm | zypper |
低レベル ツールと高レベル ツールの説明を見てみましょう。
dpkg は、Debian ベースのシステム用の低レベルのパッケージ マネージャーです。 *.deb パッケージのインストール、削除、情報の提供、ビルドは行えますが、対応する依存関係を自動的にダウンロードしてインストールすることはできません。
詳細: 15 dpkg コマンドの例
apt-get は、Debian および派生製品用の高レベルのパッケージ マネージャーであり、コマンド ラインを使用して、依存関係の解決を含むパッケージを複数のソースから取得してインストールする簡単な方法を提供します。 dpkg とは異なり、apt-get は *.deb ファイルを直接操作するのではなく、パッケージの適切な名前を操作します。
詳細: 25 の apt-get コマンドの例
aptitude は、Debian ベースのシステム用のもう 1 つの高レベルのパッケージ マネージャーであり、管理タスク (パッケージのインストール、アップグレード、削除、依存関係の解決の自動処理など) を迅速かつ簡単な方法で実行するために使用できます。 。これは、apt-get と同じ機能に加えて、パッケージの複数のバージョンへのアクセスを提供するなどの追加機能を提供します。
rpm は、Linux Standard Base (LSB) 準拠のディストリビューションで低レベルのパッケージ処理に使用されるパッケージ管理システムです。 dpkg と同様に、パッケージのクエリ、インストール、検証、アップグレード、削除が可能で、RHEL や CentOS などの Fedora ベースのディストリビューションでより頻繁に使用されます。
詳細: 20 rpm コマンドの例
yum は、RPM ベースのシステムに自動更新と依存関係管理を備えたパッケージ管理の機能を追加します。 apt-get や aptitude のような高レベルのツールとして、yum はリポジトリと連携します。
詳細: 20 yum コマンドの例
低レベルツールの一般的な使用法
低レベルのツールを使用して実行する最も頻繁なタスクは次のとおりです。
1. コンパイル済み (*.deb または *.rpm) ファイルからパッケージをインストールする
このインストール方法の欠点は、依存関係の解決が提供されないことです。コンパイル済みファイルからパッケージをインストールすることを選択する可能性が高いのは、そのようなパッケージがディストリビューションのリポジトリで利用できないため、高レベルのツールを介してダウンロードしてインストールできない場合です。低レベルのツールは依存関係の解決を実行しないため、依存関係が満たされていないパッケージをインストールしようとすると、エラーで終了します。
dpkg -i file.deb [Debian and derivative]
rpm -i file.rpm [CentOS / openSUSE]
注: openSUSE 用に構築された *.rpm ファイルを CentOS にインストールしたり、その逆を試みたりしないでください。
2. コンパイルされたファイルからのパッケージのアップグレード
繰り返しますが、インストールされたパッケージを手動でアップグレードするのは、中央リポジトリで利用できない場合に限られます。
dpkg -i file.deb [Debian and derivative]
rpm -U file.rpm [CentOS / openSUSE]
3. インストールされているパッケージの一覧表示
すでに動作しているシステムを初めて手に入れるときは、どのようなパッケージがインストールされているのか知りたいと思うでしょう。
dpkg -l [Debian and derivative]
rpm -qa [CentOS / openSUSE]
特定のパッケージがインストールされているかどうかを知りたい場合は、「Linux でのファイルの操作 - このシリーズのパート 1」で説明されているように、上記のコマンドの出力をgrep にパイプすることができます。パッケージ mysql-common が Ubuntu システムにインストールされているかどうかを確認する必要があるとします。
dpkg -l | grep mysql-common
パッケージがインストールされているかどうかを確認する別の方法。
dpkg --status package_name [Debian and derivative]
rpm -q package_name [CentOS / openSUSE]
たとえば、パッケージ sysdig がシステムにインストールされているかどうかを確認してみましょう。
rpm -qa | grep sysdig
4. どのパッケージがファイルをインストールしたかを調べる
dpkg --search file_name
rpm -qf file_name
たとえば、pw_dict.hwm をインストールしたパッケージはどれですか?
rpm -qf /usr/share/cracklib/pw_dict.hwm
高レベルツールの一般的な使用法
高レベルのツールを使用して実行する最も頻繁なタスクは次のとおりです。
1. パッケージを検索する
aptitude update は利用可能なパッケージのリストを更新し、aptitude search は package_name の実際の検索を実行します。
aptitude update && aptitude search package_name
すべて検索オプションでは、yum はパッケージ名だけでなくパッケージの説明でも package_name を検索します。
yum search package_name
yum search all package_name
yum whatprovides “*/package_name”
sysdig という名前のファイルが必要だとします。インストールする必要があるパッケージを確認するには、実行してみましょう。
yum whatprovides “*/sysdig”
whatprovides は、yum にパッケージを検索するよう指示し、上記の正規表現に一致するファイルを提供します。
zypper refresh && zypper search package_name [On openSUSE]
2. リポジトリからのパッケージのインストール
パッケージのインストール中に、パッケージ マネージャーがすべての依存関係を解決した後、インストールの確認を求めるメッセージが表示される場合があります。 (使用されているパッケージ マネージャーに応じて) 更新または更新を実行することは必ずしも必要ではありませんが、セキュリティと依存関係の理由から、インストールされたパッケージを最新の状態に保つことはシステム管理者の良い習慣であることに注意してください。
aptitude update && aptitude install package_name [Debian and derivatives]
yum update && yum install package_name [CentOS]
zypper refresh && zypper install package_name [openSUSE]
3. パッケージの削除
削除 オプションはパッケージをアンインストールしますが、構成ファイルはそのまま残ります。一方、パージはシステムからプログラムの痕跡をすべて消去します。
# aptitude パッケージ名を削除/パージ
# yum パッケージ名を消去します
---Notice the minus sign in front of the package that will be uninstalled, openSUSE ---
zypper remove -package_name
すべてではないにしても、ほとんどのパッケージ マネージャーでは、実際にアンインストールを実行する前に、アンインストールを続行するかどうかを確認するメッセージがデフォルトで表示されます。したがって、不要なトラブルに遭遇しないように、画面上のメッセージを注意深く読んでください。
4. パッケージに関する情報の表示
次のコマンドは、誕生日 パッケージに関する情報を表示します。
aptitude show birthday
yum info birthday
zypper info birthday
まとめ
パッケージ管理は、システム管理者としては絶対に隠蔽できないものです。この記事で説明されているツールをすぐに使用できるように準備しておく必要があります。 LFCS 試験の準備や日常業務に役立つことを願っています。以下にお気軽にコメントやご質問を残してください。できるだけ早くご連絡させていただきます。