メインコンテンツへジャンプする

JPNICはインターネットの円滑な運営を支えるための組織です

ロゴ:JPNIC

WHOIS 検索 サイト内検索 WHOISとは? JPNIC WHOIS Gateway
WHOIS検索 サイト内検索

インストール

mDNkit のコンパイルおよびインストール方法について解説します。 ここではソースからのインストール方法について説明します。 バイナリパッケージの配布も予定されていますが、 それらのインストール方法に関してはそれぞれのパッケージを参照してください。

本ドキュメントでは UNIX 用のコンパイルとインストール方法について 説明します。Windows 用の mDN Wrapper のインストール 方法に関しては mDN Wrapper のセットアップの 項をご覧ください。

ソース配布からのインストール手順はおよそ次のようになります。

  1. 前準備
  2. 配布ソースの展開
  3. configure 実行
  4. コンパイル
  5. ファイルのインストール

インストールの後は、DNS サーバの設定 および mDNkit の設定 、さらに mdnsproxy を使用する場合には mDNS Proxy Server の設定 を参照して設定を行ってください。

ソース配布に含まれているパッチを適用する場合には、 それぞれ次の手順にしたがってください。


前準備

iconv のインストール

mDNkit は EUC や SJIS など様々なローカルエンコーディングで 記述されたドメイン名のエンコーディングを変換するために、汎用の コードセット変換ユーティリティである iconv() を使用します。 そこで、FreeBSD など iconv() が標準で組み込まれていない システムでは、 mDNkit のインストールに先立って iconv() をインストール しなければなりません。また、mDNkit は iconv() が UTF-8 エンコーディングをサポートしていることを要求します。システム付属の iconv() が UTF-8 をサポートしていない場合にはやはり 外部のパッケージをインストールする必要があります。

iconv() のフリーな実装としては、例えば GNU libiconv

があり、ソースを上記のページから入手することができます。 これは LGPL に基づいたフリーソフトウェアで、多くの UNIX 系 OS の もとで動作します。このパッケージのインストール方法については、上記ページか、 あるいはソース配布に含まれる INSTALL.generic ファイルをご覧ください。

BIND 9 ソースの入手

mDNkit には BIND 9 に対するパッチが含まれており、これを適用することで BIND 9 に含まれる dig や nslookup 等のツールに多言語ドメイン名を直接 指定することができるようになります。

これらのツールを利用したい場合にはあらかじめ BIND 9 のソースを用意して ください。 mDNkit に含まれるパッチは BIND 9.1.3 用のものです。 ソースは以下の場所からダウンロードすることができます。

BIND 8 ソースの入手

mdnsproxy を利用してクライアントアプリケーションが 多言語ドメイン名を使用できるようにするためには、 名前解決を行うリゾルバライブラリを 8ビットスルーにする必要があります。

mDNkit にはこのために BIND 8.2.3 を 8ビットスルーにする パッチが含まれています。パッチを適用した BIND 8 を使用したい場合には あらかじめこのバージョンのソースを用意してください。 ソースは以下の場所からダウンロードすることができます。

Squid ソースの入手

Web のキャッシュサーバである Squid は、そのままでは多言語ドメイン名が 入力されるとそれをエラーにしてしまい、使用することができません。 このためmDNkit には Squid-2.4.STABLE1 を 8ビットスルーにするパッチが含まれています。Squid を多言語ドメイン名で使用 したい場合にはこのソースも用意してください。


配布ソースの展開

mDNkit に関する最新情報は以下の場所から入手可能で、 最新の配布ソースのダウンロードもできます。

入手した mDNkit の配布ソースを展開します。 配布ソースのファイル名を mdnkit-X.Y.tar.gzとすると 次のようにして展開できます。

% gunzip mdnkit-X.Y.tar.gz
% tar -xf mdnkit-X.Y.tar

展開すると、mdnkit-X.Yというディレクトリが 作られますので、そこに移動してください。

% cd mdnkit-X.Y

以降の説明では、このディレクトリを $MDNTOP という名前で 参照します。環境変数 $MDNTOP を設定しておくと便利でしょう。

% setenv MDNTOP `pwd` (csh 系のシェルの場合)
% MDNTOP=`pwd`; export MDNTOP (sh 系のシェルの場合)


configure 実行

まず mDNkit の本体である、

  • MDN ライブラリ (libmdn, libmdnlite)
  • DNS プロキシサーバ (mdnsproxy)
  • ゾーンマスタファイルコード変換ツール (mdnconv)
  • runmdn コマンド (runmdn)

