LinuCレベル2 201試験の例題と解説

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

LinuCレベル2 201試験の出題範囲から「2.04.1 makeによるソースコードからのビルドとインストール」についての例題を解いてみます。
このテーマには、開発作業におけるソースコードの入手からそのビルドまで含まれる主題となります。また、gitについてはドキュメントの変更履歴を含めた管理に用いられるなど利用される場面が多く、実践の場にも活用できるため、しっかりと把握しておきましょう。

Linucレベル2 201試験 出題範囲


例題

masterブランチからある機能を開発するために作成したブランチ"add_func_a"へ切り替えたい。
以下の空欄に入るキーワードは何か。

git (    ) add_func_a

※この例題は実際の試験問題とは異なります。


解答と解説

正解は、「checkout」です。

Gitは、ソースコードなどの変更履歴を記録・保存するための仕組みで開発作業などにおいてよく用いられ、gitコマンドやGUIのクライアントソフトウェアを使って操作を行います。

作業の際にはまず、インターネット上などのレポジトリ(githubなど)からgit cloneコマンドでレポジトリのコピーを取得し、コピーされたレポジトリのことをローカルレポジトリと呼びます。

そして、開発作業では直接そのローカルレポジトリデータ(masterブランチ)を更新するのではなく、ブランチという分岐された個別の環境を作成します。

ブランチは、機能追加用・バグフィックス用など別々に作成し、追加するコードにより実現する機能や修正に問題がないことを確認できた後、masterブランチとへ追加(マージ)します。

複数のバグフィックス対応をする場合には、それぞれ別のブランチを用意してgit checkoutコマンドで切り替えることができます。

また、複数の機能追加やバグフィックスに関するコードがマージされ、新バージョンとしてリリースする際には、git tagコマンドでタグを付与して管理します。

以下、gitコマンドによる操作例です。

[root@f73f4487175b ~]# git clone https://github.com/taro/katacoda・・・・git cloneコマンドによるデータ取得
Cloning into 'katacoda'...
remote: Enumerating objects: 161, done.
remote: Counting objects: 100% (161/161), done.
remote: Compressing objects: 100% (105/105), done.
remote: Total 161 (delta 58), reused 142 (delta 39), pack-reused 0
Receiving objects: 100% (161/161), 16.68 KiB | 0 bytes/s, done.
Resolving deltas: 100% (58/58), done.
[root@f73f4487175b ~]# ls
katacoda
[root@f73f4487175b ~]# cd katacoda/

[root@f73f4487175b katacoda]# git pull・・・・git pullコマンドによる差分データ取得
remote: Enumerating objects: 9, done.
remote: Counting objects: 100% (9/9), done.
remote: Compressing objects: 100% (2/2), done.
remote: Total 5 (delta 3), reused 5 (delta 3), pack-reused 0
Unpacking objects: 100% (5/5), done.
From https://github.com/taro/katacoda
   9949c6e..2ef0b3e  master     -> origin/master
Updating 9949c6e..2ef0b3e
Fast-forward
 Courses/nginx_web/intro.md | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

[root@f73f4487175b katacoda]# git branch -a
* master
  remotes/origin/HEAD -> origin/master
  remotes/origin/master
[root@f73f4487175b katacoda]# git branch add_func_a・・・・git branchコマンドによるブランチ追加
[root@f73f4487175b katacoda]# git branch -a・・・・git branchコマンドによるブランチ一覧表示
  add_func_a
* master
  remotes/origin/HEAD -> origin/master
  remotes/origin/master

[root@f73f4487175b katacoda]# git checkout add_func_a・・・・git checkoutコマンドによるブランチ切替
Switched to branch 'add_func_a'
[root@f73f4487175b katacoda]# git branch -a
* add_func_a
  master
  remotes/origin/HEAD -> origin/master
  remotes/origin/master

[root@f73f4487175b katacoda]# git log・・・・git logコマンドによる更新履歴確認
commit 2ef0b3eac85e461b76b733d69bf643ba6bc02264
Author: taro <taro@gmail.com>
Date:   Sun Apr 4 20:48:53 2021 +0900

    version1.0.0 release

[root@f73f4487175b katacoda]# git config --global user.email taro@gmail.com・・・・git configコマンドによるgit設定追加
[root@f73f4487175b katacoda]# git config --global user.name taro

[root@f73f4487175b katacoda]# git tag -a v1.0.0 2ef0b3eac85e461b76b733d69bf643ba6bc02264・・・・git tagコマンドによるタグ追加
[root@f73f4487175b katacoda]# git tag・・・・git tagコマンドによるタグ一覧表示
v1.0.0
v0.9
v0.8
v0.7
[root@f73f4487175b katacoda]# git tag -l
v1.0.0
v0.9
v0.8
v0.7
[root@f73f4487175b katacoda]# git tag -l v0*・・・・git tagコマンドによるフィルターをかけたタグ一覧表示
v0.9
v0.8
v0.7
[root@f73f4487175b katacoda]# git show v1.0.0・・・・git showコマンドによるタグ内容の詳細確認
tag v1.0.0
Tagger: taro <taro@gmail.com>
Date:   Sun Apr 4 12:00:10 2021 +0000

Version 1.0.0 release

commit 2ef0b3eac85e461b76b733d69bf643ba6bc02264
Author: taro <taro@gmail.com>
Date:   Sun Apr 4 20:48:53 2021 +0900

    version1.0.0 release

diff --git a/Courses/nginx/intro.md b/Courses/nginx/intro.md
index ad226ec..6865cf7 100644
--- a/Courses/nginx/intro.md
+++ b/Courses/nginx/intro.md
@@ -1,3 +1,3 @@
-USER=jiro  
+USER=taro  

Gitやgitコマンドの詳細は、以下で確認できます。
https://git-scm.com/docs/user-manual


例題作成者

鯨井 貴博(LinuCエヴァンジェリスト/登録インストラクター、LPI-Japanアカデミック認定校 Zeus IT Camp)

ページトップへ