戻る

SubversionのリポジトリをWeb上のレンタルサーバに置く

 Subversionを使った際のメモを書いていきます。



レンタルサーバーを探す

自分の家で作ったコードを会社でも見たい事があったので、リポジトリをインターネットからアクセスできる場所に置きたくなりました。
Linuxの知識が乏しいのとメンテをするのが面倒なので、どこかのレンタルサーバー借りてSubversion入れて使おうかな…と思いながら情報収集していると以下のようなページが見つかりました。

さらに情報収集をしていると、最初からSubversionが標準で入っているレンタルサーバー「BLOCKGROUP - ブロックグループ」を見つけました。
ラクなのでこれ使っていたのですが…あららー、最近BLOCKGROUPが潰れてしまった模様。

BLOCKGROUPのサービスの停止は2008年6月26日23時59分の様です
しかも夜逃げ同然なスピード閉鎖…あ~ぁ [worried]

次の移転先サーバーはどうしようかな~?と思っていたら、会社の同僚にCORESERVERというサーバを教えてもらいました。
CGIもある程度揃っていて、容量も15ギガで良さげです。
これの前身?のXREAというサーバーもやってるらしいので、実績もまずますです。

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

「CORESERVER.jp」に移転のために「BLOCKGROUP」からバックアップを取る

  • 「BLOCKGROUP」のリポジトリフォルダをバックアップする
    FTPで接続して「repository」のフォルダをダウンロードしてください。

  • 「BLOCKGROUP」の実体(ワーキングコピー)をバックアップする
    ホームページ等を作成されている場合、その場所で増えたデータに関してはSubversionの管轄外となっています。
    完全なバックアップを取るには、FTPで接続して「public_html」のフォルダをダウンロードして下さい。

「CORESERVER.jp」にSubversion安定版の新バージョン(1.5.0)をインストールする

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

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

      svn, version 1.5.0 (r31699)
         compiled Jul  3 2008, 20:44:31
      
      Copyright (C) 2000-2008 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.5.0 (r31699)
         compiled Jul  3 2008, 20:44:31
      
      Copyright (C) 2000-2008 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_base : Module for working with a Berkeley DB repository.
      * fs_fs : Module for working with a plain file (FSFS) repository.
      
    3. 「svnserve」コマンドのバージョン
      svnserve --version

      svnserve, version 1.5.0 (r31699)
         compiled Jul  3 2008, 20:44:31
      
      Copyright (C) 2000-2008 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_base : Module for working with a Berkeley DB repository.
      * fs_fs : Module for working with a plain file (FSFS) repository.
      

「BLOCKGROUP」から「CORESERVER.jp」にリポジトリを移行

前記の「CORESERVERにSubversion安定版の新バージョン(1.5.0)をインストールする」を見てSubversionを新しいバージョンにインストールしておく事。
これを行わないとリポジトリのバージョン違いによって以下のエラーが出て使えません。

svn: Expected format '3' of repository; found format '5'

新しいバージョンにインストールすると、BLOCKGROUPにあった「repository」フォルダを置くだけで使えるようになります。

TortoiseSVNの設定

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

  • puttyを使わない(こちらは毎回パスワードを聞かれます)
    svn+ssh://ユーザー名@http指定のサーバー名/virtual/ユーザー名/repository
    • svn+ssh://username@s99.coreserver.jp/virtual/username/repository
  • puttyの証明書形式を使って接続する
    PuTTY で鍵交換方式による SSH 接続
    svn+ssh://ユーザー名@puttyセッション名/virtual/ユーザー名/repository
    • svn+ssh://username@coreserverhost/virtual/username/repository