Subversion 1.4.3 をインストールしてみました。

古いバージョンなのはそういう事情があったからです(笑)

環境

必要なパッケージのダウンロード

http://www.sunfreeware.com/ からダウンロードしてきました。

#pre{{ bash-3.00# ftp ftp.sunfreeware.com Connected to ftp.sunfreeware.com. 220 ftp.sunfreeware.com FTP server ready. Name (ftp.sunfreeware.com:sugimura): anonymous 331 Guest login ok, send your complete e-mail address as password. Password: 230- 230-============================================== 230-This is the ftp.sunfreeware.com ftp server 230- ... ftp> cd /pub/freeware/sparc/10/ 250 CWD command successful. ftp> bin 200 Type set to I. ftp> mget subversion-1.4.3* mget subversion-1.4.3-sol10-sparc-local.gz? y ... }}

subversion 以外にも、依存するパッケージをすべて持ってきます。 持ってくるものは http://www.sunfreeware.com/subversion.html を参考にします。

#pre{{ bash-3.00# ls apache-2.0.59-sol10-sparc-local.gz libxml2-2.6.31-sol10-sparc-local.gz db-4.2.52.NC-sol10-sparc-local.gz neon-0.25.5-sol10-sparc-local.gz expat-2.0.1-sol10-sparc-local.gz openssl-1.0.0-sol10-sparc-local.gz gdbm-1.8.3-sol10-sparc-local.gz subversion-1.4.3-sol10-sparc-local.gz libgcc-3.4.6-sol10-sparc-local.gz swig-1.3.36-sol10-sparc-local.gz libiconv-1.13.1-sol10-sparc-local.gz zlib-1.2.4-sol10-sparc-local.gz }}

インストール

gzip をほどいて、pkgadd でインストールしていきます。

#pre{{ bash-3.00# for i in *.gz

do

gunzip $i

done bash-3.00# bash-3.00# ls apache-2.0.59-sol10-sparc-local libxml2-2.6.31-sol10-sparc-local db-4.2.52.NC-sol10-sparc-local neon-0.25.5-sol10-sparc-local expat-2.0.1-sol10-sparc-local openssl-1.0.0-sol10-sparc-local gdbm-1.8.3-sol10-sparc-local subversion-1.4.3-sol10-sparc-local libgcc-3.4.6-sol10-sparc-local swig-1.3.36-sol10-sparc-local libiconv-1.13.1-sol10-sparc-local zlib-1.2.4-sol10-sparc-local }}

#pre{{ bash-3.00# pkgadd -d apache-2.0.59-sol10-sparc-local

The following packages are available:

 1  SMCap2059     apache
                  (sparc) 2.0.59

Select package(s) you wish to process (or 'all' to process all packages). (default: all) [?,??,q]:

Processing package instance <SMCap2059> from </tmp/download/apache-2.0.59-sol10- sparc-local>

apache(sparc) 2.0.59 The Apache Group

The selected base directory </usr/local/apache2> must exist before installation is attempted.

Do you want this directory created now [y,n,?,q] y Using </usr/local/apache2> as the package base directory.

## Processing package information.

## Processing system information.

## Verifying disk space requirements.

## Checking for conflicts with packages already installed.

## Checking for setuid/setgid programs.

Installing apache as <SMCap2059>

## Installing part 1 of 1. /usr/local/apache2/bin/ab /usr/local/apache2/bin/apachectl ... }}

全部終わったらちゃんと入ったことを確認します。

#pre{{ bash-3.00# pkginfo | grep SMC application SMCap2059 apache application SMCdb db application SMCexpat expat application SMCgdbm gdbm application SMClgcc346 libgcc application SMCliconv libiconv application SMClxml2 libxml2 application SMCneon neon application SMCossl openssl application SMCsubv143 subversion application SMCswig swig application SMCzlib zlib system SUNWjmgts Japanese Trusted Extensions, SMC system SUNWmgts Trusted Extensions, SMC application SUNWtsmc Trusted Extensions SMC Server }}

この "application SMCxxxxx" というのが今回インストールしたもので、 ダウンロードしてきた12個と合っていることを確認します。

