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

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

ロゴ:JPNIC

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

インストール

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

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

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

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

インストールの後は、DNS サーバの設定 および mDNkit リゾルバのコンフィギュレーション 、さらに dnsproxy を使用する場合には DNS Proxy Server のコンフィギュレーション を参照して設定を行ってください。

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


前準備

iconv のインストール

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

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

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

bind9 ソースの入手

mDNkit は bind9 に対するパッチを提供しており、これによって 多言語ドメイン名を扱うことのできる bind9 のリゾルバおよびサーバを 作成することができます。本キットに含まれるパッチは BIND 9.0.1 および BIND 9.1.0 に対するものです。 ソースは以下の場所からダウンロードすることができます。

bind8 ソースの入手

dnsproxy を利用してクライアントアプリケーションが 多言語ドメイン名を使用できるようにするためには、 名前解決を行うリゾルバライブラリを 8bit スルーにする必要があります。 また DNS サーバでも、多言語ドメイン名のエンコーディングとして ASCII 互換エンコーディングである UTF-5 や RACE 以外の、 例えば UTF-8 などのエンコーディングを使用するためには、 8bit スルーの DNS サーバを使用する必要があります。

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

Squid ソースの入手

Web のキャッシュサーバである Squid は、そのままでは多言語 ドメイン名が入力されるとそれをエラーにしてしまい、使用することができません。 このためmDNkit には Squid-2.3.STABLE3 を 8bit スルーにするパッチが含まれています。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)
  • DNS プロキシサーバ (dnsproxy)
  • ゾーンマスタファイルコード変換ツール (mdnconv)
  • runmdn コマンド

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

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

% cd $MDNTOP
% ./configure

システムに iconv() が組み込まれていて、かつコンパイル時に 特別なオプションを使用しないなら上記のようになにも引数を指定せずに 実行すればよいのですが、そうではない場合、オプションや環境変数で configure の動作を変えることができます。

configure に指定できるオプションの中で mDNkit に 直接関係するものは以下の通りです。

--with-iconv=LIB
システムに iconv() が組み込まれていない、あるいは システムの iconv() を使いたくないなどの理由で新たに iconv() のパッケージをインストールした場合に、このオプションを 用いて iconv() のライブラリを指定します。LIB で ライブラリを指定します。ライブラリファイルをフルパスで指定するか、 あるいは C コンパイラに与えるオプションの形式で指定してください。

例えば前準備に挙げた iconv のパッケージをインストールした場合、デフォルトでは /usr/local/liblibiconv にインストールされるので、

--with-iconv="-L/usr/local/lib -liconv"
と指定すればよいでしょう。libiconv が共有ライブラリの時には、 -R オプションも指定して
--with-iconv="-L/usr/local/lib -R/usr/local/lib -liconv"

とする必要があるかもしれません。

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

--with-race-prefix=PREFIX
DNS プロトコル上で用いられる多言語ドメイン名のエンコーディング方式 として RACE という方式が提案されています。これは ASCII 互換エンコーディングの 1つですが、ドメイン名に特定のプリフィックスを付けることで通常の ASCII ドメイン名と区別することが可能になっています。このプリフィックスは 現在の インターネットドラフトでは "bq--" ですが、将来変更される 可能性があります。変更された場合にはこのオプションを用いて正しい プリフィックスを指定してください。

--with-brace-suffix=SUFFIX
RACE と同じく DNS プロトコル上で用いられる多言語ドメイン名の エンコーディング方式として BRACE という方式が提案されています。これも ASCII 互換エンコーディングの 1つですが、RACE と異なり、ドメイン名に特定のサフィックスを付けることで通常の ASCII ドメイン名と区別することが可能になっています。このサフィックスは 現在の インターネットドラフトでは "-8q9" ですが、将来変更された 場合にはこのオプションを用いて正しいサフィックスを指定してください。

--with-lace-prefix=PREFIX
RACE や BRACE と同じような ASCII 互換エンコーディングの一つとして LACE という方式が提案されています。RACE と同様、LACE も 通常の ASCII ドメイン名と区別ために特別なプリフィックスを使用します。 現在の インターネットドラフトでは "bq--" ですが、将来これが 変更された場合にはこのオプションを用いて正しい プリフィックスを指定してください。

--enable-zld
ZLD (Zero Level Domain) 機能のサポートを追加します。 ZLD とは DNS サーバで用いられる一部のエンコーディングにおいて、 通常の ASCII ドメイン名と多言語ドメイン名とを区別するために用いられる 特殊なドメイン名です。 DNS プロトコル上で使用するエンコーディングとして ZLD を必要とする エンコーディングを選択しなければ、このオプションの指定は不要です。

なお、ZLD 機能のサポートの有無は dnsproxy や runmdn が設定ファイルを 読み込む際の振る舞い (ZLD の指定を無視するかどうか) に影響します。 mDNkit が提供するライブラリ自体は、 (設定ファイルを読み込むための一部のモジュールを除いて) このオプションによって動作が変わることはなく、常に ZLD の処理を 行うようになっています。

--sbindir=DIR
DNS プロキシサーバ dnsproxy をインストールするディレクトリを指定します。 デフォルトでは /usr/local/sbin にインストールされます。

--bindir=DIR
ゾーンマスタファイルコード変換ツール mdnconv および クライアントに多言語ドメイン名処理を付加する runmdn コマンドを インストールするディレクトリを指定します。 デフォルトでは /usr/local/bin にインストールされます。

