- PR -

linuxでのSubversion導入について

1
投稿者投稿内容
コウジ
ベテラン
会議室デビュー日: 2006/12/18
投稿数: 54
投稿日時: 2008-05-01 00:18
いつもお世話になります。

現在LINUXでSubversionの導入をしておりますが、うまく動作しておりません。
構成
OS:SLES10 x86_x64
Subversion環境:
Apache2,Berkeley DB(Versionはメモ忘れ),Subversion(Versionはメモ忘れ)

以下のリンクにある手順の通り作業をしております。
http://www.atmarkit.co.jp/flinux/special/webdav03/webdav02a.html

現象としてはインストール時にはエラーなどは見当たらなかったのですが、
いざ最初のファイルをインポートしようとすると以下のメッセージが出てきてしまいます。
# svn import file:///tmp/svn/trunk -m "creating trunc directory for repos"
svn: Unable to open an ra_local session to URL
svn: Unable to open repository 'file:///tmp/svn'

インポートだけでなく、"svn mkdir"でも同様のエラーが出てしまいます。
# svn mkdir file:///tmp/svn/trunk -m "making trunk directory for repos"
svn: Unable to open an ra_local session to URL
svn: Unable to open repository 'file:///tmp/svn'


リポジトリにアクセスできていないようなメッセージですが、
Webブラウザからhttp参照するとリポジトリは参照できているようです。
(Revision 0 が表示されます)
参照は出来ても書き込み権限がないのかしら?と疑っております。

今自分でここが原因かもしれない、と思っている箇所は、
インストール手順を全てrootで実行してしまっているところです。
上記urlの手順には「makeまで実行が終わったらrootにsuして・・・」とあるのですが、
そもそもsuする前のユーザは誰で実行するのかがわからず(手順にもなかったので・・・)、
とりあえず以下の作業を全てrootでやってしまっております。

1.Apacheのインストール(tarの解凍からmake installまで)
2.BerkeleyDBのインストール(tarの解凍からmake installまで)
3.Subversionのインストール(tarの解凍からmake installまで)

ここに問題がありますでしょうか?
一般的にapache・BerkleyDB・Subversionは誰ユーザでmakeまでやるという決まりはありますでしょうか?

なんだか情けない質問ですが、大変困っておりますので
どなたかご教示願えませんでしょうか?

こちらからの情報不足などがありますようでしたらご指摘くださいませ。

よろしくお願いいたします。
瀬戸っぷ
ベテラン
会議室デビュー日: 2003/11/28
投稿数: 56
投稿日時: 2008-05-01 00:34
参照している記事がずいぶんと古いもののようですが…


  • リポジトリの作成時にはどのようなコマンドを投入しましたか?
  • svn infoコマンドでリポジトリの情報は表示されますか?
  • リポジトリの格納されているディレクトリに対するアクセス権は正しく設定されていますか?


svn infoでは下記の様な出力になります。(日本語環境です)

$ svn info file:///home/setoppu/svnrepos/WebPages
パス: WebPages
URL: file:///home/setoppu/svnrepos/WebPages
リポジトリのルート: file:///home/setoppu/svnrepos/WebPages
リポジトリ UUID: 3b1f7a96-8c65-4a76-9579-22f0f832709d
リビジョン: 23
ノード種別: ディレクトリ
最終変更者: setoppu
最終変更リビジョン: 23
最終変更日時: 2007-08-11 22:38:52 +0900 (土, 11 8月 2007)

$

コウジ
ベテラン
会議室デビュー日: 2006/12/18
投稿数: 54
投稿日時: 2008-05-01 01:46
瀬戸っぷ様 夜分遅くご対応ありがとうございます。
いつもここの方々からの早いご回答助かります。
早速ご質問への回答をさせていただきます。

引用:

リポジトリの作成時にはどのようなコマンドを投入しましたか?


svnadmin create /home/svn/repos
と打ち込みました。

引用:

svn infoコマンドでリポジトリの情報は表示されますか?


