idnkit のインストール
- 概要
- 前準備
- 配布ソースの展開
-
configure
の実行 - コンパイル
- ファイルのインストール
- BIND 8 用パッチの適用とインストール
- BIND 9 用パッチの適用とインストール
- Squid 用パッチの適用とインストール
概要
idnkit のコンパイルおよびインストール方法について解説します。 ここではソースからのインストール方法について説明します。 バイナリパッケージの配布も予定されていますが、 それらのインストール方法に関してはそれぞれのパッケージを参照してください。
本ドキュメントでは UNIX 用のコンパイルとインストール方法について 説明します。Windows 用の idn wrapper のインストール 方法に関しては idn wrapper のインストールの 項をご覧ください。
ソース配布からのインストール手順はおよそ次のようになります。
インストールの後は、DNS サーバの設定 および idnkit の設定 を参照して設定を行ってください。
ソース配布に含まれているパッチを適用する場合には、 それぞれ次の手順にしたがってください。
前準備
iconv のインストール
idnkit は EUC-JP や SJIS など様々なローカルエンコーディングで記述された
ドメイン名のエンコーディングを変換するために、汎用のエンコーディング変換関数
ある iconv()
を使用します。
そこで、FreeBSD などの iconv()
が標準で提供されていない
システムでは、idnkit のインストールに先立って iconv()
を
インストールしなければなりません。
また、idnkit は iconv()
が UTF-8 エンコーディングをサポート
していることを要求します。
システム付属の iconv()
が UTF-8 をサポートしていない場合
にはやはり外部のパッケージをインストールする必要があります。
iconv()
のフリーな実装としては、例えば GNU libiconv があり、
ソースを下記のページから入手することができます。
これは LGPL に基づいたフリーソフトウェアで、多くの UNIX 系 OS の
もとで動作します。このパッケージのインストール方法については、上記ページか、
あるいはソース配布に含まれる INSTALL.generic
ファイルをご覧ください。
ただし、コード変換を必要とせず、lite バージョンのライブラリのみを
インストールするのであれば、iconv()
を含むライブラリは
必要ありません。その場合、
configure
スクリプトの実行時に
--enable-liteonly
オプションを指定してください。
BIND ソースの入手
idnkit には BIND 8 および 9 に対するパッチが含まれており、これを適用する ことで BIND に含まれる dig や nslookup 等のツールに国際化ドメイン名を直接 指定することができるようになります。
これらのツールを利用したい場合にはあらかじめ BIND のソースを用意して ください。 idnkit に含まれるパッチは BIND 8.3.3 および 9.2.0, 9.2.1 用のものです。 BIND 8 のソースは以下の場所からダウンロードすることができます。
同様に、BIND 9 のソースは以下の場所からダウンロードすることができます。
Squid ソースの入手
Web のキャッシュサーバである Squid は、そのままでは国際化ドメイン名が 入力されるとそれをエラーにしてしまい、使用することができません。 このためidnkit には Squid-2.4.STABLE1 を 8ビットスルーにするパッチが含まれています。Squid を国際化ドメイン名で使用 したい場合にはこのソースも用意してください。
配布ソースの展開
idnkit に関する最新情報は以下の場所から入手可能で、 最新の配布ソースのダウンロードもできます。
入手した idnkit の配布ソースを展開します。
配布ソースのファイル名を idnkit-X.Y.tar.gz
とすると
次のようにして展開できます。
% gunzip idnkit-X.Y.tar.gz
% tar -xf idnkit-X.Y.tar
展開すると、idnkit-
X.Yというディレクトリが
作られますので、そこに移動してください。
% cd idnkit-X.Y
以降の説明では、このディレクトリを $IDNTOP
という名前で
参照します。環境変数 $IDNTOP
を設定しておくと便利でしょう。
% setenv IDNTOP `pwd` (csh 系のシェルの場合)
% IDNTOP=`pwd`; export IDNTOP (sh 系のシェルの場合)
configure
の実行
まず idnkit の本体である、
- idnkit ライブラリ (libidnkit, libidnkitlite)
- コード変換ツール (idnconv)
- runidn コマンド (runidn)
のコンパイルを実行します。 (ただし、runidn は、標準ではインストールされません。)
まず、idnkit のトップディレクトリ
($IDNTOP
の指すディレクトリ) に移動し、
configure
スクリプトを実行します。
configure
はヘッダファイルやライブラリの有無など、システム毎の
特徴を調べ、コンパイル環境を適切に設定するためのツールです。
% cd $IDNTOP
% ./configure
通常のライブラリをインストールする場合、
システムに iconv()
が組み込まれていて、かつコンパイル時に
特別なオプションを使用しないなら上記のようになにも引数を指定せずに
実行すればよいのですが、
そうではない場合 (lite ライブラリのみをインストールしたい場合や
iconv() を含むライブラリを指定しなければいけない場合など)、
オプションや環境変数で
configure
の動作を変えることができます。
configure
に指定できるオプションの中で、重要と思われるもの
を記します。
-
--prefix=PREFIX
- idnkit をインストールするディレクトリのパスを指定します。デフォルト
は
/usr/local
です。 -
--enable-runidn
- runidn のインストールを行います。このオプションが指定されない
限り、runidn コマンドはインストールされません。
runidn は通常の libidnkit がインストールされた環境でなければ使用
できないため、
--enable-liteonly
と同時に指定することは できません。 -
--enable-liteonly
- ローカルエンコーディング対応機能を省いた、lite ライブラリのみを
インストールします。iconv サポートが必要なくなるため、
iconv に関するオプションと同時に指定することはできません。
また、
--enable-runidn
と同時に指定することもできません。 -
--with-libiconv=LIBICONV_PREFIX
-
インストール済みの GNU libiconv を idnkit にリンクさせる場合は、
このオプションを指定して下さい。
引数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
) を両方とも指定した場合は、通常用のオプションほうが優先されます。 なお、このオプションは--enable-liteonly
と同時に指定す ることはできません。 -
--with-iconv-include=ICONV_INCDIR
- C コンパイラが通常では検索しないディレクトリに
iconv.h
が置かれている場合、次のようにしてそのディレクトリを指定します。--with-iconv-include=/usr/local/include
--enable-liteonly
と同時に指定す ることはできません。 -
--with-iconv=ICONV_LIB
- システムに
iconv()
が組み込まれていない、あるいは システムのiconv()
を使いたくないなどの理由で新たにiconv()
のパッケージをインストールした場合に、このオプションを 用いてiconv()
のライブラリを指定します。ICONV_LIB でライブラリを指定します。ライブラリファイルをフルパスで指定するか、 あるいは C コンパイラに与えるオプションの形式で指定してください。 例えば--with-iconv="-L/usr/local/lib -liconv"
-R
オプションも指定して--with-iconv="-L/usr/local/lib -R/usr/local/lib -liconv"
--enable-liteonly
と同時に指定す ることはできません。 -
--with-iconv-sofile=
SOFILE_PATH - idnkit に含まれている runidn コマンドは、iconv() が libc の一部
として提供されないときに、iconv() を含む共有ライブラリへのパス名を
知る必要があります。
idnkit は、
--with-iconv
オプションの記述を基にパス名を 検索しますが、これに失敗したときに、以下のように共有ライブラリを 指定することができます。--with-iconv-sofile=/usr/local/lib/libiconvv.so.2.0
--enable-liteonly
と同時に指定す ることはできません。 -
--with-utf8=UTF8_NAME
- UTF-8 エンコーディングを
iconv()
に指定する場合、 idnkit はデフォルトでUTF-8
というエンコーディング名称を 使用します。もし UTF-8 エンコーディングを指定するのにUTF-8
以外のエンコーディング名称を使用する必要があれば、このオプションで UTF8_NAME にその名称を指定します。 前準備にあげたiconv
のパッケージ を使用する場合にはこのオプションの指定は不要です。
その他の configure
のオプション
それほどよく使うわけではありませんが、configure
には
前項に挙げたもの以外にも様々なオプションが用意されています。
必要に応じて指定して下さい。
-
--with-punycode-prefix=Punycode_PREFIX
- Punycode は DNS プロトコル上で使用される国際化ドメイン名に
関して提案されているエンコーディング方式です。
このエンコーディングでエンコードされたドメイン名と従来の ASCII
ドメイン名と区別するためには、固定の接頭辞を用意する必要があります。
しかしながら、現在の Punycode のインターネットドラフト
draft-ietf-idn-punycode-02.txt では接頭辞を定義していません。
このオプションを用いることで、接頭辞を指定することができます。
指定しなければ、
"zq--"
が接頭辞として定義されます。 -
--exec-prefix=EXEC_PREFIX
- マシン固有のファイルをインストールするディレクトリのパスを指定します。
デフォルトは PREFIX (
--prefix=PREFIX
によって指定可能、PREFIX のデフォルトは/usr/local
) になります。 -
--bindir=BINDIR
- idnconv コマンドおよび runidn コマンドをインストールするディレクトリ
を指定します。
デフォルトでは
EXEC_PREFIX/bin
にインストール されます。 -
--libdir=LIBDIR
- idnkit のライブラリをインストールするディレクトリを指定します。
デフォルトでは
EXEC_PREFIX/lib
にインストール されます。 -
--includedir=INCDIR
- idnkit のライブラリのヘッダファイルをインストールするディレクトリ
を指定します。
デフォルトでは
PREFIX/include
にインストール されます。 -
--sysconfdir=SYSCONFDIR
- idnkit の設定ファイルをインストールするディレクトリを指定します。
デフォルトでは
PREFIX/etc
にインストールされます。 -
--mandir=MANDIR
- マニュアルをインストールするベースディレクトリを指定します。
デフォルトでは
PREFIX/man
です。実際にはこの ディレクトリのサブディレクトリのman1
やman5
にインストールされます。 -
--datadir=DATADIR
- 異なるマシンで共有可能なファイルをインストールするディレクトリを指定
します。デフォルトは
PREFIX/share
です。 実際にそのサブディレクトリのDATADIR/idnkit
に 幾つかのデータファイルがインストールされます。 -
--enable-mdnkit-compat
- mDNkit バージョン 2.4 との互換性を維持する機構を有効にします。
通常は使用しません。デフォルトでは無効 (
no
) になっています。 -
--enable-debug
- デバッグ用のコードを有効にします。
通常は使用しません。デフォルトでは無効 (
no
) になっています。 -
--enable-shared
- 共有ライブラリを作成します。デフォルトは有効 (
yes
) に なっています。 -
--enable-static
- 静的ライブラリを作成します。デフォルトは有効 (
yes
) に なっています。
configure
には他にもオプションがありますが、
残りは idnkit で使用することは滅多にないと思いますので、
説明は省きます。
% ./configure --help
で指定可能なオプションの一覧を表示させることができます。
configure
に関係する環境変数
configure
に関係する環境変数は、次の通りです。
これらについても、もし必要であれば指定して下さい。
-
CC
- C コンパイラのコマンド名を指定します。
-
CFLAGS
- C コンパイラに渡すコンパイルオプションを指定します。たとえば
GCC を使用しているのであれば、
-O3
を指定することで最適化 レベル 3 でコンパイルが行われるようになります。 具体的には、csh 系のシェルの場合には% setenv CFLAGS -O3
% CFLAGS=-O3; export CFLAGS
configure
を実行することにより、あなたのシステム環境に合わせて
調整された Makefile
その他のファイルが生成されます。
コンパイル
configure
実行によって、システム環境
に合った Makefile が生成されているので、コンパイルはトップディレクトリ
($IDNTOP
の指すディレクトリ) で
make
コマンドを実行するだけです。
% make
ファイルのインストール
コンパイルが終了したら、実行ファイルなどのインストールを行います。 インストールの前にスーパーユーザになってください。
% su
あとは make install
を実行すれば、必要なファイルが
システムにインストールされます。
# make install
インストールされるファイルは以下の通りです。
インストールされる実行ファイル
次の実行ファイルがインストールされます。
-
idnconv
- コード変換ツールです。
-
runidn
- クライアントを再コンパイルすることなしに国際化ドメイン名の名前解決
機能を付加するコマンドです。
configure
スクリプト実行時に--enable-runidn
が 指定されたときのみインストールされます。
idnconv
および runidn
は、
デフォルトでは /usr/local/bin
にインストールされます。
インストール先を変えるには
configure
の --bindir
オプションを使用します。
インストールされるマニュアル
以下のマニュアルがインストールされます。
-
idnconv.1
- コード変換ツール idnconv のマニュアルです。
-
runidn.1
- runidn コマンドのマニュアルです。
-
libidnkit.3
libidnkitlite.3
- 国際化ドメイン名変換 API のマニュアルです。
-
idn.conf.5
idnrc.5
- 設定ファイル
idn.conf.5
の マニュアルです。 -
idnalias.conf.5
- 設定ファイル
idn.conf.5
の マニュアルです。
デフォルトでは
/usr/local/man/man1
、
/usr/local/man/man3
、
/usr/local/man/man5
にそれぞれインストールされます。
インストール先を変えるには、configure
の
--mandir
オプションを使用します。
インストールされる設定ファイル
以下の設定ファイルあるいはそのサンプルファイルがインストールされます。
-
idn.conf.sample
- idnkit の設定ファイル idn.conf の設定例を記述した サンプルファイルです。このファイルの設定方法に関しては idnkit の設定 を参照してください。
-
idn.conf
- idnkit の設定ファイルです。
インストール先に同じ名前のファイルが存在しない時にのみ、
idn.conf.sample
と同じ内容のものがインストールされます。 -
idnalias.conf.sample
- 文字のエンコーディング名のエイリアスを定義するファイル idnalias.conf ファイルのサンプルです。このファイルの設定方法は、 idnkit の設定 を参照してください。
-
idnalias.conf
- 文字のエンコーディング名のエイリアスを定義するファイルです。
インストール先に同じ名前のファイルが存在しない時にのみ、
idnalias.conf.sample
と同じ内容のものがインストール されます。
いずれもデフォルトでは /usr/local/etc
にインストールされます。
インストール先を変えるには、configure
の
--sysconfdir
オプションを使用します。
インストールされるライブラリ
以下のライブラリがインストールされます。
-
libidnkit
- idnconv 等のコマンドが使用している
idnkit の基本ライブラリです。
ただし、
configure
スクリプト実行時に--enable-liteonly
が 指定された場合はインストールされません。 -
libidnkitlite
-
libidnkit
の軽量版です。libidnkit
から、ローカルエンコーティングと UTF-8 との ただし、configure スクリプト実行時に--enable-liteonly
が 間のコード変換機能部分を除いてありますが、その他はすべてlibidnkit
と同じです。 -
libidnkitres
- runidn コマンドによってクライアントに動的にリンクされるライブラリです。
configure
スクリプト実行時に--enable-runidn
が 指定されたときのみインストールされます。
いずれのライブラリもデフォルトでは /usr/local/lib
に
インストールされます。
インストール先を変えるには
configure
の --libdir
オプションを使用します。
インストールされるヘッダファイル
libidnkit のヘッダファイルがインストールされます。
デフォルトでは /usr/local/include
の下に idn
という
ディレクトリが作られ、その下にインストールされます。
インストール先を変えるには、configure
の
--includedir
オプションを使用します。
BIND 8 用パッチの適用とインストール
展開したソースの中の
$IDNTOP/patch/bind8/bind-8.3.3-patch
が
BIND 8.3.3 に対するパッチです。
パッチの当て方はこのファイルの先頭にも書いてありますが、簡単に紹介すると、 次のようになります。
- BIND 8.3.3 のソースのトップディレクトリ
(
INSTALL
というファイルが置かれているディレクトリ) に移動 します。% cd /somewhere/.../bind-8.3.3/src
-
patch
コマンドを使用してソースにパッチを当てます。% patch -p0 < $IDNTOP/patch/bind8/bind-8.3.3-patch
パッチを当てたあとは BIND 8 のソース中の README.idnkit
を
ご覧ください。コンパイル、インストール方法などが書かれています。
パッチを当てた BIND 8 をコンパイルするには、あらかじめ idnkit を コンパイルおよびインストールしておいてください。
BIND 9 用パッチの適用とインストール
ここでは、BIND 9.2.1 にパッチを適用する方法を記します。 9.2.0 を使う場合は、適宜「9.2.1」の部分を「9.2.0」に読み替えて下さい。
展開したソースの中の
$IDNTOP/patch/bind9/bind-9.2.1-patch
が BIND 9.2.1 に
対するパッチです。
パッチの当て方はこのファイルの先頭にも書いてありますが、簡単に紹介 すると、次のようになります。
- BIND 9.2.1 のソースのトップディレクトリ
(
README
というファイルがあるディレクトリです) に移動します。% cd /somewhere/.../bind-9.2.1
-
patch
コマンドを使用してソースにパッチを当てます。% patch -p0 < $IDNTOP/patch/bind9/bind-9.2.1-patch
パッチを当てたあとは BIND 9 のソース中の README.idnkit
を
ご覧ください。コンパイル、インストール方法などが書かれています。
パッチを当てた BIND 9 をコンパイルするには、あらかじめ idnkit を コンパイルおよびインストールしておいてください。
Squid 用パッチの適用とインストール
展開したソースの中の $IDNTOP/patch/squid/squid-2.3.STABLE3-patch
が
Squid 2.4.STABLE1 に対する 8ビットスルーパッチです。
パッチの当て方はこのファイルの先頭にも書いてありますが、簡単に紹介すると、
次のようになります。
- Squid 2.3.STABLE3 のソースのトップディレクトリ (
README
ファイルがあるディレクトリです) に移動します。% cd /somewhere/.../squid-2.3.STABLE3
-
patch
コマンドを使用してソースにパッチを当てます。% patch -p1 < $IDNTOP/patch/squid/squid-2.3.STABLE3-patch
パッチを当てたら、あとは通常の Squid のインストール方法にしたがって
コンパイルとインストールを行ってください。インストール方法は
Squid のソースに含まれる INSTALL
ファイルに書かれています。
Squid 用のパッチは単に 8ビットスルーにするだけで、idnkit の ライブラリ等は使用しません。 したがって、あらかじめ idnkit をインストールしておく必要はありません。