--libdir=DIR
dnsproxy や mdnconv 等が使用する mDNkit の基本ライブラリを インストールするディレクトリを指定します。 デフォルトでは /usr/local/lib にインストールされます。

--includedir=DIR
mDNkit の基本ライブラリを使用するのに必要なヘッダファイルを インストールするディレクトリを指定します。 デフォルトでは /usr/local/include にインストールされます。

--sysconfdir=DIR
DNS プロキシサーバ dnsproxy の設定ファイル、および mDNkit のクライアント共通設定ファイルを インストールするディレクトリを指定します。 デフォルトでは /usr/local/etc にインストールされます。

--mandir=DIR
オンラインマニュアルをインストールするベースディレクトリを指定します。 デフォルトでは /usr/local/man です。実際にはこのディレクトリの サブディレクトリの man1man8 にインストールされます。

この他にも configure にはいろいろなオプションを指定することが できます。

% ./configure --help

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

また、関係する環境変数は次の通りです。

CFLAGS
C コンパイラに渡すオプションを指定します。例えば外部の iconv パッケージをインストールしたときに、インクルードファイル iconv.h が標準以外のディレクトリ、例えば /usr/local/include にインストールされたとします。このような 場合には CFLAGS-I/usr/local/include を 設定する必要があります。具体的には、csh 系のシェルの場合には
% setenv CFLAGS -I/usr/local/include

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

% CFLAGS=-I/usr/local/include; export CFLAGS

とします。

CFLAGS はこの他にも C コンパイラの最適化オプションを 指定するためにも使えます。CFLAGS-O を指定すれば 最適化ありでコンパイルされます。

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


コンパイル

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

% make


ファイルのインストール

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

% su

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

# make install

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

実行ファイル
以下の実行ファイルがインストールされます。
dnsproxy
DNS プロキシサーバです。
mdnconv
ゾーンマスタファイル用のコード変換ツールです。
runmdn
クライアントを再コンパイルすることなしに多言語ドメイン名の名前解決 機能を付加するコマンドです。 デフォルトでは /usr/local/bin にインストールされます。

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

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

オンラインマニュアル
以下のオンラインマニュアルがインストールされます。
dnsproxy.8
DNS プロキシサーバ dnsproxy のマニュアルです。
mdnconv.1
ゾーンマスタファイル用のコード変換ツール mdnconv のマニュアルです。
runmdn.1
runmdn コマンドのマニュアルです。
mdnres.conf.5
クライアント共通設定ファイル mdnres.conf のオンラインマニュアルです。

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

設定ファイル
以下の設定ファイルあるいはそのサンプルファイルがインストールされます。
dnsproxy.conf
DNS プロキシサーバ dnsproxy の設定ファイルの設定例を記述した サンプルファイルです。 このファイルがすでにインストールされている場合には、 上書きしてしまわないように dnsproxy.conf.sample という名前で インストールされます。

このファイルの設定方法に関しては DNS Proxy Server のコンフィギュレーション を参照してください。

mdnres.conf.sample
クライアント共通設定ファイル mdnres.conf の設定例を記述した サンプルファイルです。

このファイルの設定方法に関しては mDNkit リゾルバのコンフィギュレーション を参照してください。

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

ライブラリ
以下のライブラリがインストールされます。
libmdn
dnsproxy や mdnconv 等のコマンドが使用している mDNkit の基本ライブラリです。
libmdnres
runmdn コマンドによってクライアントに動的にリンクされる ライブラリです。

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

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


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

展開したソースの中の $MDNTOP/patch/bind9/bind-9.0.1-patch および $MDNTOP/patch/bind9/bind-9.1.0-patch が それぞれ BIND 9.0.1、BIND 9.1.0 に多言語ドメイン名の処理機能を 付加するパッチです。 パッチの当て方はこれらのファイルの先頭にも書いてありますが、簡単に紹介すると、 次のようになります。

  1. BIND 9.0.1 または BIND 9.1.0 のソースのトップディレクトリ (README というファイルがあるディレクトリです) に移動します。
    % cd /somewhere/.../bind-9.0.1
    
  2. patch コマンドを使用してソースにパッチを当てます。
    % patch -p0 < $MDNTOP/patch/bind9/bind-9.0.1-patch
    

パッチを当てると、トップディレクトリに README.mdnkit という ファイルが作られます。コンパイルの前にこのファイルを読んでください。

そのあとコンパイルとインストールを行います。方法は README.mdnkit に書かれています。このファイルにも書かれていますが、 configure コマンドの実行時に --with-mdn オプションをつけることを忘れないでください。 このオプションをつけないと多言語ドメイン名の処理機能は付加されません。

% ./configure --with-mdn

bind9 用のパッチは mDNkit の本体 (特にライブラリとヘッダファイル) がすでに インストールされていることを前提としています。したがって、この作業は mDNkit 本体のインストール終了後に実行してください。


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

展開したソースの中の $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 に書かれています。

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

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

このWebページは役に立ちましたか?
ページの改良点等がございましたら自由にご記入ください。

このフォームをご利用した場合、ご連絡先の記入がないと、 回答を差し上げられません。 回答が必要な場合は、お問い合わせ先をご利用ください。

ロゴ:JPNIC

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