2011年3月20日日曜日

DTIの ServersMan@VPS で SVN(Subversion )サーバ立ててみた。

今週は自宅待機で仕事しつつも基本的にはヒマだったので、前々から考えていた

・ServersMan@VPSにSVNサーバを構築

をやってみた。
で、なぜに?いうことなのだが、

・趣味のiPhone/Android用の開発をMacでやっているのだが、家でメインのMac mini で作りかけのものを出先でMacBook Air で手直ししたい。ので外部から参照できるソース管理が欲しい。
・家にサーバ立てるのはルーターに穴を開けたりがめんどくさい。
・月1000円くらいなら家の中に置くより外に置いた方が色々楽。
・そんなに使うわけでもないし、たぶんすぐ飽きる(をい) ので安いサーバーとか買っちゃうと飽きた時点で邪魔。
・今度仕事でVPSを使う可能性があるので、予習を兼ねて。
※実はSVNよりGitの方が良かった(=出先で、飛行機の中でブランチ切りたくなった とかそういう場合)のだがそれはまたの機会に。

ではさっくりと流れを。

0. クライアントPC側の設定
開発自体はMacなのだが、サーバ操作はWindowsなんで、Tera Team とFFFTPを導入。
Mac側は今の時点ではXcodeのSCM機能を使うのでクライアントは導入せず。 でも、AndroidはEclipseなんでSVNクライアントとかプラグインは必要なんだが。

(追記)Mac はOS付属のターミナルから
 ssh [dtiから割り付けられたIP] -p 3843 -l [ユーザ名]
でログイン出来るのでTeamソフトの追加は不要。


1.  ServersMan@VPS の契約
ディスクコース・Entryプラン、CentOS(32bit)で作成。
しょぼい注意点としては、
・初回2ヶ月無料だが、契約時点にクレジットカード番号が必要
・細かい接続情報の書いてあるメールがGMailの迷惑メールフォルダに入ってた。



2. ServersMan@VPS の初期設定
Tera Teamでログインして、
  割と定番な、rootのパスワード変更、ユーザアカウント作成、rootでのログイン禁止
を設定

3.  Subversionの導入
 主に バージョン管理システム構築(Subversion) - Fedoraで自宅サーバー構築 を参考にさせていただきました。
  相違点は、
・とりあえず、クライアント側にTortoiseSVN は導入せず。
・旅行先でも使うのでIPが決まらないのでIPによるアクセス制限は設定せず。
  ・(!ここ重要!) ServersMan@VPS の apache のユーザ、グループは、daemon/daemon です。apache/apacheではないです。(軽くはまった)
・(追記) バージョン管理システム構築(Subversion) - Fedoraで自宅サーバー構築 で記載されている
/etc/httpd/conf.d/subversion.conf
の設定は見れば解るとおり、書き込みに関してのみ認証しているので、個人用のレポジトリ
をVPS上に構築する場合は上記の制限を外したほうがよろしいかと。


4. ViewCV の導入
必須ではないのですが入れてみた。で結構はまった。
ViewVC/1.1.2のインストール - PukiWiki と、 バージョン管理システム構築(Subversion) - Fedoraで自宅サーバー構築   を参考にしてみました。
  ・なぜか yum でインストール出来ないのでソースで落としてビルドする必要あり
・ViewCVのパスにもBasic認証を追加した。

5.サーバ上にレポジトリ作成
 バージョン管理システム構築(Subversion) - Fedoraで自宅サーバー構築 参照
こっちでも
  ・(!ここ重要!) ServersMan@VPS の apache のユーザ、グループは、daemon/daemon です。apache/apacheではないです。(軽くはまった)

6. サーバ側テスト
クライアント側(Mac)からディレクトリを作ってテストしてみた。
でらうま倶楽部 : Xcode SCMを使ってプロジェクトの初期段階からマスターまでの状態を保存する。  を参考にテストしてみた(でここでapacheのユーザが違ってファイルが作れないとか色々あった)

7.クライアント側テスト(Xcode)
ここでも、でらうま倶楽部 : Xcode SCMを使ってプロジェクトの初期段階からマスターまでの状態を保存する。  を参考にやってみた。


Mac mini 側でXcodeのプロジェクト一式を一度SVNに読み込ませて、build以下はレポジトリ上で一度削除して、別の場所にチェックアウト

MacBook Air のXcodeにもSCMの設定をして、Mac mini 側で読み込ませたプロジェクトをチェックアウトして使えることを確認。

その後、Mac mini 側でソースを書き直してコミットして、MacBook Air 側で反映させれることを確認して、意図したことは出来るな。ということは確認。

が、MacのXcodeのプロジェクトのSVNへの反映の方法は、branchとかの使い方もあって、ちょい悩み中。

0 件のコメント:

コメントを投稿