libiconv のインストール
(Mac OSX)

libiconv は、JIS, EUC, SJIS, Unicode などの文字コード変換をするライブラリです。


  1. まえがき
  2. インストール
  3. 設定
  4. 使い方

関連するページはこちら、

MacOSX & Cygwin on Windows のソフトの事


1. まえがき

manpage より

namazu、gnuplot、octave 等のビルドに必用です。

OSX には、標準で含まれます。が、http://www.gnu.org/software/libiconv/ によると、gettext との依存関係がインストール上の最大の留意点なのに、OSX には、gettext がインストールされていません。これでは、OSX 標準の libiconv のビルドレベルが判かりません。

そこで、gnu libiconv をインストールする亊にしました。


2. インストール

2.1. References

Homepage
http://www.gnu.org/software/libiconv/
Source
ftp://ftp.gnu.org/gnu/libiconv
Dependency
GetText

2.2. make & install

Cygwin ディストリビューションには含まれています。


MacOSX の場合

$ ./configure
$ make
$ sudo make install

この時の依存関係は、

$ otool -L /usr/local/bin/iconv
/usr/local/bin/iconv:
	/usr/local/lib/libiconv.2.dylib (compatibility version 7.0.0, current version 7.0.0)
	/usr/lib/libgcc_s.1.dylib (compatibility version 1.0.0, current version 1.0.0)
	/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 111.0.0)

この後、LibExpat ,GetText をインストールして、再び、

$ ./configure --with-libiconv-prefix=/usr/local --with-libintl-prefix=/usr/local
$ make
$ sudo make install

するだけ。因に、依存関係は、下のとおり。

$ otool -L /usr/local/bin/iconv
/usr/local/bin/iconv:
	/System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation (compatibility version 150.0.0, current version 476.0.0)
	/usr/local/lib/libiconv.2.dylib (compatibility version 7.0.0, current version 7.0.0)
	/usr/local/lib/libintl.8.dylib (compatibility version 9.0.0, current version 9.1.0)
	/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 111.0.0)
	/usr/lib/libgcc_s.1.dylib (compatibility version 1.0.0, current version 1.0.0)

又、2007-10-28 現在、バージョンは

$ iconv --version
iconv (GNU libiconv 1.11)
Copyright (C) 2000-2006 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
Written by Bruno Haible.


2.3. make & install

10.4 の時の、依存関係は、下のとおり。

$ otool -L /usr/local/bin/iconv
/usr/local/bin/iconv:
	/System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation (compatibility version 150.0.0, current version 368.28.0)
	/usr/local/lib/libintl.8.dylib (compatibility version 9.0.0, current version 9.1.0)
	/usr/local/lib/libiconv.2.dylib (compatibility version 7.0.0, current version 7.0.0)
	/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 88.5.1)

又、2007-06-16 現在、バージョンは

$ iconv --version
iconv (GNU libiconv 1.11)
Copyright (C) 2000-2006 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
Written by Bruno Haible.

最初の頃、強制的に Apple 由来の iconv を外していたんですが、匿名の方からお叱りのメールを頂きましたので、正攻法でやります。12


3. 設定

特に無し。


4.使い方

ヘルプから

$ iconv --help
Usage: iconv [OPTION...] [-f ENCODING] [-t ENCODING] [INPUTFILE...]
or:    iconv -l

Converts text from one encoding to another encoding.

Options controlling the input and output format:
  -f ENCODING, --from-code=ENCODING
                              the encoding of the input
  -t ENCODING, --to-code=ENCODING
                              the encoding of the output

Options controlling conversion problems:
  -c                          discard unconvertible characters
  --unicode-subst=FORMATSTRING
                              substitution for unconvertible Unicode characters
  --byte-subst=FORMATSTRING   substitution for unconvertible bytes
  --widechar-subst=FORMATSTRING
                              substitution for unconvertible wide characters

Options controlling error output:
  -s, --silent                suppress error messages about conversion problems

Informative output:
  -l, --list                  list the supported encodings
  --help                      display this help and exit
  --version                   output version information and exit

Report bugs to <bug-gnu-libiconv@gnu.org>.


1. 最初、下の様にしたんだけど、rosetta 経由のアプリケーションが動かない。

mv libiconv.2.dylib libiconv.2.dylib.orig
ln -s /usr/local/lib/libiconv.2.dylib libiconv.2.dylib

どうやら、libiconv.2.dylib を直接リンクしている apple 由来のアプリの為に、これは残したほうが良さそう。

こんな事しなくても、DYLD_LIBRARY_PATH、LD_LIBRARY_PATH、LIBRARY_PATH をうまく使って設定できるのかな?

2.「その後、Apple 由来の libiconv、iconv を外します。」で次のように書いてました。

$ su
$ cd /usr/lib
$ mv libiconv.dylib libiconv.dylib.orig
$ ln -s /usr/local/lib/libiconv.dylib libiconv.dylib
$ mv libiconv.la libiconv.la.orig
$ ln -s /usr/local/lib/libiconv.la libiconv.la
$ cd /usr/include
$ mv iconv.h iconv.h.orig
$ ln -s /usr/local/include/iconv.h iconv.h
$ cd /usr/bin
$ mv iconv iconv.orig
$ ln -s /usr/local/bin/iconv iconv