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

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

ロゴ:JPNIC

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

idnkit のインストール


概要

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

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

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

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

インストールの後は、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"

のように指定します。iconv が共有ライブラリになっている場合には、 -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 です。実際にはこの ディレクトリのサブディレクトリの man1man5 にインストールされます。
--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

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

% 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 に対するパッチです。

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

  1. BIND 8.3.3 のソースのトップディレクトリ (INSTALL というファイルが置かれているディレクトリ) に移動 します。

    % cd /somewhere/.../bind-8.3.3/src

  2. 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 に 対するパッチです。

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

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

    % cd /somewhere/.../bind-9.2.1

  2. 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ビットスルーパッチです。 パッチの当て方はこのファイルの先頭にも書いてありますが、簡単に紹介すると、 次のようになります。

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

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

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

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

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

Squid 用のパッチは単に 8ビットスルーにするだけで、idnkit の ライブラリ等は使用しません。 したがって、あらかじめ idnkit をインストールしておく必要はありません。

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

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

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

ロゴ:JPNIC

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