[left] [up] [right]

idnkitのインストール

UNIX環境でidnkitをソースからのインストールする手順について説明します。 ここではソースからのインストール方法について説明します。

インストールの後は、必要に応じて「idnkitの設定」 を参照して設定を行って下さい。 また、DNSサーバに国際化ドメインのゾーン情報をセットする場合は、 「DNSサーバの設定」を参照して下さい。

idnkitのインストール手順

idnkitのコンパイルおよびインストール手順について説明します。 配布ソースからのインストール手順は、次のようになります。

  1. 前準備
  2. 配布ソースの展開
  3. configureスクリプトの実行
  4. コンパイル
  5. テスト (省略可)
  6. ファイルのインストール
  7. 後片付け (省略可)

以下、この順番に沿って説明していきます。

前準備

idnkitでは、ISO8859-1, EUC-JPなど様々なローカルエンコーディングで記述 されたドメイン名のエンコーディングを変換するために、iconv() という関数を使用します。

iconv()は汎用のエンコーディング変換関数ですが、標準で 提供されているシステムとそうでないシステムがあります。 標準で提供されていないシステムでは、idnkitのインストールに先立って iconv()をインストールしなければなりません。 また、idnkitはiconv()がUTF-8エンコーディングをサポート していることを要求します。 システム付属のiconv()がUTF-8をサポートしていない場合には、 別途UTF-8に対応したiconv()をインストールする必要があります。

UTF-8に対応したiconv()のフリーな実装としては、たとえば GNU libiconvがあります。 ソースコードは、下記のページから入手することができます。

http://www.gnu.org/software/libiconv/

GNU libiconvはLGPLに基づいたフリーソフトウェアで、多くのUNIX系OS で動作します。 GNU libiconvのインストール方法については上記ページか、あるいは ソースコードに含まれるINSTALL.genericファイルをご覧下さい。

ただし、軽量版のライブラリ (libidnkitlite) だけをインストールするので あれば、iconv()を含むライブラリは必要ありません。 その場合は後述するconfigureスクリプトの実行時に、 --enable-liteonlyオプション を指定して下さい。

配布ソースの展開

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

http://jprs.co.jp/idn/

ここでは、最新版のバージョンが2.3であるものとします。 より新しい版が入手できる場合はそちらを利用し、以下「2.3」と書かれた 箇所は適宜読み替えて下さい。

入手したidnkitの配布ソースidnkit-2.3.tar.bz2を次の ようにして展開します。

% bunzip2 -c idnkit-2.3.tar.bz2 | tar xf -

展開すると、idnkit-2.3というディレクトリが作られますので、 そこに移動して下さい。

% cd idnkit-2.3

configureの実行

idnkitのライブラリやコマンドをコンパイルします。 まず、configureスクリプトを実行します。 configureはヘッダファイルやライブラリの有無など、システム毎の 特徴を調べ、コンパイル環境を適切に設定するためのツールです。

% ./configure

軽量版ライブラリのみをインストールしたい場合や、iconv() を含むライブラリの存在位置を指定しなければいけない場合、あるいは コンパイル時に特別なオプションを指定したい場合は、オプションや環境変数 でconfigureで指定します。

configureに指定できるオプションの中で、重要と思われるもの を記します。

オプション 説明
--prefix=PREFIX idnkitをインストールするディレクトリのパスを指定します。デフォルト は/usr/localです。
--enable-liteonly ローカルエンコーディングへの対応を省いた、軽量版ライブラリのみを インストールします。iconv()に関するオプションと同時に 指定することはできません。
--with-libiconv=LIBICONV_PREFIX あらかじめインストールしてあるGNU libiconvをidnkitにリンクさせる 場合、このオプションを指定します。 引数LIBICONV_PREFIXには、GNU libiconvがインストールされて いる位置を指定します。 このオプションを指定しなくても、configureはGNU libiconv の自動検出を行いますが、GNU libiconvのインストール位置によっては、検出 できないことがあります。 その場合は、このオプションで位置を明示して下さい。 また、システム付属のiconv()が存在する環境で、敢えて 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_LIBiconv()のライブラリを指定します。 ライブラリファイルを絶対パスで指定するか、あるいはCコンパイラに与える オプションの形式で指定して下さい。 たとえば

--with-iconv="-L/usr/local/lib -liconv"

のように指定します。 iconv()が共有ライブラリになっている場合には、さらに Cコンパイラのオプションをいくつか指定する必要があるかも知れません。 なお、このオプションは--enable-liteonlyと同時に指定する ことはできません。
--with-utf8=UTF8_NAME UTF-8エンコーディングをiconv()に指定する場合、 idnkitはデフォルトで"UTF-8"というエンコーディング名称を 使用します。これ以外のエンコーディング名称を指定する必要があれば、 このオプションで名称をセットします。 GNU libiconvを使用する場合には、このオプションの指定は不要です。

