過去問ドリル

LinuCレベル2 システムの保守と運用管理 問35

システムの保守と運用管理/makeによるソースコードからのビルドとインストール

Automakeで生成されたMakefileを持つソフトウェアを、--prefix=/usr/localで構成してビルドした。「make DESTDIR=/tmp/stage install」を実行したときの動作として適切なものはどれか。

当サイトのオリジナル問題(LinuCレベル2の出題範囲「システムの保守と運用管理」に対応。実際の試験問題ではありません)

正解:A

解説

DESTDIRは、インストール先の各パスの前に付け加えるディレクトリを指定する変数です。prefixは変わらないため、プログラムが実行時に参照するパスは/usr/localのままで、ファイルだけが/tmp/stage/usr/local以下へ置かれます。パッケージを作るときに、実際のシステムを汚さず一時ディレクトリへ配置して、そこから固める用途で使われます。手書きのMakefileではDESTDIRに対応していないこともあります。

選択肢ごとの解説

  • A正しい。DESTDIRは各インストール先のパスの前に付け加えられ、prefix自体は変わりません。
  • B誤り。prefixを変えるのはconfigureの--prefixで、DESTDIRは実行時に参照するパスを変えません。
  • C誤り。DESTDIRを指定すると/usr/localへは配置されず、/tmp/stage以下にだけ配置されます。
  • D誤り。DESTDIRを指定しても実際にファイルが配置されます。一覧を出すだけの動作ではありません。
LinuCレベル2の問題を演習モードで解く