- 追加された行はこの色です。
- 削除された行はこの色です。
[[戻る>DoldoWorkz#subversion]]
*SubversionのリポジトリをWeb上のレンタルサーバに置く [#s3545e22]
Subversionを使った際のメモを書いていきます。
#hr
#contents
#hr
*レンタルサーバーを探す [#kf776c78]
自分の家で作ったコードを会社でも見たい事があったので、リポジトリをインターネットからアクセスできる場所に置きたくなりました。~
Linuxの知識が乏しいのとメンテをするのが面倒なので、どこかのレンタルサーバー借りてSubversion入れて使おうかな…と思いながら情報収集していると以下のようなページが見つかりました。~
-[[さくらインターネットでSubversion (SaikyoLine.jp):http://saikyoline.jp/weblog/2005/10/subversion_2.html]]~
-[[suVeneのあれ:Subversionインストール(レンタルさくらサーバ):http://zeromemory.sblo.jp/article/1206848.html]]~
さくらインターネントのレンタルサーバで、Subversionをインストールする手順が書いてあります。~
~
さらに情報収集をしていると、最初からSubversionが標準で入っているレンタルサーバー「BLOCKGROUP - ブロックグループ」を見つけました。~
ラクなのでこれ使っていたのですが…あららー、最近BLOCKGROUPが潰れてしまった模様。~
-[[BLOCKGROUPの閉鎖アナウンス:http://www.blockgroup.jp/]]~
BLOCKGROUPのサービスの停止は2008年6月26日23時59分の様です~
しかも夜逃げ同然なスピード閉鎖…あ~ぁ&worried;~
~
次の移転先サーバーはどうしようかな~?と思っていたら、会社の同僚にCORESERVERというサーバを教えてもらいました。~
会社の同僚にCORESERVERというサーバを教えてもらいました。~
CGIもある程度揃っていて、容量も15ギガで良さげです。~
これの前身?のXREAというサーバーもやってるらしいので、実績もまずますです。~
-[[CORESERVER.JP コアサーバー:http://www.coreserver.jp/]]~
~
とりあえず、サーバはここに決定!!~
しかし最初からSubversionが入っているのは良いが、バージョンが古いためBLOCKGROUPから移植してきたリポジトリが使えない!~
ということで、安定バージョンの中で新しいバージョン(1.5.0)をインストールして使うことにしました。~
ということで、安定バージョンの中で新しいバージョン(1.6.4)をインストールして使うことにしました。~
**「CORESERVER.jp」に移転のために「BLOCKGROUP」からバックアップを取る [#s0cc4bdf]
-「BLOCKGROUP」のリポジトリフォルダをバックアップする~
FTPで接続して「repository」のフォルダをダウンロードしてください。~
~
-「BLOCKGROUP」の実体(ワーキングコピー)をバックアップする~
ホームページ等を作成されている場合、その場所で増えたデータに関してはSubversionの管轄外となっています。~
完全なバックアップを取るには、FTPで接続して「public_html」のフォルダをダウンロードして下さい。~
*「CORESERVER.jp」にSubversion安定版の新バージョン(1.5.0)をインストールする [#CORESERVERInstallSVN]
*「CORESERVER.jp」にSubversion安定版の新バージョン(1.6.4)をインストールする [#CORESERVERInstallSVN]
以下の説明の元ソースです。~
Linux初心者には、こういう解説はものすご~くありがたいです。~
以下のWebページの作者に感謝⌣~
-[[CORESERVERにSubversionをインストールする:http://stickstack.org/coreserver/subversion]]~
-[[coreserverにSubversion入れようとしたのだが…:http://hemiolia.com/blog/200801/000138]]~
~
+&color(blue){''入れるのが初めてであればこの項目は飛ばしてください。''};~
旧バージョンを全く同じ手順で入れている場合、ホームのルートに「packages」フォルダが出来ていると思います。~
この中に前回インストールしたファイル群が含まれていますので、このフォルダを削除して下さい。~
これで古いバージョンのアンインストールは完了です。~
+作業用に「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>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/
../dist/configure --prefix=$HOME/packages --enable-compat185
make
make install
※「make」もしくは「make install」時に&color(red){''killされたりエラーが出たりして止まってしまった場合はもう一度''};行う。~
※&color(red){''killされたりエラーが出たりして止まってしまった場合はもう一度''};行う。~
+「Subversion」のファイル2つをダウンロード~
のページからバージョン1.5.0ファイルを2つダウンロードする~
のページからバージョン1.6.4ファイルを2つダウンロードする~
トップページから辿るとファイルのありかが分からなかったため、直指定でURLを叩く~
[[http://subversion.tigris.org/downloads/subversion-1.5.0.tar.gz>http://subversion.tigris.org/downloads/subversion-1.5.0.tar.gz]]~
[[http://subversion.tigris.org/downloads/subversion-deps-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」フォルダに突っ込む~
[[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」フォルダに突っ込む~
+「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
tar xvzf subversion-1.6.4.tar.gz
tar xvzf subversion-deps-1.6.4.tar.gz
cd subversion-1.6.4
./configure --prefix=$HOME/packages --with-ssl
make
make install
※「make」もしくは「make install」時に&color(red){''killされたりエラーが出たりして止まってしまった場合はもう一度''};行う。~
※&color(red){''killされたりエラーが出たりして止まってしまった場合はもう一度''};行う。~
※特に「make」に関してはけっこう待たされるのでKillされることが多いです&color(red){''自分の場合は「make」を3回繰り返してようやく成功しました。''};~
+カレントフォルダに「.bashrc」ファイルを作成する~
+&color(blue){''過去に既に行っている場合はこの項目は飛ばしてください。''};~
カレントフォルダに「.bashrc」ファイルを作成する~
「.bashrc」という名前(&color(blue){''ファイル名はとても重要''};なので間違えないようにしてください)のテキストファイルを作り、ファイルの内容を以下のようにする~
export PATH=/virtual/ユーザー名/packages/bin:$PATH
※当然、ユーザー名の所は自分のユーザー名を入れてね~
+「.bashrc」ファイルを認識させるためにコマンドを打つ~
+&color(blue){''過去に既に行っている場合はこの項目は飛ばしてください。''};~
「.bashrc」ファイルを認識させるためにコマンドを打つ~
cd ~
source .bashrc
+ログインし直して、以下の3つのコマンドとも、バージョンが1.5.0と出れば成功です。~
+ログインし直して、以下の3つのコマンドとも、バージョンが1.6.4と出れば成功です。~
++「svn」コマンドのバージョン
svn --version
~
svn, version 1.5.0 (r31699)
compiled Jul 3 2008, 20:44:31
svn, version 1.6.4 (r38063)
compiled ??? ?? ????, ??:??:??
Copyright (C) 2000-2008 CollabNet.
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.5.0 (r31699)
compiled Jul 3 2008, 20:44:31
svnadmin, version 1.6.4 (r38063)
compiled ??? ?? ????, ??:??:??
Copyright (C) 2000-2008 CollabNet.
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_base : Module for working with a Berkeley DB repository.
* fs_fs : Module for working with a plain file (FSFS) repository.
++「svnserve」コマンドのバージョン
svnserve --version
~
svnserve, version 1.5.0 (r31699)
compiled Jul 3 2008, 20:44:31
svnserve, version 1.6.4 (r38063)
compiled ??? ?? ????, ??:??:??
Copyright (C) 2000-2008 CollabNet.
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_base : Module for working with a Berkeley DB repository.
* fs_fs : Module for working with a plain file (FSFS) repository.
**「BLOCKGROUP」から「CORESERVER.jp」にリポジトリを移行 [#p56b7067]
前記の「CORESERVERにSubversion安定版の新バージョン(1.5.0)をインストールする」を見て&color(blue){''Subversionを新しいバージョンにインストール''};しておく事。~
前記の「CORESERVERにSubversion安定版の新バージョン(1.6.4)をインストールする」を見て&color(blue){''Subversionを新しいバージョンにインストール''};しておく事。~
これを行わないとリポジトリのバージョン違いによって以下のエラーが出て使えません。~
svn: Expected format '3' of repository; found format '5'
新しいバージョンにインストールすると、BLOCKGROUPにあった「repository」フォルダを置くだけで使えるようになります。~
**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]]~
svn+ssh://ユーザー名@puttyセッション名/virtual/ユーザー名/repository
--例
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]
「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_