Instiq
第4章 · システムの保守と運用管理·v1.0.0·更新 2026/7/7·読了目安 約12分

変更要約: 初版(主題2.04・副主題2.04.1〜2.04.6に対応)

4.1make によるソースからのビルドとインストール

この節の要点

パッケージ管理に頼らずソースコードからビルドする一連の流れを学びます。git clonegit tag -lgit checkoutによるソース取得、gzipgunzipbzip2xztarunzipによる展開、patchによる差分適用、configureによる環境検出、makemake installによるビルドと配置を押さえます。

ディストリビューションのパッケージにまだ収録されていない最新版や、独自にビルドオプションを変えたいソフトウェアは、ソースコードから自分でビルドするしかありません。運用管理者にとって「どこからソースを取り、どう検証し、どう配置するか」を一連の型として押さえることは、専門知識としての土台になります。

4.1.1ソースの取得とバージョン選択

  • git clone でリポジトリを丸ごと取得。安定版を使いたい場合はgit tag -lでタグ一覧を確認し、git checkout <tag>で特定のリリースに切り替える。
  • 配布サイトから取得したアーカイブは圧縮形式に応じて展開する:gzip/gunzip(.gz)・bzip2(.bz2)・xz(.xz)・tar(まとめて展開/tar xzf等)・unzip(.zip)。
  • ベンダー配布のパッチファイルはpatchで当てる(patch -p1 < fix.patch)。ソース展開後・configure 前に適用するのが基本の順序。

4.1.2configure から make install まで

  • configure./configure)は実行環境(コンパイラ・ライブラリ・依存の有無)を検出し、Makefileを生成するスクリプト。--prefix= でインストール先を指定できる。
  • make は生成された Makefile に従いソースをコンパイル。続くmake installでバイナリ・マニュアル等を配置先(既定 /usr/local 等)へコピーする。
  • 典型的な一連の流れは ./configure && make && make install。configure が依存の欠落を検出した場合はエラーで停止するため、make の前に解消する。
試験ポイント

「configure が Makefile を生成する」「make はコンパイル・make install は配置」「patch は展開後・ビルド前に当てる」「git tag -l でタグ確認→ git checkout で切替」の順序関係が最頻出です。圧縮形式と展開コマンドの対応(.gz=gzip/gunzip・.bz2=bzip2・.xz=xz)も定番の識別問題です。

実務での典型シナリオを追うと理解が深まります。最新の安定版を使いたいとき、git clone で取得した直後の作業ツリーは開発中の最新コミットであることが多いため、まず git tag -l でリリースタグ(例 v2.4.1)を確認し、git checkout v2.4.1 で明示的に切り替えます。ベンダーが提供する配布アーカイブ(tarball)を使う場合は、.tar.gz なら tar xzf.tar.xz なら tar xJf のように圧縮方式に応じたオプションを選びます。展開後、既知の不具合を直すpatchファイルが提供されていれば、cd でソースディレクトリに入ってから patch -p1 < xxx.patch を適用し、その後でconfigureを実行します。configure はコンパイラの有無や依存ライブラリを検査して環境に合った Makefileを作るため、ここで依存不足のエラーが出たら make に進む前に該当パッケージを導入します。最後の make install は多くの場合 root 権限が必要で、/usr/local/bin のようにディストリビューションのパッケージ管理外のパスへ配置されるため、後々のアップデート・アンインストールの手間が増える点も運用上の判断材料です。

圧縮形式展開コマンド備考
.gzgzip -d / gunziptar併用時は tar xzf
.bz2bzip2 -dtar併用時は tar xjf
.xzxz -dtar併用時は tar xJf
.zipunziptar系とは別系統
注意

ひっかけ: 「make がインストール先へファイルを配置する」は誤りです。コンパイルは make・配置は make installの役割分担です。また「patch は configure の後に当てる」も誤りで、通常はソース展開直後・configure より前に適用します。「git checkout でタグ一覧が見られる」も誤りで、一覧確認はgit tag -lの役割です。

git clone/checkout からpatch・configure・make・make installまでの流れを示す図。
configure が Makefile を生成

4.1.3この節のまとめ

  • 取得は git clone / git tag -l / git checkout、展開は圧縮形式に応じ gzip・bzip2・xz・tar・unzip
  • 順序は patch → configure(Makefile生成) → make(コンパイル) → make install(配置)

進捗の記録にはログインが必要です。

理解度チェック

(軽い確認用)

Q1. Git リポジトリを clone した後、特定のリリースタグ v2.4.1 のソースに切り替えたい。まず確認すべきコマンドと、切り替えに使うコマンドの組み合わせとして適切なのは?

Q2. ソースアーカイブ app-1.0.tar.xz を展開し、既知の不具合を修正する fix.patch を適用してからビルドしたい。作業順序として適切なのは?

Q3. ./configure && make && make install を実行したところ、configure の段階でライブラリ不足のエラーが出て停止した。次に取るべき行動として適切なのは?

理解度を確認第4章「システムの保守と運用管理」の問題を解く

学習の記録を残しませんか

参考書はすべて無料で読めます。無料登録すると、問題集での演習・既読と進捗の記録・間違えた問題の復習・ハイライトが使えます。