忍者ブログ
SE稼業で見知った小ネタをまとめてみます。 サーバ・ヲタなので、主にそっち系のTipsを。
[15]  [14]  [13]  [12]  [11]  [10]  [9]  [8]  [7]  [5]  [4
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

はじめに⇒
 今、
 お客さんのミドルウェアの移植作業をしている。

 リヴィジョン管理する必要があり、
 今回、
 Subversionを導入することにした。

 CVSよりも、クローズドな環境での運用が楽そう。
 ロック(チェックアウト)とか明示できるし。

 

前提⇒
  64ビットELFバイナリとしてビルドする。
  理由、Apache2用DSOを64ビットで構成する必要があるため。

  それから、インターネットで使うわけぢゃないので、SSLたら、データ圧縮たら、しない。

    関連パッケージは以下の通り。
×    1.  apr-0.9.7         subversion付属のもので良し
×    2.  autoconf          入れない
×    3.  libtool           入れない
×    4.  neon              subversion付属のもので良し
●    5.  Berkeley DB 4.X   db-4.4.20.tar.gz  ← <http://dev.sleepycat.com>
●    6.  Apache httpd-2.0  httpd-2.0.59.tar.bz2  ←   <http://httpd.apache.org/>
○    7.  Python 2.4.3      Python-2.4.3.tar.bz2 ←   <http://www.python.org/>
×    8.  Visual C++ 6.0    関係ない
×    9. Perl 5.8 or newer  /opt/perl/bin/perl      (プリインストールされてたもの Ver.5.8.3)
×   10. MASM 6 or newer    関係ない
     11. Libraries for our libraries
×      "--with-ssl=/opt/openssl"
×      "--with-zlib=/usr/local"

    肝心のSubversionのパッケージ、
  次の通り。

     サーバ・ソース                (http://subversion.tigris.org/)
        subversion-1.3.2.tar.bz2

     クライアント・Win32 バイナリ  (http://tortoisesvn.tigris.org/)
        LanguagePack-1.3.5.6804-win32-ja.exe
        TortoiseSVN-1.3.5.6804-svn-1.3.2.msi

     Eclipse プラグイン            (http://subclipse.tigris.org/)
       《Subclipseプラグインのインストール》

 

手順⇒
1.インストール
 1. Berkeley DBをビルド
    % gzcat db-4.4.20.tar.gz | tar xf -
    % cd db-4.4.20/build_unix
    % CC="/opt/ansic/bin/cc +DD64"; export CC
    % CFLAGS="-AC99 -z +Z -Y -g"; export CFLAGS
    % LDFLAGS="-Wl,+n"; export LDFLAGS
    % ../dist/configure \
    --prefix=/usr/local \
    --bindir=/usr/local/bin/hpux64 \
    --libdir=/usr/local/lib/hpux64
        ・
        ・
        ・
    % make
        ・
        ・
        ・
    % make install
        ・
        ・
        ・
    %


 2. Pythonをビルド
    % bzcat Python-2.4.3.tar.bz2 | tar xf -
    % cd Python-2.4.3
    % CC="/opt/ansic/bin/cc +DD64"; export CC
    % CFLAGS="-AC99 -z +Z -Y -g"; export CFLAGS
    % LDFLAGS="-Wl,+n"; export LDFLAGS
    % ./configure \
    --prefix=/usr/local/Python64 \
    --enable-shared \
    --disable-ipv6 \
    --without-gcc \
    --with-threads
        ・
        ・
        ・
    % make
        ・
        ・
        ・
    % make check
        ・
        ・  ※時間がかかるー。 昼飯、食べて来よっと。
        ・
    % make install
        ・
        ・
        ・
    %


 3. Apache httpdソースを展開
    % bzcat httpd-2.0.59.tar.bz2 | tar xf -
    %


 4. subversionをビルド
    % ls --color -F
    Python-2.4.3/         db-4.4.20/              httpd-2.0.59/         subversion-1.3.2.tar.bz2
    Python-2.4.3.tar.bz2  db-4.4.20.tar.gz        httpd-2.0.59.tar.bz2
    % bzcat subversion-1.3.2.tar.bz2 | tar xf -
    % cd subversion-1.3.2
    % PYTHONPATH=/usr/local/Python64/bin/python
    % CC="/opt/ansic/bin/cc +DD64"; export CC
    % CFLAGS="-AC99 -z +Z -Y -g"; export CFLAGS
    % LDFLAGS="-Wl,+n"; export LDFLAGS
    % ./configure \
    --prefix=/usr/local/svn64 \
    --enable-shared \
    --with-berkeley-db=/usr/local \
    --with-apache=../httpd-2.0.59
        ・
        ・
        ・
    % make
        ・
        ・  ※1回目のトラブル、内製の共有オブジェクトとリンクできない旨のエラーで中断

 原因を調査した結果、
 前の段階でリンクされた全ての共有オブジェクトの在り処を
 “LPATH”という環境変数を使ってリンク時検索PATHを教えてやる必要あり。

  % setenv LPATH \
    $PWD/subversion/libsvn_client/.libs:\
    $PWD/subversion/libsvn_delta/.libs:\
    $PWD/subversion/libsvn_diff/.libs:\
    $PWD/subversion/libsvn_fs/.libs:\
    $PWD/subversion/libsvn_fs_base/.libs:\
    $PWD/subversion/libsvn_fs_fs/.libs:\
    $PWD/subversion/libsvn_ra/.libs:\
    $PWD/subversion/libsvn_ra_dav/.libs:\
    $PWD/subversion/libsvn_ra_local/.libs:\
    $PWD/subversion/libsvn_ra_svn/.libs:\
    $PWD/subversion/libsvn_repos/.libs:\
    $PWD/subversion/libsvn_subr/.libs:\
    $PWD/subversion/libsvn_wc/.libs:\
    $PWD/apr/.libs:\
    $PWD/apr-util/xml/expat/lib/.libs:\
    $PWD/neon/src/.libs:\
    $PWD/apr-util/.libs:\
    /usr/local/lib/hpux64:\
    /usr/lib/hpux64
  % make
        ・
        ・ ※2回目のトラブル、libtoolでエラーが発生してしまう。
  libtool ‥‥‥
  マルチバイト文字が正しくありません

LANG環境変数をEUCロケールにしてたのがまずいらしい。
“C”ロケールにかえる。

  % setenv  LANG  C
  % make
        ・
        ・ ※3回目のトラブル、svndumpfilterコマンドのリンク時、iconv関数をリンクできない旨のエラー発生
        ・  って、おいおい、進んじゃうよ、止まれ、止まれ、とCtrl+C 打ち込み

 原因を調査すると、
 libiconv をリンク指定していない。
 ので、手でMakefileを修正し、
 /usr/local/lib/hpux64/libiconv.so  ← ソースDL元 《libiconv-1.10-cp932.patch.gz》
 がリンクされるよう指定。
 (Makefileを直接編集するのは邪道だが、この際仕方ない、急いでるんで)

  % make
        ・
        ・ ※4回目のトラブル、libtoolコマンドの実行のさせ方が悪いみたい
        ・
  libtool: link: only absolute run-paths are allowed
  make: *** [subversion/mod_dav_svn/mod_dav_svn.la] Error 1
  %

むむむ、
またもや、リンク時のコマンド指定の仕方が良くない。
自力でMakefileとbuild-outputs.mkというファイルを改修。
ちなみに、
DSOのビルドに関する詳細は 《こちら》

  % make
        ・
        ・
    % make check
        ・
        ・  ※めっちゃ、時間がかかる、スタバ行って一服して帰って来てもまだやってたし(-_-;)
        ・
    % make install
        ・
        ・
        ・
    %

  あれ、Apache2 にSubversionのDSOモジュールが組み込まれてないやん。
  手で入れろ、てか。

    % $APACHE_HOME/bin/apxs -i -n dav_svn subversion/mod_dav_svn/.libs/mod_dav_svn.so
        ・
        ・
    % $APACHE_HOME/bin/apxs -i -n authz_svn subversion/mod_authz_svn/.libs/mod_authz_svn.so
        ・
        ・
    %

 

2.準備
 5. サーバ設定
    /etc/services に記述
        svn  3690/tcp              # Subversion


 6. Subversion Daemon 起動
    # /usr/local/svn/bin/svnserve -d
    # ps -ef |grep svn
        root  2336     1  0 08:50:54 ?         0:00 /usr/local/svn/bin/svnserve -d
    # lsof -i:svn
    COMMAND    PID USER   FD   TYPE             DEVICE SIZE/OFF NODE NAME
    svnserve 13954 root    3u  IPv6 0xe00000016595aac0      0t0  TCP *:svn (LISTEN)
    #


  7. Apache2 WebDAVでもSubversionが動くようにする
    % su -
    Password : ********
    #

  $APACHE_HOME/conf/httpd.conf にSubversionアクセス設定を追加。
  まず、Subversion DSOがロードされるようになっているか確認。
  (先刻のapxsコマンドで登録されてるはず)
        LoadModule dav_svn_module modules/mod_dav_svn.so
        LoadModule authz_svn_module modules/mod_authz_svn.so

  WebDAV機能を有効にする。
        <Directory />
            DAV on
            Options FollowSymLinks
            AllowOverride None
        </Directory>

 “/svn”というロケーションを用意。
        <Location /svn>
          DAV svn
          SVNParentPath "/home/var/svnrepositories"
        </Location>

    # $APACHE_HOME/bin/apachectl configtest
    Syntax OK
    # $APACHE_HOME/bin/apachectl start
    # exit
    %

 とりあえず、リポジトリを作る。
    % svnadmin create /home/var/svnrepositories/REPOS
    %

  接続確認。
    % telnet localhost 80
    Trying...
    Connected to localhost.hoge.jp.
    Escape character is '^]'.
    OPTIONS /svn/REPOS/ HTTP/1.1<CR>
    Host: localhost<CR>
    <CR>
    HTTP/1.1 200 OK
    Date: Fri, 01 Sep 2006 05:30:36 GMT
    Server: Apache/2.0.59 (Unix) DAV/2 SVN/1.3.2
    DAV: 1,2
    DAV: version-control,checkout,working-resource
    DAV: merge,baseline,activity,version-controlled-collection
    DAV: <http://apache.org/dav/propset/fs/1>
    MS-Author-Via: DAV
    Allow: OPTIONS,GET,HEAD,POST,DELETE,TRACE,PROPFIND,PROPPATCH,COPY,MOVE,LOCK,UNLOCK,CHECKOUT
    Content-Length: 0
    Content-Type: text/plain

    Connection closed by foreign host.
    %

 おぉ、成功!


 8. クライアント設定
   クライアントの 
   WindowsXP PCの
  ‘%SystemRoot%\System32\Drivers\etc\services’に下記を追加。
        svn  3690/tcp              # Subversion


  9. TortoiseSVN をインストール。
    MSIパッケージだから、すんなり入る。
    日本語ロケールのパッケージも忘れんなよ。
    日本語への切替は、
    パッケージインストール後、
    エクスプローラ上で右クリックして出てきたポップアップメニューで、
    [TortoiseSVN]→[Settings] を選択し、
  「TortoiseSVN Settings」ダイアログを出す。
    当ダイアログ内、
    “Language:” 欄よりプルダウンリスト内の「日本語」を選んで「OK」
    だ。
    ちなみに、トータス・エス・ヴィ・エヌ と読むらしい。
    なんで、亀なんやろ。


 10. Eclipse に‘Subclipse’ をインストール。
   更新マネージャ使ってダウンロードしてセットアップ。
   めっちゃ簡単、インターネットに繋がってれば。
   繋がってない、ローカルのPCには、どうやればセットアップできるんやろ。

    今回のEclipse のパッケージングは次のとおり。
     Eclipse 本体  <http://download.eclipse.org/eclipse/downloads/>
        eclipse-SDK-3.2-win32.zip
        NLpack1-eclipse-SDK-3.2-win32.zip
      CDT        <http://www.eclipse.org/cdt/downloads.php>
        org.eclipse.cdt.sdk-3.1.0-win32.x86.zip
      日本語化      <http://mergedoc.sourceforge.jp/>
        pleiades_1.0.3.zip
        jstyle_3.2.0.0.zip

 

使い方編≪Subversionをあざとく使う方法≫へ、つづく

 

今回お世話になったサイト⇒

    Subversion によるバージョン管理(邦訳)

   てんぷらメモ > Subversion

    subversion+viewcvsインストール

    Subclipseプラグイン

    Subversion 覚書

    Linux Home Server Memo > Subversionでサイト管理(1/3)

    Landscape - エンジニアのメモ 2005-03-01

PR
この記事にコメントする
お名前
タイトル
文字色
メールアドレス
URL
コメント
パスワード   Vodafone絵文字 i-mode絵文字 Ezweb絵文字
この記事へのトラックバック
この記事にトラックバックする:
お見えになった方の数
カレンダー
04 2024/05 06
S M T W T F S
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
最新CM
[08/30 godnowhere]
最新TB
プロフィール
HN:
godnowhere
性別:
男性
職業:
システム・エンジニア
趣味:
機械いぢり
analyzer
忍者ブログ [PR]