BLOG

【Linux研修】おはじきの記録4

こんにちは、おはじきです。
陽が落ちてくると大分涼しくなってクーラーを切る時間帯も徐々に作れるようになってきました。
7~8月は電気代が大分高くついたので、これからは少しでも抑えたいところですね。

さて、本日はLinuxのパッケージ管理についてお話しします。
Lpic対策がコンセプトの本ブログでは、Debian系とRedHat系のパッケージ管理システムの解説を行います。
コマンドのオプションが物凄く多い上にDebian系とRedHat系で同じことがやりたくてもオプション名が違っていたりします。
非常にややこしくて覚えるのが大変ですが、かなり高い確率で本番のテストに出題されますので、頭の中できちんと整理しながら覚えましょう。

まずはパッケージ管理とは何か、についてお話します。
実行プログラム、設定ファイル、ドキュメントなどを一つのファイルにまとめたものをパッケージといいます。
下の図の様なイメージで一つにまとまっています。

Linuxでは様々な便利なツールや、アプリケーションがパッケージファイルとして公開されています。
パッケージは多くの団体がリポジトリというパッケージを配布する領域をインターネットに公開する事によって配布しています。それらをインストールしたり、削除したり、管理したり、といった作業の中でパッケージ管理ツールはなくてはならないものです。
Debian系もRedHat系も基本のファイル管理ツールとそれを拡張したものとで大きく分けて2つ、重要なコマンドがあります。
まずはDebianの方からいってみましょう。

dpkgコマンド

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-getはAPT(Advanced Packaging Tool)というパッケージ管理ツールに含まれるコマンドです。
依存関係を調整しながらパッケージのインストール、アップグレード、アンインストールを行います。
インターネットに接続して最新のパッケージの入手からインストールと依存関係の解決までできるという特徴を持っています。
書式:apt-get [オプション] サブコマンド

主なオプション

-d ファイルをダウンロードする。
-s システムを変更せずに動作をシミュレートする。

主なサブコマンド

clean 過去に取得し、保持していたパッケージファイルを削除する。
dist-upgrade システムを最新版にアップグレードする。
install パッケージをインストール、またはアップグレードする。
remove パッケージをアンインストールする 。
update パッケージデータベースを更新する 。
upgrade システムの全パッケージのうち、他のパッケージを削除しないものをアップグレードする 。

apt-cacheコマンド

apt-cacheは、APT の内部データベースに保存された情報を検索、表示できるコマンドです。この情報は/etc/apt/sources.listファイル内のさまざまなソースから収集されます。
書式:apt-cache サブコマンド

主なサブコマンド

search 指定したキーワードを含むパッケージを検索する。
show パッケージについての一般的な情報を表示する。
showpkg パッケージについての詳細な情報を表示する。
depends 指定したパッケージの依存関係を表示する。

aptコマンド

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コマンド

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 変更履歴を表示する。

yumコマンド

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でもコマンドを叩いてみてそれぞれのコマンドの挙動を覚えておきましょう。

BLOGトップへ戻る