Yum、RPM、Apt、Dpkg、Aptitude、Zypperを使用したLinuxパッケージ管理-パート9


昨年8月、LinuxFoundationは LFCS 認定( Linux Foundation Certified Sysadmin )を発表しました。これは、パフォーマンスベースの試験を通じて、世界中のシステム管理者がLinuxシステムの全体的な運用サポートで成功することができます。 Linux Foundation認定のシステム管理者は、効果的なシステムサポート、第1レベルのトラブルシューティング、および監視を保証する専門知識を備えています。これには、必要に応じて、エンジニアリングサポートチームへの最終的な問題のエスカレーションも含まれます。

LinuxFoundation認定プログラムについて説明している次のビデオをご覧ください。

この記事は、10チュートリアルの長いシリーズのパート9です。本日、この記事では、LFCS認定試験に必要なLinuxパッケージ管理について説明します。

パッケージ管理

簡単に言うと、パッケージ管理は、システムにソフトウェアをインストールして維持する方法です(更新や、場合によっては削除も含まれます)。

Linuxの初期には、プログラムは、必要なマニュアルページ、必要な構成ファイルなどとともに、ソースコードとしてのみ配布されていました。現在、ほとんどのLinuxディストリビューターは、デフォルトでビルド済みプログラムまたはパッケージと呼ばれるプログラムのセットを使用します。これらは、そのディストリビューションにインストールする準備ができているユーザーに提示されます。ただし、Linuxの驚異の1つは、調査、改善、およびコンパイルするプログラムのソースコードを取得できることです。

特定のパッケージが共有ライブラリや別のパッケージなどの特定のリソースを必要とする場合、そのパッケージには依存関係があると言われます。最新のパッケージ管理システムはすべて、依存関係を解決する何らかの方法を提供して、パッケージがインストールされたときに、そのすべての依存関係もインストールされるようにします。

最新のLinuxシステムにインストールされているほとんどすべてのソフトウェアはインターネット上にあります。中央リポジトリ(それぞれが配布用に特別に構築、テスト、および保守されている数千のパッケージを含むことができます)を介して配布ベンダーによって提供されるか、手動でダウンロードおよびインストールできるソースコードで利用できます。 。

異なるディストリビューションファミリーが異なるパッケージングシステムを使用しているため(Debian: *。deb /CentOS: *。rpm /openSUSE: *。rpm は、特別に構築されていますopenSUSE)、あるディストリビューション向けのパッケージは別のディストリビューションと互換性がありません。ただし、ほとんどのディストリビューションは、LFCS認定の対象となる3つのディストリビューションファミリのいずれかに分類される可能性があります。

パッケージ管理のタスクを効果的に実行するには、2種類の利用可能なユーティリティがあることに注意する必要があります。低レベルツール(バックエンドで実際のインストール、アップグレード、およびパッケージファイルの削除)、および高レベルツール(依存関係の解決とメタデータ検索のタスク(「データに関するデータ」)が確実に実行されるようにする役割を果たします)。

低レベルツールと高レベルツールの説明を見てみましょう。

dpkg は、Debianベースのシステム用の低レベルのパッケージマネージャーです。 * .debパッケージのインストール、削除、情報の提供、ビルドはできますが、対応する依存関係を自動的にダウンロードしてインストールすることはできません。

続きを読む:15dpkgコマンドの例

apt-get は、Debianおよび派生物の高レベルのパッケージマネージャーであり、コマンドラインを使用して複数のソースから依存関係の解決を含むパッケージを取得およびインストールする簡単な方法を提供します。 dpkgとは異なり、apt-getは* .debファイルでは直接機能しませんが、パッケージの適切な名前で機能します。

続きを読む:25のapt-getコマンドの例

aptitude は、Debianベースのシステム用のもう1つの高レベルのパッケージマネージャーであり、管理タスク(パッケージのインストール、アップグレード、削除、依存関係の解決の自動処理)をすばやく簡単に実行するために使用できます。 。 apt-getと同じ機能と、パッケージの複数のバージョンへのアクセスを提供するなどの追加機能を提供します。

rpm は、Linux Standard Base(LSB)準拠のディストリビューションでパッケージの低レベル処理に使用されるパッケージ管理システムです。 dpkgと同様に、パッケージのクエリ、インストール、検証、アップグレード、および削除が可能であり、RHELやCentOSなどのFedoraベースのディストリビューションでより頻繁に使用されます。

続きを読む:20rpmコマンドの例

yum は、RPMベースのシステムに依存関係管理を備えた自動更新とパッケージ管理の機能を追加します。 apt-getやaptitudeなどの高レベルのツールとして、yumはリポジトリーと連携します。

続きを読む:20yumコマンドの例

低レベルツールの一般的な使用法

低レベルのツールで実行する最も頻繁なタスクは次のとおりです。

このインストール方法の欠点は、依存関係の解決が提供されないことです。コンパイルされたファイルからパッケージをインストールすることを選択する可能性が高いのは、そのようなパッケージがディストリビューションのリポジトリで利用できないため、高レベルのツールを介してダウンロードおよびインストールできない場合です。低レベルのツールは依存関係の解決を実行しないため、依存関係が満たされていないパッケージをインストールしようとすると、エラーが発生して終了します。

# dpkg -i file.deb 		[Debian and derivative]
# rpm -i file.rpm 		[CentOS / openSUSE]

注:openSUSE用にビルドされた* .rpmファイルをCentOSにインストールしようとしないでください。その逆も同様です。

繰り返しになりますが、インストールされたパッケージは、中央リポジトリで利用できない場合にのみ手動でアップグレードします。

# dpkg -i file.deb 		[Debian and derivative]
# rpm -U file.rpm 		[CentOS / openSUSE]

すでに機能しているシステムを最初に手にしたとき、インストールされているパッケージを知りたいと思うかもしれません。

# 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
# dpkg --search file_name
# rpm -qf file_name

たとえば、どのパッケージが pw_dict.hwm をインストールしましたか?

# rpm -qf /usr/share/cracklib/pw_dict.hwm

高レベルツールの一般的な使用法

高レベルのツールで実行する最も頻繁なタスクは次のとおりです。

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]

パッケージのインストール中に、パッケージマネージャーがすべての依存関係を解決した後、インストールの確認を求めるメッセージが表示される場合があります。 (使用されているパッケージマネージャーに応じて)更新または更新を実行する必要は厳密にはありませんが、セキュリティと依存関係の理由から、インストールされたパッケージを最新の状態に保つことはsysadminの優れた方法であることに注意してください。

# aptitude update && aptitude install package_name 		[Debian and derivatives]
# yum update && yum install package_name 			[CentOS]
# zypper refresh && zypper install package_name 		[openSUSE]

#yumerge package_name

---Notice the minus sign in front of the package that will be uninstalled, openSUSE ---

# zypper remove -package_name 

ほとんどの(すべてではないにしても)パッケージマネージャーは、実際にアンインストールを実行する前にアンインストールを続行することに確信がある場合、デフォルトでプロンプトを表示します。したがって、画面上のメッセージを注意深く読んで、不要なトラブルに遭遇しないようにしてください。

次のコマンドは、誕生日パッケージに関する情報を表示します。

# aptitude show birthday 
# yum info birthday
# zypper info birthday

概要

パッケージ管理は、システム管理者としての手に負えないものです。この記事で説明されているツールをすぐに使用できるように準備しておく必要があります。 LFCS 試験の準備や日常業務に役立つことを願っています。以下にコメントや質問を残してください。お早めにご連絡させていただきます。

全著作権所有。 © Linux-Console.net • 2019-2022