« 制御文字の作り方 | メイン | everyday サーバいじり記録 »

2005年09月20日

subversion

やった事を記録

ちなみにrootでなければ権限無いものもあるので、注意

rpmで入れようと思ったが
mod_dav_svn.so がどーも手に入らない。
なので以下参照してソースでいれました。

http://www.atmarkit.co.jp/flinux/special/webdav03/webdav02a.html
ここ参照ね 本あんま役にたってない・・・


1、バークレイDBのインスコ
http://www.sleepycat.com/ より

db-4.0.14.tar.gz
をダウンロード解凍 #バージョンもちっと新しかったな

tar xzvf db-4.....
cd db-4.
cd build_unix
なんかしらんがこのディレクトリにていつもの呪文 
このbuild_unixでconfigureやらんとエラーなるぽ

../dist/configure
make
make install
終わると次のように言われるので
----------------------------------------------------------------------
Libraries have been installed in:
/usr/local/BerkeleyDB.4.3/lib

If you ever happen to want to link against installed libraries
in a given directory, LIBDIR, you must either use libtool, and
specify the full pathname of the library, or use the `-LLIBDIR'
flag during linking and do at least one of the following:
- add LIBDIR to the `LD_LIBRARY_PATH' environment variable
during execution
- add LIBDIR to the `LD_RUN_PATH' environment variable
during linking
- use the `-Wl,--rpath -Wl,LIBDIR' linker flag
- have your system administrator add LIBDIR to `/etc/ld.so.conf'

See any operating system documentation about shared libraries for
more information, such as the ld(1) and ld.so(8) manual pages.
----------------------------------------------------------------------
ちゅうことで
lv /etc/ld.so.conf にて

/usr/local/BerkeleyDB.4.3/lib
を書き加え

そして
/sbin/ldconfig
これで バークレイDBのインスコ完了

2、あぱっちー
configureオプション

モジュール最小の場合
./configure --enable-so=yes --enable-dav=yes \
--with-berkeley-db=/usr/local/BerkeleyDB.4.3

モジュール最大の場合
./configure --enable-module=most\
--enable-shared=max \
--enable-dav=yes \
--with-berkeley-db=/usr/local/BerkeleyDB.4.3

まぁ どっちにしろ
--with-berkeley-db=/usr/local/BerkeleyDB.4.3 と
--enable-dav=yes がありゃいいのかな

今回は最小でやってみようー
make
make installじゃ!

ハァハァできた

3、本家本丸のsubversionのインスコ!


subversion-1.1.4.tar.gz をおとしてきますた
tar xzvf subversion-1.1.4.tar.gz
cd subversion-1.1.4

configure オプション!
./configure --with-apxs=/usr/local/apache2/bin/apxs \
--with-apr=/usr/local/src/httpd-2.0.54/srclib/apr \
--with-apr-util=/usr/local/src/httpd-2.0.54/srclib/apr-util \
--with-berkeley-db=/usr/local/BerkeleyDB.4.3

2行目は/usr/local/src に今回はソースを置いてるので
ま、それぞれインストールするときの状況にあわせてちょ
んで
make
rm -f /usr/local/lib/libsvn*
make install

2行目は初めてのインスコ時はやらんでいいらしい。

これでインスコ関係終了~ 

4、下準備

リポジトリを /var/www/corp/totuya に作るとする!
http://ホスト名:8080/sub/でリポジトリにアクセスさせよかね
4-1、apacheの下準備
conf に以下追加 場所はどこら辺がええんだろ
わからんので最後に追加しとくか

<Location /sub>
DAV svn
SVNPath /var/www/corp/totuya
</Location>

あとは 8080をListenするよにしとこかね
Listen 80 を変更
↓↓↓↓↓↓↓
Listen 8080
アパッチの準備完了

4-2リポジトリの準備
#リポジトリの作成 これは空ディレクトリじゃないとだめらしい。
svnadmin create /var/www/corp/toptuya
chown -R nobody:nobody /var/www/corp/totuya

4-3 あぱち起動してみよう
/usr/local/apache2/bin/apachectl start
起動できたー

4-4、リポジトリにソース?インポート

svn import /var/www/corp/totuyatest http://localhost:8080/sub/

こんなん言われました・・・
svn: ログメッセージを取得するのに外部エディタを使えませんでした。$SVN_EDITOR 環境変数を設定するか、--message (-m) か --file (-F) オプションを用いてみてください


面倒なので以下にコマンドを変更

svn import -m 'yazuya'/var/www/corp/yazuyatest http://localhost:8080/sub/

-m 'totuya' ←コメントね

これでインポート完了


5、テスト環境に即座に反映するために

元のテスト環境を退避
sudo mv /var/www/corp/totuyatest /var/www/corp/totuyatest_org

テスト環境用のディレクトリを新たに作成
sudo mkdir /var/www/corp/totuyatest
sudo chown nobody.nobody /var/www/corp/totuyatest

リポジトリからチェックアウトしてくる
cd /var/www/corp/totuyatest
sudo -u nobody svn checkout http://localhost:8080/sub/ .

これでテスト環境に元のソースが入っているはずなので動作確認
http://192.168.1.175

動作がうまくいっているようであれば、コミットされるたびに動くファイルにスクリプト作成

sudo touch /var/www/corp/totuya/hooks/post-commit
sudo chown nobody.nobody /var/www/corp/totuya/hooks/post-commit
sudo chmod 755 /var/www/corp/totuya/hooks/post-commit

どのファイルがいつ動くかはテンプレートファイルに記載があるので、それを参照の事

とりあえず、post-commit は コミットされた動きます。

中身はこんなかんじ
------------------------------------------------------
cd /var/www/corp/totuyatest/
svn update
-------------------------------------------------------
これだけです。
テスト環境でアップデートかけているだけです。

以上でコミットされると最新状態にテスト環境もなります。

投稿者 muuming : 2005年09月20日 14:59

コメント

コメントしてください




保存しますか?