svn コマンドもちゃんと使えることを確認します。

#pre{{ bash-3.00# ldd /usr/local/bin/svn

       libsvn_client-1.so.0 =>  /usr/local/lib/libsvn_client-1.so.0
       libsvn_wc-1.so.0 =>      /usr/local/lib/libsvn_wc-1.so.0
       libsvn_ra-1.so.0 =>      /usr/local/lib/libsvn_ra-1.so.0
       libsvn_diff-1.so.0 =>    /usr/local/lib/libsvn_diff-1.so.0
       libsvn_ra_local-1.so.0 =>        /usr/local/lib/libsvn_ra_local-1.so.0
       libsvn_repos-1.so.0 =>   /usr/local/lib/libsvn_repos-1.so.0
       libsvn_fs-1.so.0 =>      /usr/local/lib/libsvn_fs-1.so.0
       libsvn_fs_fs-1.so.0 =>   /usr/local/lib/libsvn_fs_fs-1.so.0
       libsvn_fs_base-1.so.0 =>         /usr/local/lib/libsvn_fs_base-1.so.0
       libsvn_ra_svn-1.so.0 =>  /usr/local/lib/libsvn_ra_svn-1.so.0
       libsvn_ra_dav-1.so.0 =>  /usr/local/lib/libsvn_ra_dav-1.so.0
       libsvn_delta-1.so.0 =>   /usr/local/lib/libsvn_delta-1.so.0
       libsvn_subr-1.so.0 =>    /usr/local/lib/libsvn_subr-1.so.0
       libaprutil-0.so.0 =>     /usr/local/lib/libaprutil-0.so.0
       libdb-4.2.so =>  /usr/local/BerkeleyDB.4.2/lib/libdb-4.2.so
       libiconv.so.2 =>         /usr/local/lib/libiconv.so.2
       libapr-0.so.0 =>         /usr/local/lib/libapr-0.so.0
       libsendfile.so.1 =>      /usr/lib/libsendfile.so.1
       librt.so.1 =>    /usr/lib/librt.so.1
       libm.so.2 =>     /usr/lib/libm.so.2
       libresolv.so.2 =>        /usr/lib/libresolv.so.2
       libpthread.so.1 =>       /usr/lib/libpthread.so.1
       libneon.so.25 =>         /usr/local/lib/libneon.so.25
       libssl.so.0.9.8 =>       /usr/local/ssl/lib/libssl.so.0.9.8
       libcrypto.so.0.9.8 =>    /usr/local/ssl/lib/libcrypto.so.0.9.8
       libnsl.so.1 =>   /usr/lib/libnsl.so.1
       libexpat.so.0 =>         /usr/local/lib/libexpat.so.0
       libsocket.so.1 =>        /usr/lib/libsocket.so.1
       libz.so =>       /usr/local/lib/libz.so
       libc.so.1 =>     /usr/lib/libc.so.1
       libgcc_s.so.1 =>         /usr/local/lib/libgcc_s.so.1
       libaio.so.1 =>   /lib/libaio.so.1
       libmd.so.1 =>    /lib/libmd.so.1
       libdl.so.1 =>    /lib/libdl.so.1
       libmp.so.2 =>    /lib/libmp.so.2
       libscf.so.1 =>   /lib/libscf.so.1
       libdoor.so.1 =>  /lib/libdoor.so.1
       libuutil.so.1 =>         /lib/libuutil.so.1
       libgen.so.1 =>   /lib/libgen.so.1
       /platform/SUNW,Ultra-80/lib/libc_psr.so.1
       /platform/SUNW,Ultra-80/lib/libmd_psr.so.1

bash-3.00# }}

#pre{{ bash-3.00# /usr/local/bin/svn --version svn, version 1.4.3 (r23084)

  compiled Feb 13 2007, 01:05:57

Copyright (C) 2000-2006 CollabNet. Subversion is open source software, see http://subversion.tigris.org/ This product includes software developed by CollabNet (http://www.Collab.Net/).

The following repository access (RA) modules are available:

