[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。
【Subversion のインストール】
Subversion のインストールと設定をメモしておく。
条件:
・Linux (Red Hat) …Subversion サーバ
・ソースからインストール
・Berkeley DB は使用しない
・Apacheと連携しない
・サーバ機能はinetd経由とする
■インストール
(1)Subversion のソースを取得する
公式サイト(http://subversion.tigris.org/)
ソース置き場
http://subversion.tigris.org/servlets/ProjectDocumentList?folderID=260&expandFolder=74
現時点の最新 1.5.3 以下2つをダウンロード
・subversion-1.5.3.tar.gz
・subversion-deps-1.5.3.tar.gz
(2)ダウンロードしたソースを配置する
/usr/local/src/subversion-1.5.3.tar.gz
/usr/local/src/subversion-deps-1.5.3.tar.gz
(以降、root権限で処理 # root権限、$ 普通の人)
(3)解凍する
# cd /usr/local/src/
# tar xzvf subversion-1.x.x.tar.gz
# xzvf subversion-deps-1.x.x.tar.gz
# cd subversion-1.x.x
(4)インストールする
# ./configure
# make
# make install
■svnserveの稼働(xinetd)
(1)svnserve用のユーザ svn を作成する
# useradd svn
(2)レポジトリのルート(/svn)を作成する
# mkdir /svn
# chown svn:svn /svn
(3) xinetd(inetd経由)の設定をする
・設定ファイルを作る(環境に応じて適宜変更)
# vi /etc/xinetd.d/svn
----ここから
{
disable = no
socket_type = stream
wait = no
user = svn
server = /usr/local/bin/svnserve
server_args = -i -r /svn
log_on_failure += USERID
only_from = 192.168.0.0/24 127.0.0.1
}
----ここまで
・接続許可設定 /etc/hosts.allowに追加(内部ネットワークと自分を許可)
svn: 192.168.0. 127.0.0.1
・サービス名と使用ポート番号の設定 /etc/services に追加
svn 3690/tcp # Subversion
svn 3690/udp # Subversion
・ファイヤーウォールの設定は次項
・設定の確認と再起動
# chkconfig --list svn
svn on
# service xinetd restart
xinetd を停止中: [ OK ]
xinetd を起動中: [ OK ]
・telnet を使って接続確認
#telnet localhost 3690
Trying 127.0.0.1...
Connected to localhost.localdomain (127.0.0.1).
Escape character is '^]'.
( success ...
(4)ファイヤーウォールの設定
デフォルトの3690ポートtcp/udpを許可する。
・設定
#iptables -A RH-Firewall-1-INPUT -s 192.168.0.0/24 -m state --state NEW -m tcp -p tcp --dport 3690 -j ACCEPT
#iptables -A RH-Firewall-1-INPUT -s 192.168.0.0/24 -m state --state NEW -m udp -p udp --dport 3690 -j ACCEPT
・確認
#iptables -L
ACCEPT tcp -- 192.168.0.0/24 anywhere state NEW tcp dpt:svn
ACCEPT udp -- 192.168.0.0/24 anywhere state NEW udp dpt:svn
・initスクリプトに保存
#/etc/init.d/iptables save
・リスタート
#service iptables restart
■リポジトリの設定
(1)リポジトリの作成
# su svn
$ svnadmin create /svn/projectA
(2)リポジトリのアクセス権の設定
$ cd /svn/projectA/conf
$ vi svnserve.conf
[general]
anon-access = read
auth-access = write
password-db = passwd
(認証ユーザは読み書き、匿名ユーザは読み込み)
(3)ユーザとパスワード passwdファイルの編集
$ vi passwd
[users]
hogea=hogeaaa
hogeb=hogebbb
■クライアントからの接続確認
(1)サーバ(192.168.0.1とする)と同じマシンで確認
・新しいディレクトリを作る
$svn mkdir -m "comment" svn://192.168.0.1/projectA/trunk
$svn mkdir -m "comment" svn://192.168.0.1/projectA/branches
$svn mkdir -m "comment" svn://192.168.0.1/projectA/tags
・ディレクトリエントリを一覧表示する
$svn list svn://192.168.0.1/projectA
branches/
tags/
trunk/
(2)Windowsマシンから TortoiseSVN を使用
・TortoiseSVN をインストールする
公式サイト(http://tortoisesvn.tigris.org/)
Language packsで日本語表示になる。
現時点
・TortoiseSVN-1.5.4.14259-win32-svn-1.5.3.msi
・LanguagePack_1.5.4.14259-win32-ja.msi
・インストーラの指示に従えば簡単にインストールできる
・接続確認
・エクスプローラの任意のフォルダで
右クリック「TortoiseSVN」「リポジトリブラウザ」
・URLに svn://192.168.0.1/projectA として「OK」
・表示されればOK
★外部から接続する場合は、svnサーバの3690ポート(デフォルト)をあける必要がある。
pingは通るが、クライアントからホスト(svnサーバ)に到達できない場合は
ファイヤーウォールではじかれている可能性がある。
一時的にファイヤーウォールを無効にして、接続可能か試してみよう。
(当然無効にしている間は危険なので可能な環境であれば試してみよう)
#service iptables stop
これで通れば、ファイヤーウォールの設定が正しくないということ。