SolarisにSubversionをインストールするときのメモ

Tags: [ Solaris ] [ 備忘録 ] [ Subversion ] Published: 2011/12/22

インストール

から必要なライブラリをダウンロード。

    • neon 0.29.5*1
    • swig 1.3.40*2
    • expat 2.0.1*3
    • libxml2 2.7.8*4
    • db 4.2.52 REV=1.0.12*5
    • openssl 1.0.0d*6
    • libiconv 1.13.1*7
    • libintl 3.4.0*8
    • sasl 2.1.21*9
    • gcc(libgcc 3.4.6)*10
    • zlib*11
    • apache2 2.2.19
    • openldap 2.4.24
    • subversion 1.6.12

    上記のsparc-local.gzファイルをDLする。

    確認

    • ldd svnで何が足りないかわかる
    • 全部入れてもエラーが出た
      • どうもsasl-2.1.21-sol10-sparc-local.gzが足りなかった模様(上記反映済み)

    インストール

    # pkgadd -d パッケージ

    依存関係などはない?

    設定

    svnserve

    Subversion には、Svnserve (通常の TCP/IP 接続上でカスタムプロトコルを使用する軽量スタンドアロンサーバ) があります。小規模構成にしたい場合や、本格的な Apache サーバを使用できない場合には申し分ありませんし、

    ほとんどの場合、svnserve は Apache ベースサーバよりセットアップが簡単で、早く実行できますが、高度な機能のいくつかはありません。また今では、さらに安全にしやすくする SASL サポートも含まれています。

    http://tortoisesvn.net/docs/nightly/TortoiseSVN_ja/tsvn-serversetup-svnserve.html

    inetd登場以前は、1台のサーバで複数のサービス(FTPサーバ、TELNETサーバ等)を稼働させておくには、それぞれのサービスのデーモン (ftpd、tftpd等)を起動しておき、それぞれのデーモンが、それぞれの待ち受けポートを監視する - というスタイルだった。しかし、この方法では、監視するポートの数だけデーモンが起動していることとなるため、実際にそのサービスが利用されていない時には、実質、メモリの無駄遣いということとなる。そこで、待ち受けポートを監視する専用の中継デーモンを用意し、待ち受けポートに要求がきた時には、あらかじめ決められたデーモン(ftpd、tftpd等)を起動させるという動作が用意されるようになった。

    http://ja.wikipedia.org/wiki/Inetd

    Subversion用の簡易サーバをクライアントから要求が来た時だけ起動するようにしたい。(ただしちょっと遅い)ってことかな。

    ポート - サービス の設定
    /etc/services
    サービス - サーバ の設定
    /etc/inetd.conf

    Subversionでは3690ポートに要求がくるため/etc/servicesには以下のように追記する。

    # サービス名 ポート
    svn      3690/tcp
    svn      3690/udp

    svnというサービスを3690ポートで受ける。

    管理DBに登録

    次にinetd.confファイルを追記する。

    svn stream tcp nowait svn /(SVNインストールされたディレクトリ)/svnserve svnserve -i -r SVNROOT
    サービス名 svn
    ソケットタイプ stream
    プロトコル tcp
    wait or nowait nowait
    プログラム名ユーザ名 svn
    コマンドと引数 /(SVNインストールされたディレクトリ)/svnserve svnserve -i -r SVNROOT

    svnというサービスをsvnserve -i -r SVNROOTというコマンドで動かす。-iは--inetdオプションと同じでsvnserveが標準出力、標準入力のファイル拡張子を利用するように指定する。-r SVNROOTはリポジトリのルートを設定する。UrlはこのSVNROOTからのパスとみなされる。- オプション一覧。 http://www.thekyo.jp/manual/subversion/svn.ref.svnserve.html

    ※ユーザ名を存在しないユーザにしてinetconvすると下記のようなエラーになる。

    inetconv: エラー ./inetd.conf、n行目。不明なユーザ: xxx

    設定ファイルを作成したが、Solaris10ではinetd.conf自体は使われない。inetconvコマンドを使い管理DB? に登録を行う。

    # inetconv -i ./inetd.conf
    svn -> /var/svc/manifest/network/svn-tcp.xml
    Importing svn-tcp.xml ...Done

    設定変更した時は-fオプションをつける。

    inetconv -f -I ./inetd.conf?

    起動しているかの確認はinetadmコマンドで行う。

    # inetadm | grep svn
    enabled online svc:/network/svn/tcp:default

    このsvc:/network/svn/tcp:defaultをFMRIという。

    起動・停止

    起動・停止もinetadmコマンドを使う。起動は-eオプション+FMRI。(enable?)

    inetadm -e svc:/network/svn/tcp:default  

    停止は-dオプション+FMRI。(disable?)

    inetadm -d svc:/network/svn/tcp:default

    参考サイト

    このあたりはまだよく仕組みがわかってない。

    *1: Neon is an HTTP and WebDAV client library - installs in /usr/local. Neon is used by subversion. There are slightly newer versions of neon, but this one seems to work best with subversion. Dependencies: openssl-1.0.0d, expat-2.0.1, zlib-1.2.5, and you will need /usr/local/lib/libgcc_s.so.1 either from the libgcc-3.4.6 or gcc-3.4.6 packages.

    *2: SWIG is a software development tool that connects programs written in C and C++ with a variety of high-level programming languages. SWIG is used with different types of languages including common scripting languages such as Perl, PHP, Python, Tcl, Ruby and PHP - installs in /usr/local. Dependencies: zlib and having libgcc_s.so.1 and libstdc++.so.6 in /usr/local/lib is required. This can be done by installing libgcc-3.4.6 or gcc-3.4.6.

    *3: Expat is a fast, non-validating, stream-oriented XML parsing library - installs in /usr/local. Dependency: to have /usr/local/lib/libgcc_s.so.1 install either the libgcc-3.4.6 or gcc-3.4.6 or later.

    *4: Libxml2 is the XML C library developed for the Gnome project - installs in /usr/local. libxml2 requires that the zlib, libiconv, and either libgcc-3.4.6 or gcc-3.4.6 packages be installed.

    *5: db is the Berkeley open source embedded database system - installs in /usr/local/BerkeleyDB.4.2. This packages also requires that you have install either libgcc or gcc.

    *6: Openssl is an open source toolkit implementing the Secure Sockets Layer (SSL v2/v3) and Transport Layer Security (TLS v1) protocols as well as a full-strength general purpose cryptography library - installs in /usr/local/ssl. Note to users with sun4m machines. The openssl package here was built on a sun4u system and will not work on your machines. The one built for Solaris 2.5 was built on a sun4m machine and has been tested and does work. If you do uname -a and you get sun4m in the result, install the Solaris 2.5 openssl package instead. The configure option used for making openssl was solaris-sparcv9-gcc shared. You may also need to install either gcc-3.4.6 or libgcc-3.4.6 to obtain the libgcc_s.so.1 library. The libraries for openssl-0.9.8r are also included in this package to maintain compatibility for those packages still using them. If you cannot or do not want to update to the 1.0.x level, the 0.9.8p package below can be used. Openssl is often used to make machines more secure. Make sure you know what you are doing. Any security problems are your responsiblitiy. See our Disclaimer.

    *7: GNU libiconv provides an iconv() implementation for use on systems which do not have one - installs in /usr/local. Dependencies: libgcc_s.so.1 from libgcc-3.4.6 or gcc-3.4.6 or higher.

    *8: Libintl is used with gettext and is needed by a few programs when libintl in not in /usr/lib - installs in /usr/local/lib. Dependencies: libiconv and to have /usr/local/lib/libgcc_s.so.1 and /usr/local/lib/libstdc++.so.6, either the libgcc-3.4.6 or gcc-3.4.6 packages.

    *9: This is the Cyrus SASL (Simple Authentication and Security Layer) API implementation. It can be used on the client or server side to provide authentication and authorization services - installs in /usr/local. Dependencies: db-4.2.52.NC and having libgcc_s.so.1 in /usr/local/lib is required. This can be done by installing libgcc-3.3 or gcc-3.3.2 or higher. The installation of the sasl software indicates:

    *10: The GNU C compiler and related programs - installs in /usr/local. This package includes the GNU C, C++, and f77 suites and support files. These gcc packages require the installation of libiconv. It was compiled to use the SUN assembler and loader usually in /usr/ccs/bin if the SUNW developer packages are installed. When needed and the source code supports it, this C compiler can create 64-bit executables via the -m64 flag as well as the usual 32-bit ones. Please read the details on how this package was created which can be found at Comments on gcc 3.4.6 . The Details link below contains information on what is new in 3.4.6. Documentation is in /usr/local/doc/gcc, /usr/local/man, and /usr/local/info. The gcc package is quite large. Some users may have trouble downloading very large files via a browser. These users should try using command line anonymous ftp or perhaps the Sun Download Manager.

    *11: zlib compression libraries - installs in /usr/local. This package has both libz.a and libz.so libraries. The package requires that libgcc_s.so.1 be in /usr/local/lib. This can be done by installing libgcc-3.3 or gcc or higher.


    Author: kk_Ataka / Powered by Jekyll on GitHub Pages