mDNkit
コンパイルとインストールの方法
(社) 日本ネットワークインフォメーションセンター (JPNIC)
本パッケージのコンパイルおよびインストールは、次のようなステップで行
います。
+ 前準備: iconv() が利用できるようにする
+ システム設定: `configure' スクリプトの実行
+ コンパイル: `make' の実行
+ インストール: `make install' の実行
+ サイト毎の設定: `mdn.conf' による設定
+ 設定の確認 (省略可)
0. 前準備
もしあなたの使用しているシステムのライブラリに iconv() がない場合、あ
るいはあっても UTF-8 を扱うことができない場合にはあらかじめ iconv() を
インストールしておいてください。iconv() は、例えば GNU libiconv と呼ば
れるフリー (LGPL) の実装が
http://clisp.cons.org/~haible/packages-libiconv.html
から入手可能です。
*注意*
GNU libiconv-1.6.1 は NetBSD 1.5 との組合わせで問題があり、コンパイ
ル時にエラーが発生します。このバグを修正するためのパッチが
patch/libiconv ディレクトリの下に用意されていますので、この問題に遭
遇した場合には libiconv にパッチを当てて再インストールしてください。
なお、パッチの当て方はパッチファイルの先頭に書かれています。
1. configure スクリプトの実行
トップディレクトリにある configure スクリプトを実行してください。
% ./configure
configure スクリプトには、数多くのオプションが用意されています。そのう
ち重要と思われるものは次の通りです。
--prefix=PREFIX
mDNkit をインストールするディレクトリのパスを指定します。デフォ
ルトは /usr/local です。
--with-libiconv=LIBICONV_PREFIX
あらかじめインストールしてある GNU libiconv を mDNkit にリンク
させる場合は、このオプションを指定して下さい。引数 LIBICONV_PREFIX
には、GNU libiconv がインストールされている位置を指定します。
引数を省略すると、PREFIX (PREFIX の値は --prefix=PREFIX から
導出されます) を指定したものと見なされます。
--with-libiconv は GNU libiconv 用の短縮形のオプションで
--with-libiconv=/usr/local
これは次と等価になります。
--with-iconv-include='-I/usr/local/include'
--with-iconv='-L/usr/local/lib -R/usr/local/lib -liconv'
短縮形のオプション (--with-libiconv) と通常用のオプション
(--with-iconv-include, --with-iconv) を両方とも指定した場合は、
通常用のオプションほうが優先されます。
--with-iconv-include=ICONV_INCDIR
C コンパイラが通常では検索しないディレクトリに "iconv.h" が置
かれている場合、次のようにしてそのディレクトリを指定します。
--with-iconv-include=/usr/local/include
--with-iconv=ICONV_LIB
libc に iconv が入っていない場合 (上記のパッケージを入れた
場合など) に、iconv のライブラリを指定します。例えば
--with-iconv="-L/usr/local/lib -liconv"
のように指定します。もし iconv が共有ライブラリになっている
場合には、-R オプションも指定して
--with-iconv="-L/usr/local/lib -R/usr/local/lib -liconv"
とする必要があるかもしれません。
--with-iconv-sofile=SOFILE_PATH
mDNkit に含まれている runmdn コマンドは、iconv() が libc の一
部として提供されないときに、iconv() を含む共有ライブラリへのパ
ス名を知る必要があります。mDNkit は、--with-iconv オプションの
記述を基にパス名を検索しますが、これに失敗したときに、以下のよ
うに共有ライブラリを指定することができます。
--with-iconv-sofile=/usr/local/lib/libiconvv.so.2.0
--with-utf8=UTF8_NAME
iconv に utf-8 エンコーディングを指定する場合、本ライブラリは
デフォルトでは "UTF-8" という名前を指定します。もしあなたの
システムの iconv が "UTF-8" という名前を受け付けない場合には、
代りの名前を指定します。例えば "UTF-8" ではなく "utf8" の
場合には次のように指定します。
--with-utf8=utf8
2. その他の configure のオプション
それほどよく使うわけではありませんが、configure には前項のもの以外に
も様々なオプションが用意されています。
--with-preference=PREFERENCE
mDNkit のサンプルコンフィギュレーションファイル (mdn.conf.sample)
の設定を PREFERENCE 向けのものにします。またこのオプションを指定
するとデフォルトのコンフィギュレーションファイル (mdn.conf) が
インストールされます。ただしファイルがすでに存在している場合には
インストールしません。
現在のところ、指定できる PREFERENCE は "jp" のみです。
--with-amc-ace-z-prefix=AMCZ_PREFIX
AMC-ACE-Z は DNS プロトコル上で使用される多言語ドメイン名に関し
て提案されているエンコーディング方式です。このエンコーディング
でコンコードされたドメイン名と従来の ASCII ドメイン名と区別す
るためには、固定の接頭辞を用意する必要があります。しかしながら、
現在の AMCE-ACE-Z のインターネットドラフトでは接頭辞を定義して
いません。このオプションを用いることで、接頭辞を指定することが
できます。指定しなければ、"zq--" が接頭辞として定義されます。
--with-race-prefix=RACE_PREFIX
--with-dude-prefix=DUDE_PREFIX
RACE も DUDE も DNS プロトコル上で使用される多言語ドメイン名に
関して提案されているエンコーディング方式ですが、すでに廃れたも
のとなっています。エンコーディング方式について記述したインター
ネットドラフトには接頭辞が定義されていますが、これらのオプショ
ンを用いて接頭辞を変更することも可能です。
--exec-prefix=EXEC_PREFIX
マシン固有のファイルをインストールするディレクトリのパスを指定
します。デフォルトは PREFIX (``--prefix=PREFIX'' によって指定
可能、PREFIX のデフォルトは /usr/local) になります。
--sbindir=SBINDIR
mdnsproxy をインストールするディレクトリを指定します。デフォル
トでは EXEC_PREFIX/sbin です。
--bindir=BINDIR
mdnconv と runmdn をインストールするディレクトリを指定します。
デフォルトでは EXEC_PREFIX/bin です。
--libdir=LIBDIR
MDN ライブラリ (libmdn) をインストールするディレクトリを指定し
ます。デフォルトでは EXEC_PREFIX/lib です。
--includedir=INCDIR
MDN ライブラリのヘッダファイルをインストールするディレクトリを
指定します。デフォルトでは PREFIX/include です。
--sysconfdir=SYSCONFDIR
MDN ライブラリおよび mdnsproxy の設定ファイルのサンプルをイン
ストールするディレクトリを指定します。デフォルトでは PREFIX/etc
です。
--mandir=MANDIR
オンラインマニュアルのインストールディレクトリを指定します。
デフォルトでは PREFIX/man です。
--datadir=DATADIR
異なるマシンで共有可能なファイルをインストールするディレクトリ
を指定します。デフォルトは PREFIX/share です。DATADIR/mdnkit
の下に、mDNkit で使用する幾つかのデータファイルがインストール
されます。
--localstatedir=LOCALSTATEDIR
--with-logdir=LOGDIR
LOGDIR は mdnsproxy のログファイルを出力する標準のディレクトリ
を指定します。LOGDIR のデフォルトは LOLOCALSTATEDIR/mdnsproxy
で、LOLOCALSTATEDIR のデフォルトは PREFIX/var です。
--enable-debug
デバッグ用のコードを有効にします。デフォルトは "no" (無効) です。
--enable-shared
共有ライブラリを作成します。デフォルトは "yes" (作成する) です。
--enable-static
静的ライブラリを作成します。デフォルトは "yes" (作成する) です。
configure には他にも多くのオプションがありますが、残りは一般的なオプショ
ンなので説明は省きます。
% ./configure --help
を実行するとオプションの一覧が表示されます。
3. コンパイル
configure を実行すると Makefile などが生成されますので、続けて makeを
実行してコンパイルします。
% make
4. インストール
スーパユーザになってインストールします。
% su
# make install
5. 設定と使用方法
mDNkit を正しく動作させるには、設定ファイル `mdn.conf' が必要です。
configure スクリプトに --with-preference オプションを指定しなかった場
合にはこのファイルを作成する必要があります。この設定ファイルの詳細につ
いてはmdn.conf のオンラインマニュアルをご覧ください。また設定例が書か
れたサンプルファイル (mdn.conf.sample) もインストールされますのでご利
用ください。
また、mdnsproxy、mdnconv、runmdn といったツールのオンラインマニュアル
も提供されています。これらのコマンドの使い方、設定方法に関してはそちら
を参照してください。
% man mdn.conf
% man mdnsproxy
% man mdnconv
% man runmdn
6. 設定の確認
`mdnsproxy' という簡単なシェルスクリプトが tools/mdnconv ディレクトリ
に用意されています。このスクリプトを使うと DNS サーバに対して多言語ド
メイン名を問い合わせることができます。設定ファイルの確認に役立つかも知
れません。
`mdnslookup' の使用方法は、次の通りです。
% tools/mdnconv/mdnslookup <domain-name> <dns-server>
ここで <domain-name> はローカルコードセット (詳しくは mdn.conf のマニュ
アルの ``LOCAL CODESET'' を参照のこと) で書かれた多言語ドメイン名で、
<dns-server> は DNS サーバのホスト名もしくは IP アドレスです。
`mdnslookup' は `mdnconv' および `nslookup' コマンドを用いて、
<dns-server> に対して <domain-name> を引きに行きます。設定に何か間違い
があれば、`mdnconv', `nslookup', あるいは `mdnslookup' 自身によるエラー
メッセージが出力されます。