こんにちは、おはじきです。
陽が落ちてくると大分涼しくなってクーラーを切る時間帯も徐々に作れるようになってきました。
7~8月は電気代が大分高くついたので、これからは少しでも抑えたいところですね。
さて、本日はLinuxのパッケージ管理についてお話しします。
Lpic対策がコンセプトの本ブログでは、Debian系とRedHat系のパッケージ管理システムの解説を行います。
コマンドのオプションが物凄く多い上にDebian系とRedHat系で同じことがやりたくてもオプション名が違っていたりします。
非常にややこしくて覚えるのが大変ですが、かなり高い確率で本番のテストに出題されますので、頭の中できちんと整理しながら覚えましょう。
まずはパッケージ管理とは何か、についてお話します。
実行プログラム、設定ファイル、ドキュメントなどを一つのファイルにまとめたものをパッケージといいます。
下の図の様なイメージで一つにまとまっています。
Linuxでは様々な便利なツールや、アプリケーションがパッケージファイルとして公開されています。
パッケージは多くの団体がリポジトリというパッケージを配布する領域をインターネットに公開する事によって配布しています。それらをインストールしたり、削除したり、管理したり、といった作業の中でパッケージ管理ツールはなくてはならないものです。
Debian系もRedHat系も基本のファイル管理ツールとそれを拡張したものとで大きく分けて2つ、重要なコマンドがあります。
まずはDebianの方からいってみましょう。
Debian/GNU LinuxやUbuntuなどのDebian系ディストリビューションにおいては、パッケージ管理方式としてDebian形式が使われています。
Debian形式のパッケージを扱うにはdpkgコマンドを用います。
書式:dpkg [オプション] アクション
主なオプション
-E | すでに同じバージョンがインストールされていればインストールしない。 |
-G | すでに新バージョンがインストールされていればインストールしない。 |
-R(–recursive) | ディレクトリ内を再帰的に処理する。 |
主なアクション
-i(–install) | パッケージをインストールする。 |
-r(–remove) | 設定ファイルを残してパッケージをアンインストールする。 |
-P(–purge) | 設定ファイルも含め完全にパッケージをアンインストールする。 |
-l(–list) | インストール済みパッケージを検索して表示する。 |
-S(–search) | 指定したファイルがどのパッケージからインストールされたかを表示する。 |
-L(–listfiles) | 指定したファイルからインストールされたファイルを一覧表示する。 |
-s(–status) | パッケージの情報を表示する。 |
–configure | 展開済だが未設定のパッケージを設定する。 |
apt-getはAPT(Advanced Packaging Tool)というパッケージ管理ツールに含まれるコマンドです。
依存関係を調整しながらパッケージのインストール、アップグレード、アンインストールを行います。
インターネットに接続して最新のパッケージの入手からインストールと依存関係の解決までできるという特徴を持っています。
書式:apt-get [オプション] サブコマンド
主なオプション
-d | ファイルをダウンロードする。 |
-s | システムを変更せずに動作をシミュレートする。 |
主なサブコマンド
clean | 過去に取得し、保持していたパッケージファイルを削除する。 |
dist-upgrade | システムを最新版にアップグレードする。 |
install | パッケージをインストール、またはアップグレードする。 |
remove | パッケージをアンインストールする 。 |
update | パッケージデータベースを更新する 。 |
upgrade | システムの全パッケージのうち、他のパッケージを削除しないものをアップグレードする 。 |
apt-cacheは、APT の内部データベースに保存された情報を検索、表示できるコマンドです。この情報は/etc/
apt/sources.listファイル内のさまざまなソースから収集されます。
書式:apt-cache サブコマンド
主なサブコマンド
search | 指定したキーワードを含むパッケージを検索する。 |
show | パッケージについての一般的な情報を表示する。 |
showpkg | パッケージについての詳細な情報を表示する。 |
depends | 指定したパッケージの依存関係を表示する。 |
apt-getとapt-cacheを合わせたようなコマンドがaptです。
最近では基本的にはaptコマンドの使用が推奨されていますが油断しているとapt-getやapt-cacheの問題も出たりするようなのでややこしいですが3つ共対応できるようにしておいた方が良いでしょう。
書式: apt [オプション] サブコマンド
主なオプション
-c | 使用する設定ファイルを指定する 。 |
-d | パッケージのダウンロードのみを行う。 |
-y | 問い合わせに対して自動的にyesと回答する。 |
主なサブコマンド
update | パッケージリストを更新する。 |
install | パッケージをインストールする。 |
remove | 設定ファイルを残してパッケージを削除する。 |
purge | 設定ファイルも含めてパッケージを完全に削除する。 |
upgrade | システムをアップグレードする。 |
full-upgrade | システムのメジャーバージョンを最新にアップグレードする。 |
show | 指定したパッケージに関する情報を表示する。 |
list | パッケージのリストを表示する。(–installdをつけるrとインストールされたパッケージを一覧表示、–upgradableをつけるとアップグレード可能なパッケージを表示する) |
search | 指定したキーワードでパッケージ情報を全文検索する。 |
depends | パッケージの依存関係を表示する。 |
autoremove | 必要とされていないパッケージを自動的に削除する。 |
RPMはRedHat社が開発したパッケージ管理システムです。
RedHat関係の多くのディストリビューションで使われています。
インストールモード、アンインストールモード、紹介モードという感じで3つのモードに分かれていてそこから様々なオプションを用いて多彩な処理を行うことができます。
書式:rpm [オプション] [併用オプション] パッケージファイル名
RPMはRedHat社が開発したパッケージ管理システムです。
RedHat関係の多くのディストリビューションで使われています。
インストールモード、アンインストールモード、紹介モードという感じで3つのモードに分かれていてそこから様々なオプションを用いて多彩な処理を行うことができます。
書式:rpm [オプション] [併用オプション] パッケージファイル名
インストールモード
-i(–install) | パッケージをインストールする。 |
-U(–upgrade) | パッケージをアップグレードする。 |
-F(–freshen) | パッケージがインストールされてなければアップグレードする。 |
併用オプション
-v | 詳細な情報を表示する。 |
-h(–hash) | 進行状況を表示する。 |
–nodeps | 依存関係を無視してインストールする。 |
–force | 既存のファイルを新しいものに置き換える。 |
–test | 実際にはインストールせずにテストを実施する。 |
アンインストールモード
-e(–erase) | パッケージをアンインストールする。 |
併用オプション
–nodeps | 依存関係を無視してアンインストールする。 |
照会モード
-q(–query) | 指定したパッケージがインストールされているか紹介する。 |
併用オプション
-a(–all) | インストール済みの全てのパッケージを表示する。 |
-f | 指定したファイルを含むパッケージ名を表示する。 |
-p | 対象としてパッケージファイル名を指定する。 |
-c(–configfiles) | 設定ファイルのみを表示する。 |
-d(–docfiles) | ドキュメントのみを表示する。 |
-i(–info) | 指定したパッケージの情報を表示する。 |
-l(–list) | 指定したパッケージに含まれるファイルを表示する。 |
-R(–requires) | 指定したパッケージが依存しているファイル等を表示する。 |
–changelog | 変更履歴を表示する。 |
Debian系のaptのような拡張版としてRedHatではYUMというツールが存在します。
リポジトリの設定は/etc/yum.confや/etc/yum.repos.d(ディレクトリ)で行います。
書式:yum サブコマンド
主なサブコマンド
check-update | アップデート対象のパッケージリストを表示する。 |
update | 指定したパッケージをアップデートする。 |
install | 指定したパッケージをインストールする。 |
remove | 指定したパッケージをアンインストールする。 |
info | 指定したパッケージの情報を表示する。 |
list | 全パッケージ情報をリスト表示する。 |
repolist | リポジトリ一覧を表示する。 |
search | パッケージ情報を検索する |
なお、これまでyumを採用していたディストリビューションではyumコマンドに代わってdnfコマンドが登場しdnfへの移行が進んでいるようです。
とはいえまだyumも現役ですし、yumとdnfでは書式や基本的なサブコマンドの使い方もほとんど一緒です。
試験対策としてyumからdnfへの移行が進んでいるという事を頭に入れておきましょう。
長くなってしまいましたが、パッケージ管理ツールについての問題は必ず試験に出ますしDebian系とRedHat系それぞれ一問ずつ出るケースも多いようです。
ここを完璧にしておくとより自信をもって試験に臨めると思いますので、
みなさん是非自分のPCでもコマンドを叩いてみてそれぞれのコマンドの挙動を覚えておきましょう。