Subversionの環境設定
VirtualBoxにインストールしたCentOSでいろいろ実験するシリーズ。
Subversionの環境を整える。
Subversionのインストール
以下のコマンドでインストール。開発ツールのインストールで、まとめて入ってるはず?
# yum install subversion
ついでに、バージョンを確認
[root@localhost ~]# svn --version
svn, version 1.6.11 (r934486)
リポジトリを公開
Subversionのリポジトリを公開する場合、よく使われるのは以下の2つのパターン。
- http経由で公開
- ssh経由で公開
それぞれ、メリット/デメリットはこんな感じ。
http経由で公開する場合
- httpの環境さえ整ってれば接続可能
- ユーザー認証はWebサーバーの機能で行う
ssh経由で公開する場合
お手軽で歴史もあるのがhttp経由かな? 閉じてる環境で信頼できるメンバーだけで使うのなら、httpが楽そう。ネットで、不特定多数に公開するのもhttp経由が楽か。
sshはどうしてもセキュリティが気になる場合に選択? 「ssh経由なら更新可能」「http経由は読み取りのみ」って使い分けも可能。
ssh経由で公開
Subversionで使用するグループを作成
グループ名を「svn」として作成。
# groupadd svn
ユーザーをグループに追加
# usermod -G svn [ユーザ名]
リポジトリを配置するディレクトリを準備
「/var/svn/repos」にリポジトリを配置。svnグループから読み書きできるように設定しておく。
# mkdir -p /var/svn/repos
# chgrp -R svn /var/svn
# chmod -R g+w /var/svn
確認用にリポジトリを作成
動作確認のためにリポジトリを作成。
# mkdir -p /var/svn/repos/test
# svnadmin create /var/svn/repos/test
# chgrp -R svn /var/svn/repos/test
# chmod -R g+w /var/svn/repos/test
※「svn」グループから読み書きできるように、権限を設定しておく
適当なクライアントから接続。TortoiseSVNを使う場合は、この辺りを参考に。
TortoiseSVNでSSH接続すると、毎回パスワードを聞かれるんですが。。。 - 小窓屋めがね
http://lab.komadoya.com/blog/2011/10/ssh-tortoisesvn.php
sshの環境がすでに出来てるのなら、http経由で公開するよりこっちの方が楽だな。
※Redmineで「リポジトリに、エントリ/リビジョンが存在しません」のエラーが出た場合、SELinuxの権限が原因かも?
おまけ
リポジトリの作成が面倒なので、簡単なスクリプトを作ってみた。「create_repo_svn.sh」って名前で保存。実行権限をつけておく。
#!/bin/sh # repository base dir repo_base="/var/svn/repos/" # ############################################# # parameter check if [ $# -eq 0 ]; then echo "> ./create_repo_svn.sh repository_name" echo "repository create to -> $repo_base" exit fi # target dir target=$repo_base$1 # check exist if [ -d $target ]; then echo "already exist -> $target" exit fi # make repository mkdir -p $target svnadmin create $target chgrp -R svn $target chmod -R g+w $target # ok echo "create subversion repository -> $target"
情報元
Subversionのインストール (CentOS 5.5 64bit)|赤び~の備忘録 & 子育て月記
http://ameblo.jp/kurabeat/entry-10544974004.html
TortoiseSVNでSSH接続すると、毎回パスワードを聞かれるんですが。。。 - 小窓屋めがね
http://lab.komadoya.com/blog/2011/10/ssh-tortoisesvn.php