Solaris10:Subversion-1.4.6設定

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

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


注意事項 Sol10(x86)で普通にsubversionをインストールしようとすると、-fPIC周りではまります。 また、Subversionに必要な外部ライブラリ(neon/zlib)はバージョン指定があるため、 subversion導入専用のライブラリパッケージを利用した手順を残しておきます。

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

  • openssl-0.9.8g
  • Apache 2.2.8
  • subversion-1.4.6
  • subversion-deps-1.4.6

目次

インストール方法

openssl-0.9.8g インストール

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

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

# wget http://www.openssl.org/source/openssl-0.9.8g.tar.gz
# wget http://www.openssl.org/~appro/values.c

Solaris10 x86標準のgcc不具合対応

Solaris10 x86標準のgccには不具合があるらしく、パッチ適用が必要。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モードでコンパイルすること。

# gtar xvzfp openssl-0.9.8g.tar.gz
# cd openssl-0.9.8g
#  LDFLAGS="-L/usr/local/ssl/lib/ -R/usr/local/ssl/lib" \
  ./Configure solaris-x86-gcc -fPIC
# gmake depend
# gmake
# gmake test
# gmake install

Apache-2.2.8 インストール

Apache経由でSubversionを利用するため、Apacheをインストールする。 aprが/usr/local/lib/libiconvをみるため、/usr/localを参照させる。またSSL対応のため/usr/local/ssl/libも参照させる。

# wget http://ftp.kddilabs.jp/infosystems/apache/httpd/httpd-2.2.8.tar.gz
# gtar xvzfp httpd-2.2.8.tar.gz
# cd httpd-2.2.8
# 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 \
  --with-ssl=/usr/local/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.4.6.tar.bz2
# wget http://subversion.tigris.org/downloads/subversion-deps-1.4.6.tar.bz2
# gtar xvjfp subversion-1.4.6.tar.bz2
# gtar xvjfp subversion-deps-1.4.6.tar.bz2
# cd subversion-1.4.6

zlib

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

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

neon

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

# 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
# gmake
# gmake install

subversion

subversionをインストールする。

# CPPFLAGS="-I/usr/local/ssl/include -I/usr/local/include" \
  CFLAGS="-fPIC" \
  LDFLAGS="-R/usr/local/ssl/lib -L/usr/local/ssl/lib -L/usr/local/lib -R/usr/local/lib" \
  ./configure \
  --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
# 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
個人用ツール