【LinuC 201試験】2.04 makeによるビルドとバックアップ・リストアのまとめ|Linux初学者向け解説【tar・rsync・dd・make】

※本ページはプロモーションが含まれています

こんにちは!いつもブログを読んでいただき、ありがとうございます。

今回は、主題2.04「システムの保守と運用管理」の前半、2.04.1 makeによるビルドとインストール2.04.2 バックアップとリストア を解説していきます!

「ソースコードからインストールって何をすればいいの?」「tarrsync はどう使い分けるの?」——そんな疑問を持っている方も多いと思います。試験頻出ポイントを中心に整理していくので、一緒に攻略していきましょう!

LinuC 201全体の学習ロードマップはこちらにまとめています♪

👉 【LinuC 201】独学合格へのロードマップ!勉強方法と出題範囲の全体像まとめ


📋 試験の重要情報と学習のゴール

主題番号テーマ重要度
2.04.1makeによるソースコードからのビルドとインストール3(5段階中)
2.04.2バックアップとリストア3(5段階中)

どちらも重要度3です。2.04.2 のバックアップコマンド(tarrsyncdd は試験の超頻出範囲なので、オプションの意味まで丁寧に覚えていきましょう!


1. makeによるソースコードからのビルドとインストール|★★☆

そもそも「ソースコードからインストール」って何?

LinuxでソフトウェアをインストールするときはRPMやdebのパッケージを使うのが一般的ですが、パッケージが存在しない場合や特定オプションでカスタムビルドが必要な場合は、ソースコードからビルドします。

流れはこの4ステップです。

1. ソースコードを入手する(tar.gz を展開 / git clone)
2. configure スクリプトでビルド環境を設定する
3. make でコンパイルする
4. make install でインストールする

★ここがポイント! この流れは試験でも「次に実行すべきコマンドはどれ?」という形でよく出てくるので、順番ごとセットで覚えてしまいましょう!


ソースコードの入手(tar / git)

# tar.gz アーカイブを展開する
tar xzf software-1.0.tar.gz
cd software-1.0

# git からクローンする
git clone https://github.com/example/software.git
cd software

# タグの一覧を確認する(リリースバージョンを調べるときに使う)
git tag -l

# 特定のバージョン(タグ)に切り替える
git checkout v1.0.0

📝 試験ポイント:git 関連でシラバスに明記されているのは git clonegit tag -lgit checkout の3つです。特に git tag -l は「リリースバージョンの一覧を確認するコマンド」として覚えておきましょう。


patch — ソースコードにパッチを適用する

ソースコードに修正を加えたいとき、差分ファイル(パッチ)を適用するのが patch コマンドです。

# パッチファイルを適用する(-p1 はパスの先頭1階層を除去する)
patch -p1 < fix.patch

# パッチを逆適用する(適用済みのパッチを元に戻す)
patch -R -p1 < fix.patch

📝 試験ポイント-p1 オプションは「パッチファイル内のパスから先頭1階層分を除いて適用する」という意味です。パッチファイルの先頭に a/b/ が付いていることが多いため、-p1 が慣習的によく使われます。


configure — ビルド環境の確認と Makefile の生成

configure スクリプトは、ビルドに必要なライブラリやコンパイラが揃っているかチェックし、環境に合った Makefile を生成します。

# 基本的な実行
./configure

# インストール先を指定する(デフォルトは /usr/local)
./configure --prefix=/usr/local

# 特定の機能を有効/無効にする
./configure --enable-ssl --disable-debug

# 利用可能なオプションを確認する
./configure --help
よく使うオプション意味
--prefix=パスインストール先ディレクトリを指定
--enable-機能名特定機能を有効化
--disable-機能名特定機能を無効化
--with-ライブラリ名使用するライブラリを指定

📝 試験ポイントconfigure を実行すると Makefile が生成されます。このファイルが次のステップの make で使われます。「configureMakefile 生成」という流れを押さえましょう。


make — コンパイル実行

make コマンドは Makefile の内容に従ってソースコードをコンパイルします。

# コンパイルを実行する
make

# 並列コンパイルでビルドを高速化する(CPUコア数を指定)
make -j4

# ビルド成果物を削除してクリーンな状態に戻す
make clean

# テストを実行する(ソフトウェアによっては存在する)
make test

📝 試験ポイントmake clean はビルドで生成された .o ファイルやバイナリを削除して、クリーンな状態に戻すコマンドです。configure からやり直したいときに使います。


make install — インストール

コンパイルされたバイナリを指定のディレクトリにコピーします。

# インストールを実行する(通常はroot権限が必要)
sudo make install

# アンインストールする(対応している場合)
sudo make uninstall

⚠️ 注意make install でインストールしたソフトウェアはパッケージ管理システム(rpm/apt)では管理されません。アップデートやアンインストールも手動で行う必要があります。 実務では checkinstall というツールを使って make install の代わりにパッケージとしてインストールし、管理しやすくするケースもあります。試験では基本的な流れを押さえればOKです。


Makefile の基本構造(ここ、試験に出ます!)

# Makefile の基本構造
ターゲット名: 依存ファイル1 依存ファイル2
	コマンド(行頭はタブ文字!スペースは不可)

# 例
hello: hello.c
	gcc -o hello hello.c

clean:
	rm -f hello *.o

⚠️ 試験の超頻出ひっかけ:Makefile のコマンド行の先頭は タブ文字(Tab) でなければなりません。スペースを使うとエラーになります。これは非常によく出る問題です。


2.04.1 まとめ

ビルドの流れ(必ず覚える):

tar xzf software.tar.gz → cd software → ./configure → make → sudo make install
コマンド役割
git cloneリポジトリをクローンする
git tag -lタグ(バージョン)の一覧を確認する
git checkout タグ名特定バージョンに切り替える
patch -p1 < fix.patchソースコードにパッチを適用する
./configureビルド環境チェック・Makefile 生成
./configure --prefix=パスインストール先を指定
makeコンパイル実行
make cleanビルド成果物を削除
sudo make installインストール実行

2. バックアップとリストア|★★★ 最頻出!

バックアップの3方式(試験頻出!)

バックアップには大きく分けて3種類の方式があります。試験では各方式の違いと、リストア手順の違いが問われます。

方式説明リストア特徴
フルバックアップデータ全体を毎回バックアップ1回で完了時間・容量が大きい
差分バックアップ前回のフルから変わったデータのみ保存フル+差分の2回フルよりデータ量が少ない
増分バックアップ前回のバックアップから変わったデータのみ保存フル+全増分(複数回)最もデータ量が少ない

★ここがポイント! 「差分は前のフルとの差増分は前回との比較で増えた分」と覚えましょう。リストアの複雑さは 増分 > 差分 > フル の順です。


tar — アーカイブとバックアップの定番(★★★ 最頻出!)

tar はファイルをまとめてアーカイブするコマンドです。オプションの組み合わせが試験に非常によく出ます。

# アーカイブを作成する(圧縮なし)
tar cvf backup.tar /home/user/

# gzip 圧縮でアーカイブを作成する(.tar.gz)
tar czvf backup.tar.gz /home/user/

# bzip2 圧縮でアーカイブを作成する(.tar.bz2)
tar cjvf backup.tar.bz2 /home/user/

# xz 圧縮でアーカイブを作成する(.tar.xz)
tar cJvf backup.tar.xz /home/user/

# アーカイブの内容を確認する(展開しない)
tar tvf backup.tar.gz

# アーカイブを展開する
tar xvf backup.tar.gz

# 特定のディレクトリに展開する
tar xzvf backup.tar.gz -C /tmp/restore/

tar の主要オプション早見表(ここ、試験に出ます!)

オプション意味英語の元の言葉
cアーカイブを作成するCreate
xアーカイブを展開するeXtract
t内容一覧を表示するlisT
v詳細表示するVerbose
fファイルを指定するFile
zgzip 圧縮/展開gZip
jbzip2 圧縮/展開bzip2の「j」
Jxz 圧縮/展開(大文字)xz
C展開先ディレクトリを指定Change dir

📝 試験の超頻出ポイント:特に「作成は c」「展開は x」「gzip=z・bzip2=j・xz=J(大文字)」の区別を確実に覚えましょう。英語の元の言葉と紐づけると忘れにくいですよ。


rsync — 差分同期・バックアップの強力ツール(★★★)

rsync は変更のあったファイルのみを転送する差分同期ツールです。ネットワーク越しのバックアップにも使えます。

# 基本的なディレクトリ同期
rsync -av /home/user/ /backup/user/

# ネットワーク越しの同期(SSH経由)
rsync -avz /home/user/ user@server:/backup/user/

# 削除されたファイルも同期先で削除する
rsync -av --delete /home/user/ /backup/user/

# ドライラン(実際には実行せず確認だけ)
rsync -av --dry-run /home/user/ /backup/user/

# 特定のファイルを除外する
rsync -av --exclude='*.log' /home/user/ /backup/user/

rsync の主要オプション

オプション意味
-aアーカイブモード。権限・タイムスタンプ・シンボリックリンクを保持
-v詳細表示(verbose)
-z転送時にデータを圧縮する
-u送信先より新しいファイルだけを上書きする(古いファイルはスキップ)
--delete送信元に存在しないファイルを同期先から削除する
--dry-run / -n実際には実行せず確認だけ行う
--exclude=パターン除外するファイルパターンを指定

📝 試験ポイント-a(アーカイブモード)は「パーミッション・タイムスタンプ・シンボリックリンクなどを保持した完全なコピー」を意味します。バックアップには -a が基本です。

⚠️ 末尾スラッシュの罠rsync -av /src/ /dst//src では挙動が異なります。/src/(末尾スラッシュあり)は src の中身を転送。/src(なし)は src ディレクトリ自体を転送します。試験でもよく問われる違いです。


dd — ブロックデバイス単位のバックアップ(★★☆)

dd はブロック単位でデータをコピーするコマンドです。ディスク全体のイメージバックアップに使います。

# ディスク全体をファイルにバックアップする
dd if=/dev/sda of=/backup/sda.img

# 圧縮しながらバックアップする
dd if=/dev/sda | gzip > /backup/sda.img.gz

# イメージをディスクに書き戻す(リストア)
dd if=/backup/sda.img of=/dev/sda

# 進捗を表示しながらコピーする
dd if=/dev/sda of=/backup/sda.img status=progress

# ブロックサイズを指定して高速化する
dd if=/dev/sda of=/backup/sda.img bs=4M
オプション意味英語の元の言葉
if=入力元を指定input file
of=出力先を指定output file
bs=ブロックサイズを指定block size
count=コピーするブロック数を指定
status=progress進捗状況を表示する

⚠️ ddif(入力)と of(出力)の順番を間違えるとデータが消えます。 また、確認なしで即座に上書き実行されるため「ディスク破壊コマンド」と呼ばれることもあります。実行前に if=of= を必ず見直す癖をつけましょう。試験でも「どちらが入力か出力か」を問う問題が出るので、しっかり押さえておきましょう!


dump / restore — ファイルシステム単位のバックアップ(★★☆)

dump はext系ファイルシステム専用のバックアップツールです。フル・増分バックアップに対応しています。

# フルバックアップ(レベル0)を実行する
dump -0u -f /backup/home.dump /home

# 増分バックアップ(レベル1)を実行する
dump -1u -f /backup/home_inc.dump /home

# バックアップファイルからリストアする
restore -rf /backup/home.dump

# 対話的にリストアする
restore -if /backup/home.dump
オプション意味
-0-9バックアップレベル(0=フル、1〜9=増分)
-u/etc/dumpdates にバックアップ情報を記録する
-fバックアップ先ファイルを指定

📝 試験ポイントdump のバックアップレベルは 0〜9 で指定します。レベル0がフルバックアップ、1〜9が増分バックアップです。-u オプションで /etc/dumpdates に記録されます。 なお dumpext系ファイルシステム専用であり、現在の実務では rsynctar が主流です。ただし試験では出題対象なので、基本的な使い方は押さえておきましょう。


試験で狙われる!引っかけポイントまとめ 💣

過去問を解いていて「これは引っかかる!」と感じたパターンをまとめました。試験直前に見直してみてくださいね。

#間違いパターン正しい理解
1Makefile のコマンド行の先頭にスペースを使った❌ 先頭はタブ文字でなければならない。スペースはエラーになる
2tar で展開するオプションに c を使ったc は作成(Create)。展開は x(eXtract)
3tar の xz 圧縮オプションを小文字 j にした❌ xz は大文字 J。小文字 j は bzip2
4dd if=バックアップ of=/dev/sda でバックアップしようとしたif は入力(読み込む側)。バックアップは if=/dev/sda of=バックアップ が正しい
5dump -1 を最初に実行した❌ 増分バックアップの前に必ず dump -0(フルバックアップ)が必要
6rsync /src /dst で src の中身だけをコピーしようとした❌ 末尾スラッシュなしだと src ディレクトリ自体がコピーされる。中身のみは /src/ と書く

🎓 一緒に使っている教材はこちら

私がメインで使っている参考書と問題集です。よければ一緒に勉強していきましょう(笑)

【PR】▶ あずき本(Linux教科書 LinuCレベル2 Version 10.0対応) 概念や仕組みをしっかり理解したいときの辞書代わりに。まずここで基礎を固めます。

【PR】▶ スピードマスター LinuCレベル2問題集(白本) 本番に近い難易度で問題演習したいときに。あずき本で理解したあとに使うと定着度が上がります。


✅ まとめ

お疲れ様でした!今回のポイントをおさらいしましょう。

  • ビルドの流れtar 展開 → git checkout でバージョン指定 → patch でパッチ適用 → ./configuremakesudo make install
  • patch -p1:パッチ適用の基本オプション。逆適用は -R
  • configure:実行すると Makefile が生成される
  • Makefile のコマンド行:先頭は必ずタブ文字(スペースは不可)
  • tar:作成=c、展開=x、gz=z、bzip2=j、xz=J(大文字)
  • rsync -a:アーカイブモード。権限・タイムスタンプを保持
  • rsync 末尾スラッシュ:あり→中身のみ転送、なし→ディレクトリ自体を転送
  • ddif が入力、of が出力。逆にするとデータ消失
  • dump のレベル:0=フルバックアップ、1〜9=増分バックアップ

皆さんにとって、今日も素敵な1日になりますように!


参考:LPI-Japan 公式試験範囲 https://linuc.org/linuc2/range/201.html

※本記事はLinuC レベル2 Version 10.0 の出題範囲をもとに作成しています。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA