Ubuntu Weekly Recipe

第58回 ファイルのバージョンを管理する

この記事を読むのに必要な時間:およそ 3 分

ネットワーク経由でSubversionを使う

Subversionはネットワークを経由して各種操作を行うことができます。そのためにはリポジトリを作成したマシンがSubversionのサーバとして動作するようセットアップする必要がありますが,ここでは最も簡単だと思われるsshを経由する方法を紹介します。

手順としては,サーバにopenssh-serverパッケージをインストールし,ユーザがsshでログインできるようにするだけです。既にsshでのログインが可能な状態になっているのであれば,特に設定は必要ありません。

前述の例ではローカルのリポジトリにアクセスするためfile://スキーマを使用してリポジトリを指定しましたが,sshを経由する場合はsvn+ssh://スキーマを使用します。またリポジトリの位置はルートからのフルパスで指定する必要があります。

$ svn co svn+ssh://svn.mydomain.org/home/mizuno/svn/test-repo

筆者はファイルサーバ上にリポジトリを作成し,ホームディレクトリ以下に置く設定ファイル(.emacsや.zshrcなど)をバージョン管理しています。各マシンでホームディレクトリに設定ファイルをチェックアウトし,変更があったらコミットし,他のマシンではアップデート(svn upコマンド)を行う...という運用をしています。

Subversionについて詳しく調べるにはSubversion によるバージョン管理のページなどが参考になるでしょう。

GUIからSubversionを使う

前述の操作は全て端末から行うことを想定していますが,GUIのSubversionクライアントソフトも存在します。有名なクライアントソフトは数種存在しますが,ここではRapidSVNを紹介します。Synapticやapt-getでrapidsvnパッケージをインストールしてください。

画像

リポジトリを読み込むには,Bookmarksを右クリックして"Checkout New Working Copy"を実行します。以下のようなダイアログが表示されますので,リポジトリのアドレスとチェックアウトする作業コピーの場所を入力してください。

画像

詳細はメニューのHelpから開けるオンラインヘルプを参照してください。

etckeeper

/etc以下のファイル群は,どれもシステム全体の動作に影響を与える重要な設定ファイルです。etckeeperを導入することで,これら/etc以下全体をバージョン管理下に置くことができます。apt-getやSynapticからetckeeperパッケージをインストールしてください。

etckeeperを使い始める前に,設定ファイルを編集する必要があります。/etc/etckeeper/etckeeper.confをテキストエディタで開いてください。

$ sudo gedit /etc/etckeeper/etckeeper.conf

ファイルの先頭に,バックエンドで使用するバージョン管理ツールを指定する部分があります。etckeeperのインストール時にgitがインストールされているはずですので,ここではgitを指定します。

# The VCS to use.
# VCS="hg"
VCS="git"
# VCS="bar"

なおetckeeperはgitの他に,mercurialやbazzarをバックエンドに使用することもできます。

設定ファイルの編集が完了したら,以下のコマンドを実行してリポジトリを初期化した後,最初のバージョンをコミットしましょう。

$ sudo etckeeper init
$ sudo etckeeper commit

RCSやSubversion同様,コミットログの入力を求められます。コミットログを入力してエディタを終了すれば,ファイルのコミットは完了です。

以降は /etc 以下のファイルを編集する度にコミットを行ってください。なおシステムが自動的に書き換える可能性のあるファイルはバージョン管理下にはおかれませんので,注意してください。

詳しくはetckeeperのマニュアル(/usr/share/doc/etckeeper/README)を参照してください。

著者プロフィール

水野源(みずのはじめ)

Ubuntu Japanese Teamメンバー。理想のフリーデスクトップ環境を求めて東へ西へ……のはずが,気がついたら北の大地で就職していたインフラ寄りのエンジニア。最近レンズ沼にハマる。