[インストール] Subversion を RedHat7.3 にインストール つづき

続き。

インストールが出来。 --daemon モードでsvnservice 動かし PCの TortoiseSVN からアクセスス出来るのに、 inetd (xinetd) に設定してアクセスすると、なぜか 不正なネットワークデータです というエラーが ^^;


telnetSubversion を直接アクセスすると 以下のようなメッセージが

$  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       # ※ ログインの前にスペースを置いてはいけません