のコンパイルを実行します。

まず、mDNkit のトップディレクトリ ($MDNTOP の指すディレクトリ) に移動し、 configure スクリプトを実行します。 configure はヘッダファイルやライブラリの有無など、システム毎の 特徴を調べ、コンパイル環境を適切に設定するためのツールです。

% cd $MDNTOP
% ./configure

システムに iconv() が組み込まれていて、かつコンパイル時に 特別なオプションを使用しないなら上記のようになにも引数を指定せずに 実行すればよいのですが、そうではない場合、オプションや環境変数で 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
システムに iconv() が組み込まれていない、あるいは システムの iconv() を使いたくないなどの理由で新たに iconv() のパッケージをインストールした場合に、このオプションを 用いて iconv() のライブラリを指定します。ICONV_LIB でライブラリを指定します。ライブラリファイルをフルパスで指定するか、 あるいは C コンパイラに与えるオプションの形式で指定してください。 例えば

--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
UTF-8 エンコーディングを iconv() に指定する場合、 mDNkit はデフォルトで UTF-8 というエンコーディング名称を 使用します。もし UTF-8 エンコーディングを指定するのに UTF-8 以外のエンコーディング名称を使用する必要があれば、このオプションで UTF8_NAME にその名称を指定します。 前準備にあげた iconv のパッケージ を使用する場合にはこのオプションの指定は不要です。

その他の configure のオプション

それほどよく使うわけではありませんが、configure には 前項に挙げたもの以外にも様々なオプションが用意されています。 必要に応じて指定して下さい。

--with-preference=PREFERENCE
インストールするサンプル設定ファイル (mdn.conf.sample) のデフォルト設定を PREFERENCE 向けのものにします。 またこのオプションを指定すると、デフォルトの設定ファイル (mdn.conf) が (インストール先に既に存在していなければ) インストールされます。インストールされるファイルの内容は サンプル設定ファイルと全く同一です。
現在のところ、PREFERENCE として指定できるのは jp のみです。
--with-punycode-prefix=AMCZ_PREFIX
Punycode (旧称 AMC-ACE-Z) は DNS プロトコル上で使用される 多言語ドメイン名に関して提案されているエンコーディング方式です。 このエンコーディングでコンコードされたドメイン名と従来の ASCII ドメイン名 と区別するためには、固定の接頭辞を用意する必要があります。 しかしながら、現在の Punycode のインターネットドラフト draft-ietf-idn-punycode-00.txt では接頭辞を定義していません。 このオプションを用いることで、接頭辞を指定することができます。 指定しなければ、"zq--" が接頭辞として定義されます。
--with-race-prefix=RACE_PREFIX
--with-dude-prefix=DUDE_PREFIX
RACE も DUDE も DNS プロトコル上で使用される多言語ドメイン名に関して 提案されているエンコーディング方式ですが、すでに廃れたものとなっています。 エンコーディング方式について記述したインターネットドラフト draft-ietf-idn-race-03.txt および draft-ietf-idn-dude-02.txt には接頭辞が定義されていますが、これらのオプションを用いて接頭辞を 変更することも可能です。
--exec-prefix=EXEC_PREFIX
マシン固有のファイルをインストールするディレクトリのパスを指定します。 デフォルトは PREFIX (--prefix=PREFIX によって指定可能、PREFIX のデフォルトは /usr/local) になります。
--sbindir=SBINDIR
DNS プロキシサーバ mdnsproxy をインストールするディレクトリを指定します。 デフォルトでは EXEC_PREFIX/sbin にインストール されます。
--bindir=BINDIR
ゾーンマスタファイルコード変換ツール mdnconv およびクライアントに多言語ドメイン名処理を付加する runmdn コマンド をインストールするディレクトリを指定します。 デフォルトでは EXEC_PREFIX/bin にインストール されます。
--libdir=LIBDIR
mdnsproxy や mdnconv 等が使用する mDNkit の基本ライブラリを インストールするディレクトリを指定します。 デフォルトでは EXEC_PREFIX/lib にインストール されます。
--includedir=INCDIR
mDNkit の基本ライブラリを使用するのに必要なヘッダファイルを インストールするディレクトリを指定します。 デフォルトでは PREFIX/include にインストール されます。
--sysconfdir=SYSCONFDIR
DNS プロキシサーバ mdnsproxy の設定ファイル、および mDNkit のクライアント共通設定ファイルを インストールするディレクトリを指定します。 デフォルトでは PREFIX/etc にインストールされます。
--mandir=MANDIR
オンラインマニュアルをインストールするベースディレクトリを指定します。 デフォルトでは PREFIX/man です。実際にはこの ディレクトリのサブディレクトリの man1man8 にインストールされます。
--datadir=DATADIR
異なるマシンで共有可能なファイルをインストールするディレクトリを指定 します。デフォルトは PREFIX/share です。 実際にそのサブディレクトリの DATADIR/mdnkit に 幾つかのデータファイルがインストールされます。
--localstatedir=LOCALSTATEDIR
--logdir=LOGDIR
LOGDIRmdnsproxy のログファイルを出力 する標準のディレクトリを指定します。LOGDIR のデフォルトは LOLOCALSTATEDIR/mdnsproxy で、 LOLOCALSTATEDIR のデフォルトは PREFIX/var です。
--enable-debug
デバッグ用のコードを有効にします。 通常は使用しません。デフォルトでは無効 (no) になっています。
--enable-shared
共有ライブラリを作成します。デフォルトは有効 (yes) に なっています。
--enable-static
静的ライブラリを作成します。デフォルトは有効 (yes) に なっています。