その他のconfigureのオプション

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

オプション 説明
--exec-prefix=EXEC_PREFIX マシン固有のファイルをインストールするディレクトリのパスを指定します。 デフォルトはPREFIX (--prefix=PREFIX によって指定可能、PREFIXのデフォルトは /usr/local) になります。
--bindir=BINDIR idnconv2, idncmp, idncheck, idnslookup2の各コマンドを インストールするディレクトリを指定します。 デフォルトではEXEC_PREFIX/binにインストール されます。
--libdir=LIBDIR idnkitのライブラリをインストールするディレクトリを指定します。 デフォルトではEXEC_PREFIX/libにインストール されます。
--includedir=INCDIR idnkitのライブラリのヘッダファイルをインストールするディレクトリ を指定します。 デフォルトではPREFIX/includeにインストール されます。
--sysconfdir=SYSCONFDIR idnkitの設定ファイルをインストールするディレクトリを指定します。 デフォルトではPREFIX/etcにインストールされます。
--mandir=MANDIR マニュアルをインストールするベースディレクトリを指定します。 デフォルトではPREFIX/manです。実際には さらにその下のMANDIR/man1MANDIR/man3, MANDIR/man5 にファイルがインストールされます。
--datadir=DATADIR 異なるマシンで共有可能なファイルをインストールするディレクトリを指定 します。デフォルトはPREFIX/shareです。 実際にはその下のDATADIR/idnkit/map にファイルがインストールされます。
--enable-shared 共有ライブラリを作成します。デフォルトは有効 (yes) に なっています。
--enable-static 静的ライブラリを作成します。デフォルトは有効 (yes) に なっています。

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

% ./configure --help

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

configureに関係する環境変数

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

環境変数 説明
CC Cコンパイラのコマンド名を指定します。
CPPFLAGS Cコンパイラに渡すプリプロセス (前処理) オプションを指定します。 たとえば、"-I/usr/local/include" を指定することで、 インクルードパスに/usr/local/includeを加えるよう指示 します。
CFLAGS Cコンパイラに渡すコンパイルオプションを指定します。たとえば GCCを使用しているのであれば、"-O3" を指定することで 最適化レベル3でコンパイルが行われるようになります。
LDFLAGS Cコンパイラに渡すリンクオプションを指定します。たとえば GCCを使用しているのであれば、"-L/usr/local/lib" を指定する ことでライブラリのサーチパスに "/usr/local/lib" を加えるよう 指示します。
PERL Perlのコマンド名を指定します。

csh系のシェルの場合、これらの環境変数をセットするには、

% setenv CFLAGS -O3

のようにします。またsh系のシェルの場合には

% CFLAGS=-O3
% export CFLAGS

のようにします。

コンパイル

makeコマンドを実行して、ライブラリやコマンドを生成します。

% make

テスト

テストプログラムをコンパイルし、実行します。 この工程は、省略しても構いません。 テストムの実行には、Perlが必要です。 また、軽量版のライブラリのみをコンパイルした場合は、テストを行うこと はできません。(警告メッセージが表示され、全件が失敗します。)

% make check

実行すると、次のような表示を含むメッセージが大量に出力されます。 「PASS:」「FAIL:」「SKIP:」と書かれた行が、テスト項目一件に相当し、 それぞれ成功、失敗、テスト省略を意味します。

PASS: checkname_0001.sh
PASS: checkname_0002.sh
PASS: checkname_0003.sh
PASS: checkname_0004.sh
PASS: checkname_0005.sh
==================
All 5 tests passed
==================

ファイルのインストール

コンパイルが終了したら、実行ファイルなどのインストールを行います。 sudoコマンドを使う場合は、次のようにします。

% sudo make install

suコマンドを用いる場合は、代わりに次のようにします。

% su
# make install

後片付け

makemake testによって生成されたファイルを idnkitのソースディレクトリから削除するには、make cleanを 実行して下さい。 (make installの際にインストールされたファイルは、削除 されません。) この工程は、省略しても構いません。

# make clean

configureで生成されたファイルも一緒に削除したいときは、 代わりにmake distcleanを実行します。

# make distclean

make distcleanを行えば、このソースディレクトリを使って、 前回とは異なるOS向けにconfigureの実行およびidnkitの コンパイルを行うことができるようになります。

インストールされるファイルの一覧

make installによってインストールされるファイルは以下の 通りです。

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

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

