Solaris10:Subversion-1.5.3設定
このページの情報は古いです。以下のページに移行しました。
目次 |
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
- ソフトウェア情報
- 配布元 : http://www.oracle.com/technology/software/products/berkeley-db/index.html
- バージョン : 4.7.25
以下手順で導入
# 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