configure には他にもオプションがありますが、残りは mDNkit で使用する ことは滅多にないと思いますので、説明は省きます。

% ./configure --help

で指定可能なオプションの一覧を表示させることができます。


configure に関係する環境変数

configure に関係する環境変数は、次の通りです。 これらについても、もし必要であれば指定して下さい。

CC
C コンパイラのコマンド名を指定します。
CFLAGS
C コンパイラに渡すコンパイルオプションを指定します。たとえば GCC を使用しているのであれば、-O3 を指定することで最適化 レベル 3 でコンパイルが行われるようになります。 具体的には、csh 系のシェルの場合には

% setenv CFLAGS -O3

また sh 系のシェルの場合には

% CFLAGS=-O3; export CFLAGS

とします。

configure を実行することにより、あなたのシステム環境に合わせて 調整された Makefile その他のファイルが生成されます。


コンパイル

configure 実行によって、システム環境 に合った Makefile が生成されているので、コンパイルはトップディレクトリ ($MDNTOP の指すディレクトリ) で make コマンドを実行するだけです。

% make


ファイルのインストール

コンパイルが終了したら、実行ファイルなどのインストールを行います。 インストールの前にスーパーユーザになってください。

% su

あとは make install を実行すれば、必要なファイルが システムにインストールされます。

# make install

インストールされるファイルは以下の通りです。

インストールされる実行ファイル

次の実行ファイルがインストールされます。

mdnsproxy
DNS プロキシサーバです。
mdnconv
ゾーンマスタファイル用のコード変換ツールです。
runmdn クライアントを再コンパイルすることなしに多言語ドメイン名の名前解決 機能を付加するコマンドです。

mdnsproxy は、デフォルトでは /usr/local/sbin に インストールされます。 インストール先を変えるには configure--sbindir オプションを使用します。

mdnconv および runmdn は、 デフォルトでは /usr/local/bin にインストールされます。 インストール先を変えるには configure--bindir オプションを使用します。

インストールされるオンラインマニュアル

以下のオンラインマニュアルがインストールされます。

mdnconv.1
ゾーンマスタファイル用のコード変換ツール mdnconv のマニュアルです。
runmdn.1
runmdn コマンドのマニュアルです。
libmdn.3, libmdnlite.3
多言語ドメイン名変換 API のオンラインマニュアルです。
mdn.conf.5
クライアント共通設定ファイル mdn.conf.5 の オンラインマニュアルです。
mdnsproxy.8
DNS プロキシサーバ mdnsproxy のマニュアルです。

デフォルトでは /usr/local/man/man1 (mdnconv.1runmdn.1)、 /usr/local/man/man3 (libmdn.3libmdnlite.3)、 /usr/local/man/man5 (mdn.conf.5)、 /usr/local/man/man8 (mdnsproxy.8) にそれぞれインストールされます。 インストール先を変えるには、configure--mandir オプションを使用します。

インストールされる設定ファイル

以下の設定ファイルあるいはそのサンプルファイルがインストールされます。

mdnsproxy.conf.sample
DNS プロキシサーバ mdnsproxy の設定ファイルの設定例を記述した サンプルファイルです。 このファイルの設定方法に関しては mDNS Proxy Server の設定 を参照してください。
mdn.conf.sample
mDNkit の共通設定ファイル mdn.conf の設定例を記述した サンプルファイルです。このファイルの設定方法に関しては mDNkit の設定 を参照してください。
mdn.conf
mDNkit の共通設定ファイルです。このファイルは configure--with-preference オプションを 指定し、かつインストール先に同じ名前のファイルが存在しない時にのみ インストールされます。

