• 追加された行はこの色です。
  • 削除された行はこの色です。
[[戻る>DoldoWorkz#subversion]]
-[[戻る>DoldoWorkz#subversion]]
--[[''Subversion''>Subversion]]
---[[Subversion/Windowsで使う(TortoiseSVN)]]
---[[Subversion/リポジトリをCORESERVER.JPに置く]]&color(red){''✓''};

*SubversionのリポジトリをWeb上のレンタルサーバに置く [#s3545e22]
 Subversionを使った際のメモを書いていきます。
#hr
*目次 [#s3545e22]
Subversionをレンタルサーバ「CORESERVER.JP」に置く設定のメモを書いていきます。~
#contents
#hr

*レンタルサーバーを探す [#kf776c78]
会社の同僚にCORESERVERというサーバを教えてもらいました。~
*レンタルサーバーにCORESERVER.JPを使う [#kf776c78]
会社の同僚にCORESERVER.JPというサーバを教えてもらいました。~
CGIもある程度揃っていて、容量も15ギガで良さげです。~
これの前身?のXREAというサーバーもやってるらしいので、実績もまずますです。~
-[[CORESERVER.JP コアサーバー:http://www.coreserver.jp/]]~
~

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






*「CORESERVER.jp」にSubversion安定版の新バージョン(1.6.4)をインストールする [#CORESERVERInstallSVN]
*設定方法 [#vfc79590]
**1.「CORESERVER.jp」にSubversion新バージョン(1.6.9)をインストール [#CORESERVERInstallSVN]
以下の説明の元ソースです。~
Linux初心者には、こういう解説はものすご~くありがたいです。~
以下のWebページの作者に感謝⌣~
-[[CORESERVERにSubversionをインストールする:http://stickstack.org/coreserver/subversion]]~
-[[coreserverにSubversion入れようとしたのだが…:http://hemiolia.com/blog/200801/000138]]~
~
+&color(blue){''入れるのが初めてであればこの項目は飛ばしてください。''};~
旧バージョンを全く同じ手順で入れている場合、ホームのルートに「packages」フォルダが出来ていると思います。~
この中に前回インストールしたファイル群が含まれていますので、このフォルダを削除して下さい。~
この中に前回インストールしたファイル群が含まれていますので、このフォルダを削除するかリネームして下さい。~
これで古いバージョンのアンインストールは完了です。~
+&color(blue){''過去で既に行っている場合はこの項目は飛ばしてください。''};~
作業用に「tmp」フォルダを作成~
 mkdir ~/tmp
+「Oracle Berkeley DB」のファイルをダウンロード~
「Oracle Berkeley DB」のページから最新バージョンのBerkeley DB 4.7.25.tar.gz(db-4.7.25.tar.gz)をダウンロードして「tmp」フォルダに突っ込む~
「Oracle Berkeley DB」のページから最新バージョンのBerkeley DB 4.8.26.tar.gz(db-4.8.26.tar.gz)をダウンロードして「tmp」フォルダに突っ込む~
--[[Oracle Berkeley DB>http://www.oracle.com/technology/software/products/berkeley-db/db/index.html]]
+「Oracle Berkeley DB」をインストールする~
以下のコマンドを順番に打ち込めばインストール出来ます。~
 cd ~/tmp
 tar xvzf db-4.7.25.tar.gz
 cd db-4.7.25/build_unix/
 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
※&color(red){''killされたりエラーが出たりして止まってしまったコマンドはもう一度''};行う。~
+「Subversion」のファイル2つをダウンロード~
のページからバージョン1.6.4ファイルを2つダウンロードする~
[[http://subversion.tigris.org/downloads/subversion-1.6.4.tar.gz>http://subversion.tigris.org/downloads/subversion-1.6.4.tar.gz]]~
[[http://subversion.tigris.org/downloads/subversion-deps-1.6.4.tar.gz>http://subversion.tigris.org/downloads/subversion-deps-1.6.4.tar.gz]]~
この2つのファイル(subversion-1.6.4.tar.gz と subversion-deps-1.6.4.tar.gz)を「tmp」フォルダに突っ込む~
のページからバージョン1.6.9ファイルを2つダウンロードする~
[[http://subversion.tigris.org/downloads/subversion-1.6.9.tar.gz>http://subversion.tigris.org/downloads/subversion-1.6.9.tar.gz]]~
[[http://subversion.tigris.org/downloads/subversion-deps-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」フォルダに突っ込む~
+「Subversion」をインストールする~
以下のコマンドを順番に打ち込めばインストール出来ます。~
 cd ~/tmp
 tar xvzf subversion-1.6.4.tar.gz
 tar xvzf subversion-deps-1.6.4.tar.gz
 cd subversion-1.6.4
 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 

※&color(red){''killされたりエラーが出たりして止まってしまったコマンドはもう一度''};行う。~
※特に「make」に関してはけっこう待たされるのでKillされることが多いです~
&color(red){''自分の場合は「make」を3回繰り返してようやく成功しました。''};~
+&color(blue){''過去で既に行っている場合はこの項目は飛ばしてください。''};~
カレントフォルダに「.bashrc」ファイルを作成する~
「.bashrc」という名前(&color(blue){''ファイル名はとても重要''};なので間違えないようにしてください)のテキストファイルを作り、ファイルの内容を以下のようにする~
 export PATH=/virtual/ユーザー名/packages/bin:$PATH
 export PATH=$HOME/packages/bin:$PATH
※当然、ユーザー名の所は自分のユーザー名を入れてね~
+&color(blue){''過去で既に行っている場合はこの項目は飛ばしてください。''};~
「.bashrc」ファイルを認識させるためにコマンドを打つ~
 cd ~
 source .bashrc
+ログインし直して、以下の3つのコマンドとも、バージョンが1.6.4と出れば成功です。~
+ログインし直して、以下の3つのコマンドとも、バージョンが1.6.9と出れば成功です。~
++「svn」コマンドのバージョン
 svn --version
~
 svn, version 1.6.4 (r38063)
 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
 
++「svnadmin」コマンドのバージョン
 svnadmin --version
~
 svnadmin, version 1.6.4 (r38063)
 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.
 
++「svnserve」コマンドのバージョン
 svnserve --version
~
 svnserve, version 1.6.4 (r38063)
 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 接続設定 [#i4101e06]
+以下のページからputtyをダウンロードしてインストールします~
[[PuTTY ごった煮版>http://yebisuya.dip.jp/Software/PuTTY/]]~
+鍵交換方式によるSSH設定を行います(詳しくは以下のページを参照)~
[[PuTTY で鍵交換方式による SSH 接続:http://www.kuins.kyoto-u.ac.jp/news/47/putty-gen.html]]~
※&color(red){''Subversionログイン用と、コンソールログイン用で別に設定(鍵作成)''};して下さい。~
この際に「.ssh」フォルダに置く公開鍵(OpenSSH形式)のファイル名を以下の様にします~
Subversionログイン用:「authorized_keys」~
コンソールログイン用:「authorized_keys2」~
+&color(blue){''先ほどSubversionログイン用に作成した「authorized_keys」''};の内容を以下の様に追加します~
具体例としては、このようになると思います~
--変更前
 ssh-rsa ??????...(省略)
--変更後
 command="/virtual/gyahahaha/packages/bin/svnserve -t" ssh-rsa ??????...(省略)
この設定は「svnserve」がある場所のフルパスを指定しています。~
変更後、この鍵ではコンソールからログインする事が出来なくなりますので注意!~
同じ事を言いますが設定(鍵作成)は&color(red){''Subversionログイン用と、コンソールログイン用''};で別にして下さい。~

**TortoiseSVNの設定 [#n311d55b]
例えば、カレントにリポジトリのフォルダ「repository」を置いた場合、アクセスするURLは以下の通りです。
-puttyを使わない(こちらは毎回パスワードを聞かれます)~
IDとパスワードがそのままネット上に流れてしまうため、セキュリティが低くおすすめできません。~
 svn+ssh://ユーザー名@http指定のサーバー名/virtual/ユーザー名/repository
--例
 svn+ssh://username@s99.coreserver.jp/virtual/username/repository

-puttyの証明書形式を使って接続する(秘密鍵・公開鍵のKey passphraseのパスワードを聞かれます)~
IDとパスワードが暗号化された状態でネットに流れるため安全です。~
[[PuTTY で鍵交換方式による SSH 接続:http://www.kuins.kyoto-u.ac.jp/news/47/putty-gen.html]]~
※この記事は以下のページを参考にさせていただきました~
ありがとうございます~
-[[CoreServer で Subversion が突然使えなくなった。 « Note>http://note.farawaysky.net/201001/mac-os-x-290.html]]~
-[[PuTTY で鍵交換方式による SSH 接続:http://www.kuins.kyoto-u.ac.jp/news/47/putty-gen.html]]~
-[[PuTTY ごった煮版>http://yebisuya.dip.jp/Software/PuTTY/]]~
**3.TortoiseSVNでSSH接続する設定 [#n311d55b]
例えば、カレントにリポジトリのフォルダ「repository」を置いた場合、アクセスするURLの書き方は以下の通りです。~
 svn+ssh://ユーザー名@puttyセッション名/virtual/ユーザー名/repository
--例
例として、puttyで指定したセッション名が「coreserverhost」、CORESERVERへのSSHログインユーザー名が「username」の場合は以下の様になります~
 svn+ssh://username@coreserverhost/virtual/username/repository
いちいち秘密鍵・公開鍵のKey passphraseを入れるのがめんどくさい!という方は、作成時にKey passphraseを空にすると聞いてこなくなります。~
ただこの場合、秘密鍵のファイルを盗まれてしまった場合、盗んだ人にサーバの進入を許してしまうという危険性があります。~
そのあたりは自己責任で。~

*Subversionのリポジトリのバックアップを取る [#s0cc4bdf]
FTPで接続して「repository」のフォルダを丸ごとダウンロードしてください。~

*コミット時に「post-commit hook failed (exit code 255) with no output.」という警告が出る [#me0481b0]
*トラブル [#a301e9ee]
**コミット時に「post-commit hook failed (exit code 255) with no output.」という警告が出る [#me0481b0]
「post-commit」自体は、コミット後に実行するスクリプトの設定です。~
ほとんどの人はこのフックの利用には、リポジトリのコミットやバックアップに関する連絡メールを送るのに使う様です。~
この設定を何もしていないのに、警告が出る場合はpost-commitを無効化してしまいましょう。~
-[[Subversion によるバージョン管理 フックスクリプト:http://subversion.bluegate.org/doc/book.html#svn.reposadmin.create.hooks]]~
リポジトリ内のfooksフォルダの中のファイル
 post-commit.tmpl
 post-commit
を以下の様にリネームすると実行されなくなります。
 post-commit.tmpl_
 post-commit_
** リポジトリが使えなくなるトラブル発生(2010/1/27)[#zc032568]
現在、CORESERVER.JPにおいて、2010/1/27から~
 expected format ‘3′ of repository found format ‘5′
という&color(red){''エラーが出てリポジトリが使えなくなる現象''};が起きています。~
探してみると、同じ現象の方が居ました。~
-[[CoreServer で Subversion が突然使えなくなった。 « Note>http://note.farawaysky.net/201001/mac-os-x-290.html]]~

この記事を元に、設定方法に新たな記事「2.puttyのインストールと鍵交換方式による SSH 接続設定」を追加しました。~
※「authorized_keys?」ファイルの中身をいじってcommandを入れてる所が解決策となります。~
 ~
 ~
余談:サーバー管理者の設定ミスなら直してもらえるかも?と思いサポートに問い合わせてみたのですが~
 ユーザーが入れたスクリプトの動作は保証していません
という返答が来ました。 まぁそりゃそうだよね&sad;~