ラズパイでSVN(SubVersion)環境を作ろう

ラズパイでSVN

 Raspberry PiにSVN(SubVersion)の環境を構築します。一般的には複数人で開発するプログラムのソースコードを管理することが多いと思いますが、ここでは知人や個人向けとして使用することを目的としており、ExcelやWordのファイルなどの管理にも使えると考えています。
 最終的には外付けSSDやHDDへのデータ保存、外部(知人宅や出先)からの使用を目指します。


準備

 準備として、Raspbianインストール済みのラズパイを用意し、sudo apt-get update、sudo apt-get upgradeを済ませておいてください。
 また、IPアドレスはDHCPからの取得ではなく、固定IPアドレスを設定しておいてください。
 固定IPアドレスの設定については、こちらをご参照ください。

 ここでは、以下のRaspbianを使用しています。ラズパイ本体は、Raspberry Pi 3B+です。
 Raspbian Buster with desktop and recommended software
  Version:February 2020
  Release date:2020-02-13
  Kernel version:4.19

 動作確認用のPCは、Windows10を想定しています。

SVN(SubVersion)のインストール

 LXTerminalを起動し、以下のコマンドを入力してください。

sudo apt-get install subversion
sudo apt-get install subversion-tools

 「続行しますか?」のメッセージが表示された場合は、Enterキーを押下してください。

 続けて、subversion-toolsをインストールします。
 「続行しますか?」のメッセージが表示された場合は、Enterキーを押下してください。

Apache(Webサーバ)のインストール

 LXTerminalを起動し、以下のコマンドを入力してください。
 SVNインストール時と同様、「続行しますか?」のメッセージが表示された場合は、Enterキーを押下してください。

sudo apt-get install apache2
sudo apt-get install libapache2-mod-svn

 Apacheを有効化し、再起動します。
 LXTerminalを起動し、以下のコマンドを入力してください。

sudo systemctl enable apache2
sudo systemctl restart apache2

 以上で、SVNとApacheのインストールが完了しました。次は設定を行います。
 最初は動作確認を目的に、最低限の設定を行います。
 最終的には、httpでSVNに接続する際には認証(パスワード入力)するようにし、通信の暗号化(SSL化)を行います。

Apacheの設定

 Apcheの設定ファイルに追記します。
 LXTerminalを起動し、以下のコマンドを入力してください。

sudo mousepad /etc/apache2/mods-available/dav_svn.conf

 Apacheの設定ファイルが開きます。最終行に以下の内容を追記してください。

<Location /svn>
  DAV svn
  SVNParentPath /var/svn/repos
</Location>

 Apacheを再起動し、設定内容を反映します。
 LXTerminalを起動し、以下のコマンドを入力してください。

sudo systemctl restart apache2

SVN(SubVersion)の設定

 SVN用のディレクトリ、リポジトリを作成し、権限を設定します。
 LXTerminalを起動し、以下のコマンドを入力してください。

sudo mkdir -p /var/svn/repos
sudo svnadmin create /var/svn/repos/myproj
sudo chown -R www-data:www-data /var/svn/repos

 以上で設定は完了です。ラズパイを再起動します。
 LXTerminalを起動し、以下のコマンドを入力してください。

sudo reboot

動作確認

 ブラウザを起動し、SVNサーバ(ラズパイ)のアドレスを開きます。
 ここでは、http://192.168.10.138/svn/myproj とします。

 以下のような画面が表示されれば、正常に稼働しています。

SVNを使ってみる

 実際にSVNを使ってみます。使用するクライアントは、TortoiseSVNです。
 TortoiseSVN公式サイトから、最新版をダウンロードします。2020年5月時点では、version 1.13.1が最新でした。

 ダウンロードページをスクロールすると、Language Packsがあるので、Japaneseをダウンロードしておきます。

 ダウンロードしたTortoiseSVN-1.13.1.28686-x64-svn-1.13.0.msiを実行してインストールします。
 インストールは画面の指示に従って進めます。ここではインストール手順は省略します。

 TortoiseSVNのインストール後、日本語パックであるLanguagePack_1.13.1.28686-x64-ja.msiもダウンロードします。こちらもインストール手順は省略します。

 インストール完了後、エクスプローラーを起動します。任意の場所で右クリックし、SVNの設定時に作成したmyprojリポジトリからチェックアウトします。
 ここでは、Dドライブ上で右クリックし、「SVNチェックアウト(K)…」を選択しました。

 チェックアウトのウィンドウが表示されるので、リポジトリのURL(SVNの動作確認時のアドレス)を入力し、チェックアウト先のディレクトリ(ここでは、Dドライブを指定したため、D:\myprojとなっています)を確認して「OK」をクリックします。

 以下のようなウィンドウが表示されれば成功です。
 ここまでの作業で、SVNサーバとSVNクライアントが使用できるようになりました。

終わりに

 今回は最低限の作業のみを行いましたが、個人で利用するには十分な環境だと思います。
 今後は、ユーザ認証(パスワード要求)、SSL化(通信の暗号化)、外付けSSD/HDDへのリポジトリ作成、リポジトリのバックアップ/リストアなどに挑戦したいと思います。