目次

Subversionをレンタルサーバ「CORESERVER.JP」に置く設定のメモを書いていきます。

レンタルサーバーにCORESERVER.JPを使う

会社の同僚にCORESERVER.JPというサーバを教えてもらいました。
CGIもある程度揃っていて、容量も15ギガで良さげです。
これの前身?のXREAというサーバーもやってるらしいので、実績もまずますです。

とりあえず、サーバはここに決定!!
最初からSubversionが入っているのは良いが、バージョンが古いため、安定バージョンの中で新しいバージョンをインストールして使うことにしました。

設定方法

1.「CORESERVER.jp」にSubversion新バージョン(1.6.9)をインストール

以下の説明の元ソースです。
Linux初心者には、こういう解説はものすご~くありがたいです。
以下のWebページの作者に感謝 [smile]

  1. 入れるのが初めてであればこの項目は飛ばしてください。
    旧バージョンを全く同じ手順で入れている場合、ホームのルートに「packages」フォルダが出来ていると思います。
    この中に前回インストールしたファイル群が含まれていますので、このフォルダを削除するかリネームして下さい。
    これで古いバージョンのアンインストールは完了です。
  2. 過去で既に行っている場合はこの項目は飛ばしてください。
    作業用に「tmp」フォルダを作成
    mkdir ~/tmp
  3. 「Oracle Berkeley DB」のファイルをダウンロード
    「Oracle Berkeley DB」のページから最新バージョンのBerkeley DB 4.8.26.tar.gz(db-4.8.26.tar.gz)をダウンロードして「tmp」フォルダに突っ込む
  4. 「Oracle Berkeley DB」をインストールする
    以下のコマンドを順番に打ち込めばインストール出来ます。
    cd ~/tmp
    tar xvzf db-4.8.26.tar.gz
    cd db-4.8.26/build_unix/
    ../dist/configure --prefix=$HOME/packages --enable-compat185
    make
    make install
    killされたりエラーが出たりして止まってしまったコマンドはもう一度行う。
  5. 「Subversion」のファイル2つをダウンロード
    のページからバージョン1.6.9ファイルを2つダウンロードする
    http://subversion.tigris.org/downloads/subversion-1.6.9.tar.gz
    http://subversion.tigris.org/downloads/subversion-deps-1.6.9.tar.gz
    この2つのファイル(subversion-1.6.9.tar.gz と subversion-deps-1.6.9.tar.gz)を「tmp」フォルダに突っ込む
  6. 「Subversion」をインストールする
    以下のコマンドを順番に打ち込めばインストール出来ます。
    cd ~/tmp
    tar xvzf subversion-1.6.9.tar.gz
    tar xvzf subversion-deps-1.6.9.tar.gz
    cd subversion-1.6.9
     ./configure --prefix=$HOME/packages --with-ssl
    make
    make install 
    killされたりエラーが出たりして止まってしまったコマンドはもう一度行う。
    ※特に「make」に関してはけっこう待たされるのでKillされることが多いです
    自分の場合は「make」を3回繰り返してようやく成功しました。
  7. 過去で既に行っている場合はこの項目は飛ばしてください。
    カレントフォルダに「.bashrc」ファイルを作成する
    「.bashrc」という名前(ファイル名はとても重要なので間違えないようにしてください)のテキストファイルを作り、ファイルの内容を以下のようにする
    export PATH=$HOME/packages/bin:$PATH
    ※当然、ユーザー名の所は自分のユーザー名を入れてね
  8. 過去で既に行っている場合はこの項目は飛ばしてください。
    「.bashrc」ファイルを認識させるためにコマンドを打つ
    cd ~
    source .bashrc
  9. ログインし直して、以下の3つのコマンドとも、バージョンが1.6.9と出れば成功です。
    1. 「svn」コマンドのバージョン
      svn --version

      svn, version 1.6.9 (r901367)
         compiled ??? ?? ????, ??:??:??
      
      Copyright (C) 2000-2009 CollabNet.
      Subversion is open source software, see http://subversion.tigris.org/
      This product includes software developed by CollabNet (http://www.Collab.Net/).
      
      The following repository access (RA) modules are available:
      
      * ra_neon : Module for accessing a repository via WebDAV protocol using Neon.
        - handles 'http' scheme
        - handles 'https' scheme
      * ra_svn : Module for accessing a repository using the svn network protocol.
        - handles 'svn' scheme
      * ra_local : Module for accessing a repository on local disk.
        - handles 'file' scheme
      * ra_serf : Module for accessing a repository via WebDAV protocol using serf.
        - handles 'http' scheme
        - handles 'https' scheme
      
    2. 「svnadmin」コマンドのバージョン
      svnadmin --version

      svnadmin, version 1.6.9 (r901367)
         compiled ??? ?? ????, ??:??:??
      
      Copyright (C) 2000-2009 CollabNet.
      Subversion is open source software, see http://subversion.tigris.org/
      This product includes software developed by CollabNet (http://www.Collab.Net/).
      
      The following repository back-end (FS) modules are available:
      
      * fs_fs : Module for working with a plain file (FSFS) repository.
      
    3. 「svnserve」コマンドのバージョン
      svnserve --version

      svnserve, version 1.6.9 (r901367)
         compiled ??? ?? ????, ??:??:??
      
      Copyright (C) 2000-2009 CollabNet.
      Subversion is open source software, see http://subversion.tigris.org/
      This product includes software developed by CollabNet (http://www.Collab.Net/).
      
      The following repository back-end (FS) modules are available:
      
      * fs_fs : Module for working with a plain file (FSFS) repository.

2.puttyのインストールと鍵交換方式による SSH 接続設定

  1. 以下のページからputtyをダウンロードしてインストールします
    PuTTY ごった煮版
  2. 鍵交換方式によるSSH設定を行います(詳しくは以下のページを参照)
    PuTTY で鍵交換方式による SSH 接続
    Subversionログイン用と、コンソールログイン用で別に設定(鍵作成)して下さい。
    この際に「.ssh」フォルダに置く公開鍵(OpenSSH形式)のファイル名を以下の様にします
    Subversionログイン用:「authorized_keys」
    コンソールログイン用:「authorized_keys2」
  3. 先ほどSubversionログイン用に作成した「authorized_keys」の内容を以下の様に追加します
    具体例としては、このようになると思います
    • 変更前
      ssh-rsa ??????...(省略)
    • 変更後
      command="/virtual/gyahahaha/packages/bin/svnserve -t" ssh-rsa ??????...(省略)
      この設定は「svnserve」がある場所のフルパスを指定しています。
      変更後、この鍵ではコンソールからログインする事が出来なくなりますので注意!
      同じ事を言いますが設定(鍵作成)はSubversionログイン用と、コンソールログイン用で別にして下さい。

※この記事は以下のページを参考にさせていただきました
ありがとうございます

3.TortoiseSVNでSSH接続する設定

例えば、カレントにリポジトリのフォルダ「repository」を置いた場合、アクセスするURLの書き方は以下の通りです。

svn+ssh://ユーザー名@puttyセッション名/virtual/ユーザー名/repository

例として、puttyで指定したセッション名が「coreserverhost」、CORESERVERへのSSHログインユーザー名が「username」の場合は以下の様になります

svn+ssh://username@coreserverhost/virtual/username/repository

トラブル

コミット時に「post-commit hook failed (exit code 255) with no output.」という警告が出る

「post-commit」自体は、コミット後に実行するスクリプトの設定です。
ほとんどの人はこのフックの利用には、リポジトリのコミットやバックアップに関する連絡メールを送るのに使う様です。
この設定を何もしていないのに、警告が出る場合はpost-commitを無効化してしまいましょう。

リポジトリが使えなくなるトラブル発生(2010/1/27~)

現在、CORESERVER.JPにおいて、2010/1/27から

expected format ‘3′ of repository found format ‘5′

というエラーが出てリポジトリが使えなくなる現象が起きています。
探してみると、同じ現象の方が居ました。

この記事を元に、設定方法に新たな記事「2.puttyのインストールと鍵交換方式による SSH 接続設定」を追加しました。
※「authorized_keys?」ファイルの中身をいじってcommandを入れてる所が解決策となります。
 
 
余談:サーバー管理者の設定ミスなら直してもらえるかも?と思いサポートに問い合わせてみたのですが

ユーザーが入れたスクリプトの動作は保証していません

という返答が来ました。 まぁそりゃそうだよね [sad]