Ubuntu ServerでSVNサーバ構築
Subversionのリポジトリサーバを立てた際のメモを整理してみました。
Ubuntu Serverのインストール〜初期設定
ネットワーク設定
IPを固定する。
$ sudo vi /etc/network/interfaces auto lo iface lo inet loopback auto eth0 iface eth0 inet static address 192.168.0.100 netmask 255.255.255.0 gateway 192.168.0.1 $ sudo touch /etc/resolv.conf $ sudo vi /etc/resolv.conf nameserver 192.168.0.1 $ sudo /etc/init.d/networking restart
確認。
$ nslookup google.co.jp
OpenSSHのインストール
$ sudo apt-get update $ sudo apt-get install openssh-server
外の世界から接続する場合はセキュリティの為設定するが、今回は省略する。
以降は開発PCからリモート操作。
Subversionのインストール〜初期設定
Subversionのインストール
$ sudo apt-get install subversion
サーバーにリポジトリを作成
$ mkdir /home/hoge/svn-repos $ svnadmin create /home/hoge/svn-repos
適当なファイルを作ってインポートする
$ mkdir /home/hoge/tmp $ echo 'hello, svn' > /home/hoge/tmp/hello.txt $ cd /home/hoge/svn-repos $ svn import -m "importing Test project" . file:///home/hoge/svn-repos/hello/trunk
svn+sshで接続
MacとWindwosでチェックアウトしてみる。
【Mac OS】ターミナルで適当なディレクトリにチェックアウトする。
その前にsshコマンドで接続してみる。
$ ssh -l hoge 192.168.0.100 $ exit
Macに戻って、適当なディレクトリにチェックアウト。
$ svn checkout svn+ssh://hoge@192.168.0.100/home/hoge/svn-repos/hello/trunk/ .
どういうわけかパスワードを2回聞かれるので、2回入力する。
チェックアウトされたことを確認。
$ ls -la
【Windows】
TortoiseSVNをインストールしておく。
エクスプローラで右クリックして、TortoiseSVN>Settingsをクリック。
一覧からNetworkを選択して、SSH client欄のボタンからTortoisePlink.exeを選択する。
私の場合はこんな場所にあった。"C:\Program Files\TortoiseSVN\bin\TortoisePlink.exe"
早速チェックアウトしてみる。
エクスプローラで右クリックして、SVN Checkout...をクリック。
URL欄に「svn+ssh://hoge@192.168.0.100/home/hoge/svn-repos/hello/trunk/」
と入力してそれ以外の項目はそのままで、OKボタン押す。
やはりパスワードを2回聞かれるので、2回入力して、チェックアウト完了。
コミット時に"attempt to write a readonly database"と表示される場合、権限を直す。
$ ls -l /home/hoge/svn-repos/db/ -rw-r--r-- 1 root hoge 8192 2011-09-04 17:15 rep-cache.db $ chmod g+w /home/hoge/svn-repos/db/rep-cache.db
原因を調べてみたところ、おそらく、最初のインポートの際にsudoを付けてしまったため、所有者がrootユーザーとなってしまった。
ついでに、リポジトリを複数のユーザで共有する場合はumaskに002、ディレクトリにはSGIDを設定する必要がある。
コミットに成功したら、完成。
最後に、MacbookのみLANの外で使う場合があるので、ローカルIPで接続するのは不便だ。サーバと同じLAN内でもドメイン名で接続できるようにする。
DNSサーバを立てるのは気が向かなかったので、今回はhostsファイルを編集する。
MacOSX用のツールHosterを入れてみた。
Hosterでは、設定の有効/無効がクリックだけで切り替えできる。