TortoiseSVN+Sambaだとコミット時にエラーが出る

コミット時に「アクセス権がない」とかなんとか言われて、エラーが出る。

同じような事で悩んでいる人も発見。
svn/TortoiseSVNがコミットエラー

エラーが出たファイルのパーミッションを見てみると、444になってて書き込みが出来なくなっている。
まあ、そういうことなのです。

つまり、こんな感じだと思われる。
TortoiseSVNが.svnディレクトリ内にファイルを作る
↓
ファイル名を書き換えようとする
↓
作られたファイルのパーミッションが444とかなので、アクセス権が無く編集できない
↓
エラー</code></pre>

で、
<pre><code>/etc/samba/smb.conf

[web]
  comment = Web Directory
  path = /var/www
  valid users = key1
  public = yes
  writable = yes
  printable = no
  create mask = 0644
  force create mode = 0600
  security mask = 0555
  force security mode = 0600


なんて設定してやると良いみたい。
様子見てみないとわかんないけど、多分いけるっしょ。

create maskだけでいけるはずなんだけど、たまに効かないみたいなので、force create modeも設定してある。
これってバグなんかなあ、けど明らかに想定してforce create modeってのも作ってある気もする。

謎。

coreserverにsubversionのリポジトリを置いてTortoiseSVNでアクセスしたい

友人からsubversionのことをどうのこうの聞かれたので、このブログのバージョン管理に使ってみることにした。

coreserverには以前、subversionの最新版をインストール済み。
coreserverに最新版のsubversionをインストールしてみた

時代はGitだっつうのに忍びないが、まだまだ現時点ではsubversionの方がドキュメントが多いし、Windowsで使おうとすると尚更だからね。

とりあえずリポジトリはcoreserver上において、クライアントはWindows。
SSHでアクセスする感じでやれないかなと。

■リポジトリの作成
mkdir ~/var
mkdir ~/var/repos
cd ~/var/repos/
svnadmin create diary

このブログのリポジトリなので、とりあえずdiaryにしてみた。

■クライアントインストール
まずはWindowsのクライアントは例の如くTortoiseSVN
普通にダウンロード&インストールで使えるようになる。
ついでにダウンロードページにある日本語のランゲージパックもダウンロードしてあてとく。
いやービックリするぐらい簡単。
エクスプローラーが変にカスタマイズされるのが気持ち悪くて、以前アンインストールしてしまったが、今回はSVNに慣れるまで我慢するのだ。

■puttyのインストール
話せば長くなるのだが、puttyが必要なのだ。

以下話せば長くなる内容。

まず、TortoiseSVNにはSSH接続するTortoisePlink.exeが含まれているんだけど、こいつがputtyを元に作られている模様。
で、ここで躓いたんだけど
puttygenで生成された公開鍵≠OpenSSH方式の公開鍵</code></pre>
ということが判明。
なので、以前<a href="http://d.longkey1.net/archives/0000000603">coreserverで鍵方式でsshでログインする</a>ように設定してあったんだけど、OpenSSH方式の公開鍵ではアクセス出来なかった。
つうことで、puttygenで公開鍵を作り直さないといけない。


■puttygenで公開鍵を作成する
puttygenを以下からダウンロードして、起動。
<a href="http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html">PuTTY Download Page</a>

[Load]でOpenSSH方式の公開鍵を選択して、[Save private key]でok。
※参考サイト:<a href="http://edgeb.is.kyushu-u.ac.jp/~yosinori/ssh/putty/index-j.html">PuTTYによるSSH1/2接続</a>


■TortoiseSVNを設定
そこで2つの方法があるみたい。

<pre><code>(1)[設定]→[ネットワーク]のSSHクライアントで以下のように設定

C:\Program Files\TortoiseSVN\bin\TortoisePlink.exe -l (ユーザ名) -i (puttyのppkファイル)


この方法だと、あんまり気軽にリポジトリをスイッチするってことし難い感じ。
いちいち設定画面で変更するってのもね・・・。
まあ、しんでもいいんだけどさ。

(2)リポジトリブラウザで切替</code></pre>

この方法だと、気軽といえば気軽なので、こっちを採用してみる。

■puttyでSessionを保存
そこでまず、puttyでsession(接続条件を保存しておくようなもの)を保存しないといけない。
これもtortoisePlink.exeがputtyから派生しているゆえんか・・・。

puttyの本体を落としてきて、さっきputtyのppkファイルでアクセス出来るように設定。
具体的にはこんな感じ。
<pre><code>[Session]でHostNameをセット。
[Connection][DATA]にAuto-login usernameをセット。
[Connection][SSH][Auth]でPrivate key file for authehnticationに
putty用ppkファイルを選択。

んでSession名をcoreserverとかにして保存。
アクセス出来る事を確認する。

で、TortoiseSVNのリポジトリブラウザに以下を入力して接続。
svn+ssh://acountname@coreserver/virtual/acountname/var/repos/diary


これで無事接続出来れば完了。
自分で書いてても良くわかんなくなったが、とりあえずメモってことで。

coreserverに最新版のsubversionをインストールしてみた

vimをソースからインストールしたことが、正直気持ちが良くて続けてsubversionもインストールしてみた。
これは古いバージョンが入っているんだよね、まあそれ程凝った使い方をしなければ、デフォルトのもので良いとおもうけど。

参考サイト:
coreserverにsvn入れた。 - tomisima::memo

まずはberkeley-dbをインストールした方が良い模様。
最新版はここでチェック:
Oracle Berkeley DB Downloads
berkeley-dbってOracleが作ってたのか、ふーん。
cd ~/virtual/account/local/src
tar xvzf db-4.7.25.tar.gz
curl -O http://download.oracle.com/berkeley-db/db-4.7.25.tar.gz

ダウンロードして解凍。
そして続けてインストール。
cd db-4.7.25/build_unix/
../dist/configure --prefix=$HOME/local --enable-compat185
make
make install

このmakeって時点でかなりkilledとなりこける模様。
そうだなー、killedとか出なくなるまで5回位はやり直した。

次にsubversionをインストール。
バージョンはここで確認:
subversion.tigris.org
cd ~/virtual/account/local/src
curl -O http://subversion.tigris.org/downloads/subversion-1.5.4.tar.gz
curl -O http://subversion.tigris.org/downloads/subversion-deps-1.5.4.tar.gz
% tar xvzf subversion-1.5.4.tar.gz
% tar xvzf subversion-deps-1.5.4.tar.gz

ダウンロードして解凍。
そしてインストール。
cd subversion-1.5.4
./configure --prefix=$HOME/local --with-ssl --with-berkeley-db=$HOME/local
make
make install

ここのmakeはかなり手ごわかった。
10回以上はやったと思う。
何度かwarningが出ていたけど、気にせず最後まで通ればとりあえずOKなのかな?

最後に
svn --version

とやって、最新バージョンの番号(1.5.4)が返ってこれば一先ずOK。

実際にsvnクライアントでアクセスしてみると上手くいかないみたい。
coreserverにSubversion入れようとしたのだが…

コメントを見る限り.bashrcを作成してそこにPATHを通せば良さそうだけど、とりあえずそん時に考えることにする。


vimとsubversionを続けてソースからインストールして思ったんだけど、インストール先は--prefixオプションで指定して、実際にバイナリーが出来るのは、指定したパスの直下にあるbinだったりするのね、ふむふむ。
1 of 1

アーカイブ

2010

  • 01
  • 02
  • 03
  • 04
  • 05
  • 06
  • 07
  • 08
  • 09
  • 10
  • 11
  • 12

2009

2008

2007

コンタクト

longkey1[at]gmail[dot]com