プロが教える店舗&オフィスのセキュリティ対策術

Googleで2時間ほど探しまくりましたが、Linux用のlibintlのソースが見つからずに困っています。

PHPをビルドしたいのですが、PHPだけでなくPHPから利用するモジュールもlibintlが必要なようです。

Gnu gettextに含まれているというような英語のHPもみかけましたが、実際にgettextのconfigureオプションをみたら、gettextにはlibintlが含まれていないのは明らかでした。

ということで、すみませんが、本件に関する情報をお持ちの方、どうか宜しくお願い致します。

A 回答 (3件)

強制的に内部の libintl を使わせるオプション --with-included-gettext を付けて configure を実行すればインストールされます。

(当方で検証しました)

ただし、目的が完璧な PHP4 であるのであれば、わざわざ libintl をインストールする必要はありません。何故なら、glibc に libintl の機能が完全に包含されているからです。

ldd /usr/bin/gettext

とやってみてください。本来は gettext コマンド (gettext-tools に含まれます) は libintl を必要とするプログラムですが、libintl にはリンクされていないことが分かるでしょう。

Linux 上で --with-included-gettext オプションを付けないと libintl がインストールされないのも、「glibc にこの機能があるから、libintl のインストールは不要」と判断されたためです。(Solaris など、glibc を使用していない環境では、このオプションがなくても libintl は自動的にインストールされます)

あと、完璧にしたいのであれば、libintl は libiconv にも依存しているため、それもインストールする必要があります。しかしながら、libiconv の機能も glibc に含まれているため、わざわざインストールする必要がありません。(Solaris など、libiconv の機能がない libc が使用されている環境下で libintl をインストールすると libiconv がインストールされていない場合、コンパイルエラーとなります)

ちなみに、Linux 上で libiconv をコンパイルしても、glibc に含まれるものが優先されてしまい、うまくリンクしてくれなかったように思います。(libiconv には --with-included-libiconv オプションはありません)

この回答への補足

entreeさんへ

libiconvを使ってビルドしたものは、全てビルドしなおします。よって、先ほどのお願いは忘れてください。これにて、質問受付終了にさせて頂きます。どうも有難うございました。

いきなりcolinuxから始めているLinuxの超無謀な初心者です。colinuxでFC5をインストールしたときも、udevで嵌りまくりました。ここ1ヶ月Linuxと格闘ばかりしてます。

補足日時:2006/05/13 15:41
    • good
    • 0
この回答へのお礼

再度のレスありがとうございます。

今回のレスを頂く前に、libiconvは既にインストールしてしまっており、結局、PHPは--with-intl-dirなしでビルドしてしまいました。そしたら、libphp5.soがApache起動時にエラーを吐くので、Makefileに無理矢理-liconvを付け加えて再ビルドしてなんとかlibphp5.soでエラーがでないようにしました。

他にもlibiconvをリンクさせてビルドしたものがあるんですが、ビルドしなおした方がいいんでしょうか?
(できればこの点について再コメント頂けると幸いです)

それにしても、iconv、intl周りについてはおかげですっきりしました。glibcがあるから、敢えてこれらのオプションがいらないとは...。

有難うございました。

お礼日時:2006/05/13 15:03

GNU gettext の中に libintl は含まれています。

開発環境があるのであれば、コンパイルしてインストールする (gettext-runtime サブディレクトリだけで構いません) ことで libintl もインストールされます。

ただ、libintl に含まれている関数は glibc にも含まれているかと思いますが、それでも libintl が必要なのでしょうか?

ソースコードが見たいだけということでしたら、gettext-0.14.5/gettext-runtime/intl ディレクトリを参照してみてください。

参考URL:http://ftp.gnu.org/gnu/gettext/
    • good
    • 0
この回答へのお礼

レス有難うございます。

私がconfigureオプションを確認したのは、ご指摘のgettext-0.14.5です。さらに、gettext-runtimeのconfigureオプションにも--with-libintl-prefix[=DIR]
があり、gettext-runtime以下にlibintlがあるとは思えません。実際に、gettext-runtimeで引数なしでconfigure、make、make install後、ldconfigで確認してもlibintlはインストールされていませんでした。

>libintl に含まれている関数は glibc にも含まれているかと思いますが、それでも libintl が必要なのでしょうか?

そこら辺が実はよく分からないんです。フルスペックに近いPHPをビルドしたいので、可能な限りの--with-*オプションをつけてビルドしようとしているだけなんですが、libintlに関するオプションはつけなくてもglibcの関数が使われて--with-libintlをつけようがつけまいが出来上がったPHPに機能差はないのでしょうか?(glibcのバージョンは2.4です)

お礼日時:2006/05/13 07:47

glibc?

    • good
    • 0
この回答へのお礼

レスありがとうございます。

ですが、glibcには残念ながらlibintlは含まれていないようです。

お礼日時:2006/05/11 20:17

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!