SubversionをSSHで利用する(1)(svn+ssh)
最近週末はマックやスタバで一日過ごしているたい焼きです。
食生活がヤバいです。。><
それはさておき。
自宅でSubversion+SSHを構築しましたので、
メモとして残しておきます。
まずはSSHを使用しないSVNのみについてお話します。
環境は以下の感じです。
項目 | 内容 |
---|---|
OS | CentOS 5.5 64bit版 |
サーバ名 | TaiyakiServer |
リポジトリを利用するユーザ名 | taiyakisun |
リポジトリのパス | /home/svn-repos |
クライアント側の作業パス | C:\work |
2.SVNのインストール
実は自分の環境では標準でSubversionがインストールされていたので
インストール作業やったことはないです。
ただ、Fedora CoreやCentOSなどRedHat系OSの場合は以下のコマンドで
インストールできるはずです。
また、以下はApacheと連携する予定のある場合も考え、Apacheと
連携用のモジュールも同時にインストールしています。
yum -y install httpd subversion mod_dav_svn
3.SVN環境の構築
まずはリポジトリ用のフォルダを作成しましょう。
mkdir -p /home/svn-repos
ここで適切に読み取り、書き込みを設定します。
権限を以下のように設定します。
chown -R taiyakisun:taiyakisun /home/svn-repos chmod -R 770 /home/svn-repos
リポジトリを作成します。
svnadmin create /home/svn-repos
サーバ上でSVNのデーモンを起動しましょう。
svnserve --daemon --root /home/svn-repos
この時点で読み取りのみ利用できるようになっているはずです。
最初にImportする必要があるので、書き込みを可能にします。
/home/svn-repos/conf/svnserve.confを開いて以下を
ファイルの末尾に追加します。
anon-access = read auth-access = write password-db = passwd
次に/home/svn-repos/conf/passwdに以下のフォーマットで
ユーザ名とパスワードを書き込みましょう。
[users] (ユーザ名) = (パスワード)
例えばtaiyakisunというユーザで、melonというパスワードを
設定するなら以下のように書いてください。
[users] taiyakisun = melon
これでリポジトリ全体についてのセキュリティが確保されました。
パスごとにセキュリティを設定できますが、それはまた今度。
さっそく使ってみましょう。
自分はSVNクライアントにTortoiseSVNを使用しており
あまりSVNコマンドには詳しくないのですが、文章で
説明するのがGUIだと大変なんでコマンドで説明します。
TortoiseSVN上のどの項目が対応しているかもなんとなくわかると
思うのできっと大丈夫です!^^;
「C:\MyProject」以下のファイルをインポートしてみます。
cd C:\MyProject svn import -m "initial import" . svn://taiyakisun@TaiyakiServer/home/svn-repos/trunk
SVNスキームを使用して、ローカルドライブにある「C:\MyProject」以下の
ファイル群をTaiyakiServerのリポジトリ「/home/svn-repos」の
パス「trunk」にユーザ「taiyakisun」で格納しています。
次にチェックアウトしてみましょう。
cd C:\work svn co svn://taiyakisun@TaiyakiServer/home/svn-repos/trunk MyProject
コミットしたいときはこうです。
cd C:\work svn commit -m "Added some data"
あれ、サーバ名やユーザ名は、と思われるかもしれませんが、
サーバ名についてはSVNはどこからチェックアウトされたものか記憶
しているので指定する必要はないです。
ユーザ名についてはこのコマンドを実行しているユーザが使用されます。
違うユーザを使いたいときはコマンドを打った後、パスワードを
入力せずエンターキーを押せばよいです。
それから、SVNスキームの場合ポート番号は3690番を使用します。
ファイアウォールなどで通信を許可するようにしてください。
また、注意点としてSVNスキームの場合はファイル内容が暗号化されず、
そのまま平文で転送されます。ですので、この時点ではインターネット等
公衆回線に公開するのはやめておいたほうがいいでしょう。
あくまでルータなどで保護された同一LAN内の利用までに留めてください。
この記事を書き始めたのがSVNの勉強を始めた当日ということもあり
間違っていることもあると思いますが、その際はぜひご指摘くださーい(他人任せ)