ra_dav : Module for accessing a repository via WebDAV (DeltaV) protocol.

 - handles 'http' scheme
 - handles 'https' scheme

ra_svn : Module for accessing a repository using the svn network protocol.

 - handles 'svn' scheme

ra_local : Module for accessing a repository on local disk.

 - handles 'file' scheme

bash-3.00# }}

リポジトリの作成

/u01/svnrepo に作成しました。webservd ユーザの権限にしておきます。

#pre{{ bash-3.00# mkdir -p /u01/svnrepo bash-3.00# cd /u01/svnrepo bash-3.00# /usr/local/bin/svnadmin create myrepo bash-3.00# chown -R webservd:webservd /u01/svnrepo }}

ちゃんと出来たかどうかを確認します。

#pre{{ bash-3.00# /usr/local/bin/svnadmin verify /u01/svnrepo/myrepo

Verified revision 0.

}}

Apache の設定

httpd-std.conf をひな形にして、httpd.conf を作ります。

#pre{{ bash-3.00# cd /usr/local/apache2/conf bash-3.00# cp httpd-std.conf httpd.conf }}

httpd.conf から User と Group の行を探して、 ユーザとグループを設定します。 両方とも webservd にしました。

#pre{{

# User/Group: The name (or #number) of the user/group to run httpd as.

# . On SCO (ODT 3) use "User nouser" and "Group nogroup".

# . On HPUX you may not be able to use shared memory as nobody, and the

# suggested workaround is to create a user www and use that user.

# NOTE that some kernels refuse to setgid(Group) or semctl(IPC_SET)

# when the value of (unsigned)Group is above 60000;

# don't use Group #-1 on these systems!

#

#User nobody

#Group #-1 User webservd Group webservd }}

Subversion の設定は httpd.conf の中に書いてもいいのですが、 設定を容易にするために外出しにしておきます。

/usr/local/apache2/conf/httpd.conf の末尾に Include を書きます。

#pre{{

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

/usr/local/apache2/conf/httpd-subversion.conf を編集します。

としています。

#pre{{ LoadModule dav_svn_module modules/mod_dav_svn.so LoadModule authz_svn_module modules/mod_authz_svn.so

Location /svnrepo>

  DAV svn
  SVNParentPath /u01/svnrepo/
  AuthType Basic
  AuthName "Authorization Realm"
  AuthUserFile /usr/local/apache2/conf/svn-htpasswd
  Require valid-user

/Location> }}

なお、アクセス制限を書き込みのみに制限することもできます。LimitExcept で除外します。

#pre{{ LoadModule dav_svn_module modules/mod_dav_svn.so LoadModule authz_svn_module modules/mod_authz_svn.so

Location /svnrepo>

  DAV svn
  SVNParentPath /u01/svnrepo/
  # Limit write permission to list of valid users.
  <LimitExcept GET PROPFIND OPTIONS REPORT>
    AuthType Basic
    AuthName "Authorization Realm"
    AuthUserFile /usr/local/apache2/conf/svn-htpasswd
    Require valid-user
  </LimitExcept>

/Location> }}

この設定が正しいことを確認します。 今回は上の読み書き両方に制限を掛けるほうを使いました。

#pre{{ bash-3.00# /usr/local/apache2/bin/apachectl configtest Syntax OK }}

Apache を起動してみます。

#pre{{ bash-3.00# svcadm disable http bash-3.00# svcadm enable http bash-3.00# svcs -p http STATE STIME FMRI maintenance 17:17:01 svc:/network/http:apache2 }}

maintenance になってしまいました。 状況を確認してみます。

#pre{{ bash-3.00# svcs -xv svc:/network/http:apache2 (Apache 2 HTTP server)

State: maintenance since Tue Apr 06 17:17:01 2010

Reason: Start method exited with $SMF_EXIT_ERR_CONFIG.

  See: http://sun.com/msg/SMF-8000-KS
  See: man -M /usr/apache2/man -s 8 httpd
  See: /var/svc/log/network-http:apache2.log

Impact: This service is not running. }}

