UNIX環境でidnkitをソースからのインストールする手順について説明します。 ここではソースからのインストール方法について説明します。
インストールの後は、必要に応じて「idnkitの設定」 を参照して設定を行って下さい。 また、DNSサーバに国際化ドメインのゾーン情報をセットする場合は、 「DNSサーバの設定」を参照して下さい。
idnkitのコンパイルおよびインストール手順について説明します。 配布ソースからのインストール手順は、次のようになります。
以下、この順番に沿って説明していきます。
idnkitでは、ISO8859-1, EUC-JPなど様々なローカルエンコーディングで記述
されたドメイン名のエンコーディングを変換するために、iconv()
という関数を使用します。
iconv()は汎用のエンコーディング変換関数ですが、標準で
提供されているシステムとそうでないシステムがあります。
標準で提供されていないシステムでは、idnkitのインストールに先立って
iconv()をインストールしなければなりません。
また、idnkitはiconv()がUTF-8エンコーディングをサポート
していることを要求します。
システム付属のiconv()がUTF-8をサポートしていない場合には、
別途UTF-8に対応したiconv()をインストールする必要があります。
UTF-8に対応したiconv()のフリーな実装としては、たとえば
GNU libiconvがあります。
ソースコードは、下記のページから入手することができます。
GNU libiconvはLGPLに基づいたフリーソフトウェアで、多くのUNIX系OS
で動作します。
GNU libiconvのインストール方法については上記ページか、あるいは
ソースコードに含まれるINSTALL.genericファイルをご覧下さい。
ただし、軽量版のライブラリ (libidnkitlite) だけをインストールするので
あれば、iconv()を含むライブラリは必要ありません。
その場合は後述するconfigureスクリプトの実行時に、
--enable-liteonlyオプション
を指定して下さい。
idnkitに関する最新情報は以下の場所から入手可能で、 最新のソースコードもここからダウンロードできます。
ここでは、最新版のバージョンが2.1であるものとします。 より新しい版が入手できる場合はそちらを利用し、以下「2.1」と書かれた 箇所は適宜読み替えて下さい。
入手したidnkitの配布ソースidnkit-2.1.tar.bz2を次の
ようにして展開します。
% bunzip2 -c idnkit-2.1.tar.bz2 | tar xf -
展開すると、idnkit-2.1というディレクトリが作られますので、
そこに移動して下さい。
% cd idnkit-2.1
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) と通常用のオプション
(--with-iconv-include, --with-iconv) を両方
とも指定した場合は、通常用のオプションほうが優先されます。
なお、このオプションは--enable-liteonlyと同時に指定する
ことはできません。
|
--with-iconv-include=ICONV_INCDIR
| Cコンパイラが通常では検索しないディレクトリにiconv.h
が置かれている場合、次のようにしてそのディレクトリを指定します。
なお、このオプションは --enable-liteonlyと同時に指定する
ことはできません。
|
--with-iconv=ICONV_LIB
| システムにiconv()が組み込まれていない、あるいは
システムのiconv()を使いたくないなどの理由で別途
iconv()のパッケージをインストールした場合は、
ICONV_LIBにiconv()のライブラリを指定します。
ライブラリファイルを絶対パスで指定するか、あるいはCコンパイラに与える
オプションの形式で指定して下さい。
たとえば
のように指定します。 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/man1や
MANDIR/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
makeやmake 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オプションを使用します。