[インストール] Subversion を RedHat7.3 にインストール つづき
続き。
インストールが出来。 --daemon モードでsvnservice 動かし PCの TortoiseSVN からアクセスス出来るのに、 inetd (xinetd) に設定してアクセスすると、なぜか 不正なネットワークデータです というエラーが ^^;
telnet でSubversion を直接アクセスすると 以下のようなメッセージが
$ telnet localhost 3690 svn: warning: cannot set LC_CTYPE locale svn: warning: environment variable LC_ALL is en_US svn: warning: please check that your locale name is correct ( success ( 1 2 ( ANONYMOUS ) ( edit-pipeline svndiff1 absent-entries ) ) )
どうも、ロケールの設定がおかしいようです。
inetdの登録を svnservice.sh というShellscript にし、いろいろと試してみると
#!/bin/sh LC_ALL=C /usr/local/bin/svnserve $*
のようにすると動きました。 よくよく xinetd の起動スクリプトをみると
start(){ echo -n $"Starting $prog: " # Need to get rid of localization for external services - # it doesn't make much sense to have i18n on the server side here LANG=en_US LC_TIME=en_US LC_ALL=en_US LC_MESSAGES=en_US LC_NUMERIC=en_US LC_MONETARY=en_US LC_COLLATE=en_US export LANG LC_TIME LC_ALL LC_MESSAGES LC_NUMERIC LC_MONETARY LC_COLLATE unset HOME MAIL USER USERNAME daemon $prog -stayalive -reuse -pidfile /var/run/xinetd.pid "$EXTRAOPTIONS" RETVAL=$? echo touch /var/lock/subsys/xinetd return $RETVAL }
のように、ロケールに en_US を設定していますが、これがマズイようです。ただし xinetd では 他のサービスも動かしているのでこれは触らずに、やはり svnservice.sh で動かす事にしました。
その他、設定ファイル等ですが
xinetdの設定 svnservice.sh
service svnserve { socket_type = stream wait = no protocol = tcp user = svn server = /usr/local/bin/svnserve.sh server_args = -i -r /home/svn disable = no }
SVNレポジトリー
SVNレポジトリーは、専用のアカウント svn を作りそのアカウントでアクセスする事にします。
# adduser svn # mkdir /home/svn # chown -R svn:svn /home/svn # su - svn $ svnadmin create /home/svn
Subversion 設定ファイル /home/svn/conf/svnserve.conf
auth-access = write # 書き込みは認証が必要 password-db = passwd # 認証用パスワードファイルは passwd # ※ 先頭にスペースを置いてはいけません
Subversion パスワードファイル /home/svn/conf/passwd
login1 = password1 # ログイン = パスワード を記述 login2 = password2 # ※ ログインの前にスペースを置いてはいけません