というわけで起動スクリプトを確認します。 /lib/svc/method/http-apache2 の下記の点を直しました。

#pre{{

#APACHE_HOME=/usr/apache2

#CONF_FILE=/etc/apache2/httpd.conf APACHE_HOME=/usr/local/apache2 CONF_FILE=/usr/local/apache2/conf/httpd.conf }}

また起動してみます。

#pre{{ bash-3.00# svcadm disable http bash-3.00# svcadm enable http bash-3.00# svcs -p http STATE STIME FMRI online 17:23:18 svc:/network/http:apache2

              17:23:18     2120 httpd
              17:23:19     2121 httpd
              17:23:19     2122 httpd
              17:23:19     2123 httpd
              17:23:19     2124 httpd
              17:23:19     2125 httpd

bash-3.00# svcs -xv bash-3.00# }}

今度は正しく上がってきました。

Subversion のユーザ設定

ユーザを設定します。 /usr/local/apache2/conf/svn-htpasswd が上で設定したパスワードファイルです。

#pre{{ bash-3.00# /usr/local/apache2/bin/htpasswd -c /usr/local/apache2/conf/svn-htpasswd sugimura New password: Re-type new password: Adding password for user sugimura bash-3.00# }}

この後ユーザを追加していくときは -c は不要です。

クライアントユーザから Subversion を使う

ここまで用意すれば、sugimura ユーザで Subversion を使うことができます。

別マシンからアクセスしてみました。

#pre{{ sugimura@e8400 ~/tmp $ svn checkout http://192.168.1.4/svnrepo/myrepo 認証領域: <http://192.168.1.4:80> Authorization Realm 'sugimura' のパスワード:


ATTENTION! Your password for authentication realm:

  <http://192.168.1.4:80> Authorization Realm

can only be stored to disk unencrypted! You are advised to configure your system so that Subversion can store passwords encrypted, if possible. See the documentation for details.

You can avoid future appearances of this warning by setting the value of the 'store-plaintext-passwords' option to either 'yes' or 'no' in '/home/sugimura/.subversion/servers'.


暗号化されていないパスワードを保存しますか (yes/no)? no リビジョン 0 をチェックアウトしました。 }}

ファイルを作って commit までしてみます。

#pre{{ sugimura@e8400 ~/tmp $ cd myrepo/ sugimura@e8400 ~/tmp/myrepo $ ls sugimura@e8400 ~/tmp/myrepo $ touch subversion_sample.txt sugimura@e8400 ~/tmp/myrepo $ svn add subversion_sample.txt A subversion_sample.txt sugimura@e8400 ~/tmp/myrepo $ svn commit -m "first commit" subversion_sample.txt 認証領域: <http://192.168.1.4:80> Authorization Realm 'sugimura' のパスワード:


ATTENTION! Your password for authentication realm:

  <http://192.168.1.4:80> Authorization Realm

can only be stored to disk unencrypted! You are advised to configure your system so that Subversion can store passwords encrypted, if possible. See the documentation for details.

You can avoid future appearances of this warning by setting the value of the 'store-plaintext-passwords' option to either 'yes' or 'no' in '/home/sugimura/.subversion/servers'.


暗号化されていないパスワードを保存しますか (yes/no)? no 追加しています subversion_sample.txt ファイルのデータを送信しています . リビジョン 1 をコミットしました。 sugimura@e8400 ~/tmp/myrepo $ }}

192.168.1.4 でも sugimura ユーザでアクセスしてみます。

#pre{{

localhost でも 192.168.1.4 でもどちらでもアクセスできます。

#pre{{


r1 | sugimura | 2010-04-06 17:36:35 +0900 (Tue, 06 Apr 2010) | 1 line

first commit


ブラウザからのアクセス

http://192.168.1.4/svnrepo/myrepo/ にアクセスして、 ブラウザからリポジトリを見ることもできます。 これもコマンドラインでアクセスするときと同様の権限が必要です。

subversion.png



添付ファイル: filesubversion.png 432件 [詳細]

トップ   差分 履歴 リロード   一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2011-01-29 (土) 15:27:49