ファイル名 説明
idnconv2 idnconv2コマンド
idnslookup2 idnslookup2スクリプト
idncmp idncmpコマンド
idncheck idncheckコマンド

これらはデフォルトで/usr/local/binにインストールされます。 インストール先を変えるには configure--bindir オプションを使用します。 ただし軽量ライブラリのみをインストールした場合、これらはインストールされ ません。

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

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

ファイル名 説明
idnconv2.1 idnconv2コマンドのマニュアル
idncmp.1 idncmpコマンドのマニュアル
idncheck.1 idncheckコマンドのマニュアル
libidnkit.3 idnkitライブラリの概要を記したマニュアル
libidnkitlite.3 idnkitliteライブラリの概要を記したマニュアル
(内容はlibidnkit.3と同一)
idn_checkname.3 idn_checkname()関数のマニュアル
idn_comparenames.3 idn_comparenames()関数のマニュアル
idn_comparenames2.3 idn_comparenames2()関数のマニュアル
(内容はidn_comparenames.3と同一)
idn_decodename.3 idn_decodename()関数のマニュアル
idn_decodename2.3 idn_decodename2()関数のマニュアル
(内容はidn_decodename.3と同一)
idn_encodename.3 idn_encodename()関数のマニュアル
idn_nameinit.3 idn_nameinit()関数のマニュアル
idn_result_tostring.3 idn_result_tostring()関数のマニュアル
idn_setlanguage.3 idn_setlanguage()関数のマニュアル
idn_setlocalcheckfile.3 idn_setlocalcheckfile()関数のマニュアル
idn_setlocalencoding.3 idn_setlocalencoding()関数のマニュアル
idn_version_getstring.3 idn_version_getstring()関数のマニュアル
idn_version_idnatable.3 idn_version_idnatable()関数のマニュアル
(内容はidn_version_idnatable.3と同一)
idn_version_libidn.3 idn_version_libidn()関数のマニュアル
(内容はidn_version_idnatable.3と同一)
idn_version_unicode.3 idn_version_unicode()関数のマニュアル
(内容はidn_version_idnatable.3と同一)
idn2.conf.5 設定ファイルidn2.confのマニュアル
idn2rc.5 設定ファイル.idn2rcのマニュアル
(内容はidn2.conf.5と同一)
idnalias.conf.5 設定ファイルidnalias.confのマニュアル
idnlang.conf.5 設定ファイルidnlang.confのマニュアル

デフォルトでは /usr/local/man/man1/usr/local/man/man3/usr/local/man/man5 にそれぞれインストールされます。 インストール先を変えるには、configure--mandirオプションを使用します。 ただし軽量ライブラリのみをインストールした場合、 idnconv2.1, idncmp.1, idncheck.1, libidnkit.3はインストールされません。

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

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

ファイル名 説明
idn2.conf.sample idnkitの設定ファイルidn2.confのサンプル
idnalias.conf.sample エンコーディング別名定義ファイル idnalias.confのサンプル
idnlang.conf.sample 言語別名定義ファイル idnlang.confのサンプル
idn2.conf idnkitの設定ファイル
(内容はidn2.conf.sampleと同一)
idnalias.conf エンコーディング別名定義ファイル
(内容はidnalias.conf.sampleと同一)
idnlang.conf 言語別名定義ファイル
(内容はidnlang.conf.sampleと同一)

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

ただし、サンプルファイルは常にインストールされますが、それ以外のファイル はシステム上に存在しない場合に限って、インストールされます。

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

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

ファイル名 説明
libidnkit.拡張子 idnconv2等のコマンドが使用しているidnkitの基本ライブラリ
libidnkitlite.拡張子 libidnkitの軽量版

拡張子」の部分は、システムに応じて様々な名前になります。 静的ライブラリと共有ライブラリの両方をインストールした場合は、少なくとも 2つのファイルがインストールされます。

いずれのライブラリもデフォルトでは/usr/local/libに インストールされます。 インストール先を変えるには configure--libdirオプション を使用します。 ただし軽量ライブラリのみをインストールした場合、 libidnkit拡張子はインストールされません。

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

以下のヘッダファイルがインストールされます。

ファイル名 説明
api.h apiモジュール (高レベルAPI) のヘッダファイル
export.h WindowsのDLL生成支援用ヘッダファイル
res.h resモジュール (低レベルAPI) のヘッダファイル
resconf.h resconfモジュール (変換コンテキストAPI) のヘッダファイル
result.h resultモジュール (エラーコード定義) のヘッダファイル
version.h versionモジュール (バージョン情報API) のヘッダファイル

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

[left] [up] [right]