LinuCレベル2 システムの保守と運用管理 問23
システムの保守と運用管理/makeによるソースコードからのビルドとインストールGitで公開されているソフトウェアについて、リリース済みの特定バージョンのソースからビルドしたい。ソースを用意する手順として適切なものはどれか。
当サイトのオリジナル問題(LinuCレベル2の出題範囲「システムの保守と運用管理」に対応。実際の試験問題ではありません)
- Agit pull でリモートの全ブランチを取得し、git merge でバージョンを指定して展開する
- Bgit init でリモートのリポジトリを複製し、git log -l でリリースの一覧を確認する
- Cgit clone でリポジトリを複製し、git branch -d でリリース以外の履歴を削除する
- Dgit clone でリポジトリを複製し、git tag -l でタグを確認し git checkout で切り替える
正解:D
解説
Gitで公開されているソフトウェアは、git cloneでリポジトリを手元に複製し、リリースごとに付けられたタグをgit tag -lで一覧してから、git checkout タグ名でその時点のソースに切り替えるのが一般的な手順です。その後は通常どおり./configure、make、make installなどでビルド・インストールします。タグは特定のコミットに付けた名前で、ブランチと違って後から動かないため、リリースの版を指定するのに向いています。
選択肢ごとの解説
- A誤り。git pullは既存のリポジトリに変更を取り込むコマンドで、まだ複製していない状態では使えません。git mergeでバージョンを指定して展開するという使い方もしません。
- B誤り。git initは空のリポジトリを新規作成するコマンドで、リモートの複製はgit cloneで行います。
- C誤り。git branch -dはローカルのブランチを削除するコマンドで、特定のバージョンに切り替える操作ではありません。
- D正しい。cloneで複製し、tag -lでタグを確認して、checkoutでそのバージョンに切り替えます。