# svn info file:///home/svn/repos/
Path: repos
URL: file:///home/svn/repos
Repository Root: file:///home/svn/repos
Repository UUID: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx <<-- ここはマスクさせていただきました。
Revision: 0
Node Kind: directory
Last Changed Rev: 0
Last Changed Date: 2008-04-01 02:05:40 +0900 (Tue, 01 Apr 2008)

コマンドと結果を返答とさせていただきます。

引用:

リポジトリの格納されているディレクトリに対するアクセス権は正しく設定されていますか?


例のリンクの手順に「httpdの権限で実際にリポジトリを読み書きできるようにするため」、
「# chown -R nobody:nobody /home/svn」を実行しております。
以下にリポジトリディレクトリのls結果を記述します。
HOGESV01:/home/svn/repos # ls -l
total 28
-rw-r--r-- 1 nobody nobody 229 Apr 1 02:05 README.txt
drwxr-xr-x 2 nobody nobody 4096 Apr 20 19:55 conf
drwxr-xr-x 2 nobody nobody 4096 Apr 1 02:05 dav
drwxr-sr-x 5 nobody nobody 4096 Apr 1 02:05 db
-r--r--r-- 1 nobody nobody 2 Apr 1 02:05 format
drwxr-xr-x 2 nobody nobody 4096 Apr 1 02:05 hooks
drwxr-xr-x 2 nobody nobody 4096 Apr 1 02:05 locks


引用:

参照している記事がずいぶんと古いもののようですが…


そうでしたか・・・。ここまで懇切丁寧に教えてくれているサイトが無かったものですから・・・
蛇足ですが、一般的にはリポジトリはBerkeleyDBは使用しないのでしょうか?
また、他に新しい記事で丁寧に教えてくれるサイトなどはありますでしょうか?


なお、不明だったバージョンは以下と判明しました。
Berkeley DB:db-4.6.21
Subversion:1.4.6
apache:httpd-2.2.8

他に必要な情報はありますでしょうか?
よろしくお願いいたします。
すけ
会議室デビュー日: 2008/02/12
投稿数: 13
投稿日時: 2008-05-01 02:16
はずしているかもしれませんが、
# chown -R apahce:apache /home/svn
を試されてみては?

もしくは、
# chmod -R 777 /home/svn
とか。
コウジ
ベテラン
会議室デビュー日: 2006/12/18
投稿数: 54
投稿日時: 2008-05-01 13:03
引用:

-rw-r--r-- 1 nobody nobody 229 Apr 1 02:05 README.txt
drwxr-xr-x 2 nobody nobody 4096 Apr 20 19:55 conf
drwxr-xr-x 2 nobody nobody 4096 Apr 1 02:05 dav
drwxr-sr-x 5 nobody nobody 4096 Apr 1 02:05 db
-r--r--r-- 1 nobody nobody 2 Apr 1 02:05 format
drwxr-xr-x 2 nobody nobody 4096 Apr 1 02:05 hooks
drwxr-xr-x 2 nobody nobody 4096 Apr 1 02:05 locks



あれ?よく見るとwが無いですね・・・。

