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

[Solaris][備忘録][Subversion]SolarisにSubversionをインストールするときのメモ

インストール

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

  • - 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((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.))
    • zlib[10]
    • 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

参考サイト

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

kk_Ataka

inetd.confのプログラム名、これユーザ名の間違い
存在しないユーザ入力してinetconvすると

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

1326450707

[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] 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.

関連記事(この記事の初版より古い記事はリンクがグレーで表示されます)

  1. 2012/04/17 [Solaris] [Subversion] Subversionで2ヶ所のリポジトリの同期を取るメモ
  2. 2012/01/15 [Solaris] [Subversion] Subversionのリポジトリをサーバ間でまるごと移動する
  3. 2011/12/16 [Subversion] [Unix] svn infoコマンドでリビジョン番号を抜き出す
  4. 2011/12/15 [Ruby] [Solaris] [Redmine] RedmineとApacheを連携させるPassengerをインストールできなかった
  5. 2011/12/13 [Subversion] [Unix] svn updateコマンド以外でリビジョン番号を抜き出す
  6. 2011/12/12 [Unix] [Shell] [Solaris] ファイルの拡張子を見て適切なコマンドで解凍してくれるスクリプトを組んだ
  7. 2011/12/10 [Solaris] tarコマンドでzオプションを使わずにファイルを解凍する
  8. 2011/12/09 [Unix] [Solaris] Unixでファイル圧縮・解凍するときに使うコマンドをまとめた
  9. 2011/12/08 [Solaris] Solarisで現在のOSバージョンやパッチバージョンを確認する
  10. 2011/12/01 [Solaris] DAT装置の使い方 超簡易版(Solaris)
  11. 2011/09/14 [Solaris] Solarisのパッケージを作ってみる もう少し学んだ版
  12. 2011/09/12 [Solaris] Solarisのパッケージを作ってみる
  13. 2011/09/04 [Solaris] vmstatとかiostatとかsarとかswapコマンドのメモ
  14. 2011/08/14 [Subversion] Subversionのauto-props設定ではまった
  15. 2013/09/05 [Git] [Subversion] Subversionのproxy設定でいつもハマるやつ