LinuCレベル2 システムの起動とLinuxカーネル 問38
システムの起動とLinuxカーネル/Linuxカーネルのコンパイルカーネルのソースツリーで、ビルドしたカーネルをRPMパッケージとしてまとめたい。ソースRPMは不要で、インストール用のバイナリRPMだけを作成するmakeのターゲットとして適切なものはどれか。
当サイトのオリジナル問題(LinuCレベル2の出題範囲「システムの起動とLinuxカーネル」に対応。実際の試験問題ではありません)
- Amake rpm-pkg
- Bmake binrpm-pkg
- Cmake deb-pkg
- Dmake modules_install
正解:B
解説
カーネルのMakefileには、ビルド結果をディストリビューションのパッケージ形式にまとめるターゲットが用意されています。make binrpm-pkgはバイナリのRPMパッケージだけを、make rpm-pkgはソースRPMとバイナリRPMの両方を作成します。Debian系向けにはmake deb-pkgやmake bindeb-pkgがあります。パッケージにしておくと、複数のマシンへの配布や、パッケージ管理システムによるアンインストールが容易になります。
選択肢ごとの解説
- A誤り。make rpm-pkgは、ソースRPMとバイナリRPMの両方を作成するターゲットです。
- B正しい。make binrpm-pkgは、ソースRPMを作らずバイナリのRPMパッケージだけを作成します。
- C誤り。make deb-pkgは、Debian系向けのdebパッケージ(ソースパッケージとバイナリパッケージ)を作成するターゲットです。
- D誤り。make modules_installは、ビルドしたモジュールを/lib/modules/カーネルバージョン/配下へ配置するターゲットで、パッケージは作りません。