Solaris10:Subversion-1.5.3設定

提供:KinusatiWiki
移動: 案内, 検索

このページの情報は古いです。以下のページに移行しました。


目次

Subversion 導入

注意事項 Sol10でOpenSSLを追加導入してsubversionをインストールしようとすると、-fPIC周りではまり、インストールが出来ません。 力業で何とかする方法もアリですが、OS標準のOpenSSLを利用した方がよっぽど楽なので、ここではそれを前提に進めます。 また、Subversionに必要な外部ライブラリ(neon/zlib)はバージョン指定があるため、 subversion導入専用のライブラリパッケージを利用した手順を残しておきます。

なお必要ソフトウェアは以下の通り

  • openssl-0.9.8i

  • APR-1.3.3/APR-util-1.3.4
  • BerkeleyDB.4.7.25
  • Apache 2.2.10
  • subversion-1.5.3
  • subversion-deps-1.5.3

インストール方法

openssl-0.9.8i インストール

SubversionはSSL/Apache経由で利用させるため、opensslをインストールさせる。

ソースおよびパッチダウンロード

# wget http://www.openssl.org/source/openssl-0.9.8i.tar.gz

Solaris10 x86標準のgcc不具合対応(x86版のみ)

Solaris10 x86標準のgccには不具合があるらしく、パッチ適用が必要。http://www.openssl.org/~appro/values.c

# wget http://www.openssl.org/~appro/values.c
# ksh values.c
+ gcc -c -o /usr/sfw/lib/gcc/i386-pc-solaris2.10/3.4.3/values-Xa.o -DXa values.c
+ gcc -c -o /usr/sfw/lib/gcc/i386-pc-solaris2.10/3.4.3/values-Xc.o -DXc values.c
+ gcc -c -o /usr/sfw/lib/gcc/i386-pc-solaris2.10/3.4.3/values-Xt.o -DXt values.c
+ exit

コンパイル

/usr/local/ssl/libディレクトリに対してLDFLAGSを設定しないと、openssl実行時にライブラリ参照エラーが発生する。 32bitモードでコンパイルすること。-fPICも忘れずに。

# gtar xvzfp openssl-0.9.ig.tar.gz
# cd openssl-0.9.8i
(x86版)
#  LDFLAGS="-L/usr/local/ssl/lib/ -R/usr/local/ssl/lib" \
  ./Configure solaris-x86-gcc -fPIC
(SPARC版)
#  LDFLAGS="-L/usr/local/ssl/lib/ -R/usr/local/ssl/lib" \
  ./Configure solaris-sparcv9-gcc -fPIC
# gmake depend
# gmake
# gmake test
# gmake install

BerkeleyDB

以下手順で導入

# gtar xvzfp db-4.7.25.tar.tar
# cd db-4.7.25/build_unix
# LDFLAGS="-R/usr/local/BerkeleyDB.4.7 -L/usr/local/BerkeleyDB.4.7" \
../dist/configure --enable-compat185
# gmake
# gmake install

APR/APR-Util インストール

SubversionでBerkeleyDBを利用する場合はapr-utilで--with-berkeley-dbオプションを有効にする必要が有る。

# wget http://ftp.kddilabs.jp/infosystems/apache/apr/apr-1.3.3.tar.gz
# wget http://ftp.kddilabs.jp/infosystems/apache/apr/apr-util-1.3.4.tar.gz
# gtar xvzfp apr-1.3.3.tar.gz
# gtar xvzfp apr-util-1.3.4.tar.gz
# cd apr-1.3.3
# ./configure
# gmake
# gmake install
# cd apr-util-1.3.4
# LDFLAGS="-R/usr/local/BerkeleyDB.4.7/lib -L/usr/local/BerkeleyDB.4.7/lib" \
CPPFLAGS="-I/usr/local/BerkeleyDB.4.7/include" \
./configure \
--with-apr=/usr/local/apr \
--with-berkeley-db=/usr/local/BerkeleyDB.4.7 \
--with-iconv=/usr/local
# gmake
# gmake install

Apache-2.2.10 インストール

Apache経由でSubversionを利用するため、Apacheをインストールする。

# wget http://ftp.kddilabs.jp/infosystems/apache/httpd/httpd-2.2.10.tar.gz
# gtar xvzfp httpd-2.2.10.tar.gz
# cd httpd-2.2.10

# LDFLAGS="-L/usr/local/ssl/lib -R/usr/local/ssl/lib -L/usr/local/lib -R/usr/local/lib" \
  CPPFLAGS="-I/usr/local/ssl/include -I/usr/local/include" \
  ./configure \
  --enable-so \
  --enable-ssl \
  --enable-dav=shared \
  --enable-dav_fs=shared

# ./configure \
--with-apr=/usr/local/apr \
--with-apr-util=/usr/local/apr \
--enable-so \
--enable-ssl \
--enable-dav=shared \
--enable-dav_fs=shared
# 
# gmake
# gmake install

subversion インストール

Subversionをインストールする。zlib,neonに依存するためsubversion-depsも併せて導入する

ソースおよびパッチダウンロード