いずれもデフォルトでは /usr/local/etc にインストールされます。 インストール先を変えるには、configure--sysconfdir オプションを使用します。

インストールされるライブラリ

以下のライブラリがインストールされます。

libmdn
mdnsproxy や mdnconv 等のコマンドが使用している mDNkit の基本ライブラリです。
libmdnlite
libmdn の軽量版です。 libmdn から、ローカルエンコーティングと UTF-8 との 間のコード変換機能部分を除いてありますが、その他はすべて libmdn と同じです。
libmdnres
runmdn コマンドによってクライアントに動的にリンクされる ライブラリです。

いずれのライブラリもデフォルトでは /usr/local/lib に インストールされます。 インストール先を変えるには configure--libdir オプションを使用します。

インストールされるヘッダファイル

libmdn のヘッダファイルがインストールされます。 デフォルトでは /usr/local/include の下に mdn という ディレクトリが作られ、その下にインストールされます。 インストール先を変えるには、configure--includedir オプションを使用します。


BIND 9 用パッチの適用とインストール

パッチの当て方はこのファイルの先頭にも書いてありますが、簡単に紹介 すると、次のようになります。

  1. BIND 9.1.3 のソースのトップディレクトリ (README というファイルがあるディレクトリです) に移動します。

    % cd /somewhere/.../bind-9.1.3

  2. patch コマンドを使用してソースにパッチを当てます。

    % patch -p0 < $MDNTOP/patch/bind9/bind-9.1.3-patch

パッチを当てたあとは BIND 9 のソース中の README.mdnkit を ご覧ください。コンパイル・インストール方法などが書かれています。

パッチを当てた BIND 9 をコンパイルするには、あらかじめ mDNkit を コンパイルおよびインストールしておいてください。


BIND 8 用パッチの適用とインストール

展開したソースの中の $MDNTOP/patch/bind8/bind-8.2.3-patch が BIND 8.2.3 に対する 8ビットスルーパッチです。 パッチの当て方はこのファイルの先頭にも書いてありますが、簡単に紹介すると、 次のようになります。

  1. BIND 8.2.3 のソースのトップディレクトリ (src というサブディレクトリがあるディレクトリです) に移動します。

    % cd /somewhere/.../bind-8.2.3

  2. patch コマンドを使用してソースにパッチを当てます。

    % patch -p0 < $MDNTOP/patch/bind8/bind-8.2.3-patch

パッチを当てたら、あとは通常の BIND のインストール方法にしたがって コンパイルとインストールを行ってください。インストール方法は BIND の ソース中の src/INSTALL に書かれています。

BIND 8 用のパッチは BIND を単に 8ビットスルーにするだけで、mDNkit の ライブラリ等は使用しません。したがって mDNkit 本体とは独立にコンパイルおよび インストールすることができます。


Squid 用パッチの適用とインストール

展開したソースの中の $MDNTOP/patch/squid/squid-2.3.STABLE3-patch が Squid 2.3.STABLE3 に対する 8ビットスルーパッチです。 パッチの当て方はこのファイルの先頭にも書いてありますが、簡単に紹介すると、 次のようになります。

  1. Squid 2.3.STABLE3 のソースのトップディレクトリ (README ファイルがあるディレクトリです) に移動します。

    % cd /somewhere/.../squid-2.3.STABLE3

  2. patch コマンドを使用してソースにパッチを当てます。

    % patch -p1 < $MDNTOP/patch/squid/squid-2.3.STABLE3-patch

パッチを当てたら、あとは通常の Squid のインストール方法にしたがって コンパイルとインストールを行ってください。インストール方法は Squid のソースに含まれる INSTALL ファイルに書かれています。

Squid 用のパッチも BIND 8 用のパッチと同様単に 8ビットスルーにするだけで、 mDNkit のライブラリ等は使用しません。 したがって mDNkit 本体とは独立にコンパイルおよび インストールすることができます。

このページを評価してください

このWebページは役に立ちましたか?
よろしければ回答の理由をご記入ください

それ以外にも、ページの改良点等がございましたら自由にご記入ください。

回答が必要な場合は、お問い合わせ先をご利用ください。

ロゴ:JPNIC

Copyright© 1996-2024 Japan Network Information Center. All Rights Reserved.