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.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 ) と通常用のオプション
(--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
オプションを使用します。