Solaris10:Subversion-1.4.6設定
このページの情報は古いです。以下のページに移行しました。
注意事項
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