過去問ドリル

LinuCレベル2 システムの起動とLinuxカーネル 問38

システムの起動とLinuxカーネル/Linuxカーネルのコンパイル

カーネルのソースツリーで、ビルドしたカーネルをRPMパッケージとしてまとめたい。ソースRPMは不要で、インストール用のバイナリRPMだけを作成するmakeのターゲットとして適切なものはどれか。

当サイトのオリジナル問題(LinuCレベル2の出題範囲「システムの起動とLinuxカーネル」に対応。実際の試験問題ではありません)

正解: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/カーネルバージョン/配下へ配置するターゲットで、パッケージは作りません。
LinuCレベル2の問題を演習モードで解く