ありがとうございます、すけ様。
環境に戻ったら [ # chmod -R 777 /home/svn ] やってみます。

夜にまた実行結果報告させていただきます。

[ メッセージ編集済み 編集者: コウジ 編集日時 2008-05-01 13:03 ]

[ メッセージ編集済み 編集者: コウジ 編集日時 2008-05-01 13:04 ]
瀬戸っぷ
ベテラン
会議室デビュー日: 2003/11/28
投稿数: 56
投稿日時: 2008-05-02 00:48
引用:

svnadmin create /home/svn/repos
と打ち込みました。



最初の
引用:

# svn import file:///tmp/svn/trunk -m "creating trunc directory for repos"


とは違っている様ですが、新しく作り直したのでしょうか?

引用:

例のリンクの手順に「httpdの権限で実際にリポジトリを読み書きできるようにするため」、
「# chown -R nobody:nobody /home/svn」を実行しております。
以下にリポジトリディレクトリのls結果を記述します。
HOGESV01:/home/svn/repos # ls -l
total 28
-rw-r--r-- 1 nobody nobody 229 Apr 1 02:05 README.txt
drwxr-xr-x 2 nobody nobody 4096 Apr 20 19:55 conf
drwxr-xr-x 2 nobody nobody 4096 Apr 1 02:05 dav
drwxr-sr-x 5 nobody nobody 4096 Apr 1 02:05 db
-r--r--r-- 1 nobody nobody 2 Apr 1 02:05 format
drwxr-xr-x 2 nobody nobody 4096 Apr 1 02:05 hooks
drwxr-xr-x 2 nobody nobody 4096 Apr 1 02:05 locks



既に指摘されていますが…
この場合だとリポジトリのURLはhttp://〜でのアクセスになりますよね?
インポートしようとしているユーザからは書き込み権限がありませんし。

ウチのはhttp://でのアクセスは設定せずに、svn://でアクセスしています。
svn+ssh://も可能なようにしていますが…。
というワケで
$ ls -lh webpages
合計 56K
-rw-rw-r-- 1 svn svn 229 2月 25 2007 README.txt
drwxrwxr-x 2 svn svn 4.0K 2月 25 2007 conf
drwxrwxr-x 2 svn svn 4.0K 2月 25 2007 dav
drwxrwsr-x 5 svn svn 4.0K 8月 11 2007 db
-r--r--r-- 1 svn svn 2 2月 25 2007 format
drwxrwxr-x 2 svn svn 4.0K 4月 20 2007 hooks
drwxrwxr-x 2 svn svn 4.0K 2月 25 2007 locks
こうなっています。
自分のユーザをsvnグループに追加しています。

引用:

蛇足ですが、一般的にはリポジトリはBerkeleyDBは使用しないのでしょうか?
また、他に新しい記事で丁寧に教えてくれるサイトなどはありますでしょうか?



現在のデフォルトではFSFSになるかと。
$ cat db/fs-type
でどちらか判るかと思います。

http://www.thinkit.co.jp/free/article/0611/2/2/
他にもSubversionでググるとイロイロ出てくるでしょう。
私は
http://www.amazon.co.jp/%E5%85%A5%E9%96%80Subversion%E2%80%95Windows-Linux%E5%AF%BE%E5%BF%9C-%E4%B8%8A%E5%B9%B3-%E5%93%B2/dp/4798013730/ref=pd_sim_b_njs_title_1
の書籍で勉強しましたが。
コウジ
ベテラン
会議室デビュー日: 2006/12/18
投稿数: 54
投稿日時: 2008-05-02 10:01
引用:

最初の
引用:

--------------------------------------------------------------------------------
# svn import file:///tmp/svn/trunk -m "creating trunc directory for repos"
--------------------------------------------------------------------------------


とは違っている様ですが、新しく作り直したのでしょうか?



間違えておりました(コマンドの使い方を勘違いしておりました)。このコマンドを
# svn import file:///home/svn/trunk -m "creating trunc directory for repos"
# svn mkdir file:///home/svn/tags -m "creating tag directory for repos"
と修正したらエラーなく実行完了し、ブラウザからも参照できました。
また、rootからだけでなく、別のユーザ(HOGE)にすして実行したところ、
やはり「permission denied」が出たので
# chmod -R 777 /home/svn
を実行したところ、HOGEユーザからもエラー無くmkdirできました。

ありがとうございました、瀬戸っぷ様、すけ様。



そして・・・、
次のステップとしてsvn+sshで実行したところ、おかしな動作が出てきたのですが・・・。
作業が夜分遅くて動作の整理ができておりません。ログなどの再報告は夜になるかと思います。
よろしかったらまたお付き合いお願いできればと思っております。

[ メッセージ編集済み 編集者: コウジ 編集日時 2008-05-02 10:02 ]
1

スキルアップ/キャリアアップ(JOB@IT)