# wget http://subversion.tigris.org/downloads/subversion-1.5.4.tar.bz2
# wget http://subversion.tigris.org/downloads/subversion-deps-1.5.4.tar.bz2
# gtar xvjfp subversion-1.5.4.tar.bz2
# gtar xvjfp subversion-deps-1.5.4.tar.bz2
# cd subversion-1.5.4

zlib

zlibをコンパイルする。インストールは不要。"-fPIC"がないとSubversionインストールが失敗するため注意!!

# cd zlib
# CFLAGS="-fPIC -O3" ./configure
# ./configure
# gmake

# gmake install

neon

neonをコンパイルする。"-fPIC"がないとSubversionインストールが失敗するため注意!!

# cd neon

# CFLAGS="-fPIC" \
  LDFLAGS="-L/usr/local/ssl/lib -R/usr/local/ssl/lib -L/usr/local/lib -R/usr/local/lib" \
  CPPFLAGS="-I/usr/local/ssl/include -I/usr/local/include" \
  ./configure --with-ssl=openssl

# CFLAGS="-fPIC -O3" \
./configure --with-ssl=openssl
# gmake

# gmake install

subversion

subversionをインストールする。

# CPPFLAGS="-I/usr/local/BerkeleyDB.4.7/include -I/usr/local/ssl/include -I/usr/local/include" \
  CFLAGS="-fPIC" \
  LDFLAGS="-L/usr/local/BerkeleyDB.4.7/lib -R/usr/local/BerkeleyDB.4.7/lib -R/usr/local/ssl/lib -L/usr/local/ssl/lib -L/usr/local/lib -R/usr/local/lib" \
  ./configure \
  --with-berkeley-db=/usr/local/BerkeleyDB.4.7 \
  --with-apxs=/usr/local/apache2/bin/apxs \
  --with-apr=/usr/local/apache2/bin/apr-1-config \
  --with-apr-util=/usr/local/apache2/bin/apu-1-config \
  --with-ssl

# CPPFLAGS="-I/usr/local/BerkeleyDB.4.7/include" \
  LDFLAGS="-L/usr/local/BerkeleyDB.4.7/lib -R/usr/local/BerkeleyDB.4.7/lib" \
  CFLAGS="-fPIC -O3" \
  ./configure \
  --with-berkeley-db=/usr/local/BerkeleyDB.4.7 \
  --with-apxs=/usr/local/apache2/bin/apxs \
  --with-apr=/usr/local/apr/bin/apr-1-config \
  --with-apr-util=/usr/local/apr/bin/apu-1-config \
  --with-ssl
# gmake
# gmake install

設定

レポジトリ作成

Subversionで管理するレポジトリを作成する。今回の場合fsfsタイプで/var/svn/repos/<レポジトリ名>/というルールで作成する。

hogeレポジトリ作成

# /usr/local/bin/svnadmin create /var/svn/repos/hoge
# chown -R webservd:webservd /var/svn/repos

レポジトリ確認

# /usr/local/bin/svnadmin verify /var/svn/repos/hoge
* Verified revision 0.

Apache設定

/usr/local/apache2/conf/httpd.confに/usr/local/apache2/conf/extra/httpd-subversion.confを読み込むように設定する

# Subversion settings
Include conf/extra/httpd-subversion.conf

/repos/<レポジトリ名>/でアクセスした場合にレポジトリにアクセスできるようにSVNParentPathを利用する。 またレポジトリ更新時にはBASIC認証で制御するようにする。 /usr/local/apache2/conf/extra/httpd-subversion.confを以下の通り設定する。

<Location /repos>
   DAV svn
   SVNParentPath /var/svn/repos/

   # Limit write permission to list of valid users.
   <LimitExcept GET PROPFIND OPTIONS REPORT>
      # Require SSL connection for password protection.
      # SSLRequireSSL

      AuthType Basic
      AuthName "Authorization Realm"
      AuthUserFile /zraid/backup/svn/htpasswd
      Require valid-user
   </LimitExcept>
</Location>

自動起動

/lib/svc/method/http-apache2を以下の通り修正する。

#!/sbin/sh
#
# Copyright 2004 Sun Microsystems, Inc.  All rights reserved.
# Use is subject to license terms.
#
# ident "@(#)http-apache2       1.2     04/11/11 SMI"
#

. /lib/svc/share/smf_include.sh

APACHE_HOME=/usr/local/apache2
CONF_FILE=${APACHE_HOME}/conf/httpd.conf
PIDFILE=/var/run/httpd.pid

[ ! -f ${CONF_FILE} ] &&  exit $SMF_EXIT_ERR_CONFIG

case "$1" in
start)
        /bin/rm -f ${PIDFILE}
        ssl=`svcprop -p httpd/ssl svc:/network/http:apache2`
        if [ "$ssl" = false ]; then
                cmd="start"
        else
                cmd="startssl"
        fi
        ;;
refresh)
        cmd="graceful"
        ;;
stop)
        cmd="stop"
        ;;
*)
        echo "Usage: $0 {start|stop|refresh}"
        exit 1
        ;;
esac

exec ${APACHE_HOME}/bin/apachectl $cmd 2>&1

svcadmでApacheを起動させる

# svcadm enable http
# svcs -p http
個人用ツール