• ベストアンサー

ports/packages のインストールと./configure

FreeBSD 6.1-RELEASE を利用しております。 現在Apache1.3.34_4 PHP4.4.2.1 postgreSQL7.4.12を インストールするために悪戦苦闘しております。 初歩の初歩なんですが、FreeBSDで利用できるports/packagesを インストールしたとき(make install もしくは pkg_add) 作られる(インストールされる)プログラムファイル本体は どのディレクトリに格納されるのでしょうか。 Windowsで言うところのc:\Program files\ みたいなディレクトリは 決まっているのでしょうか。 また、マニュアルに./configure ~~~ で環境設定をしてください と書いてあるとおりに、# ./configure~~ とやってもなにも起こり ません。./がディレクトリの位置を示しているんだとしたら、これは そもそもどこが基準になってるのでしょうか。 見当違いで答えにくいかもしれませんが宜しくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.3

> 最後に恐縮ですが、#pkg_add でバイナリデータを > 直接持ってきた場合は環境設定できるかどうか教えてください。 > > (これまでのお話を伺う限り、コンパイル前に設定しなければ > ならない処理である./configure設定を必要とする > アプリケーションはpackagesで入手すること自体、間違ってて、 > ports、もしくはtarなどでソースを入手しなさい、ってことっぽいですが) 「環境設定」したい内容がどういうものかによります。 今まで回答している通り、コンパイル済みのパッケージでは 「./configure」に相当する処理はもう行うことは出来ませんが、 「./configure」で設定した設定値を、設定ファイル(PHPなら、php.ini)で、 上書きすることが出来ることがあります。 (つまり、php.iniに書けばその値が有効になり、 指定しなければ、./configureで指定した値が有効になるという意味です。) ただし、./configureでしか設定出来ない設定もあり得ます。 具体的にどのようなカスタマイズが必要ですか?

nekobuster
質問者

補足

ありがとうございます。 今回詰まってるところはPHP4.4.2.1のインストールに際して #./configure --enable-mbstring --enable-mbstr-enc-trans --with-pgsql=/usr/local --enable-track-vars --with-apxs=/usr/local/sbin/apxs --without-gd --enable-trans-sid を設定しなさい、との事でした。

その他の回答 (3)

  • Lean
  • ベストアンサー率72% (435/603)
回答No.4

>#./configure --enable-mbstring --enable-mbstr-enc-trans --with-pgsql=/usr/local --enable-track-vars --with-apxs=/usr/local/sbin/apxs --without-gd --enable-trans-sid と同じ事をパッケージだけで行うなら以下のような感じかな。 > --with-apxs=/usr/local/sbin/apxs --without-gd  → パッケージ php4-4.4.2_1 をインストール    Apche 1.3用モジュール含む    FreeBSDのPorts/Pacakgesでは--disable-allで作成されるので、PHP拡張モジュールは別途パッケージでインストールする必要あり。 >--enable-mbstring  → パッケージ php4-mbstring-4.4.2_1 をインストール >--enable-mbstr-enc-trans  → 4.3.0以降廃止。    php.ini で mbstring.encoding_translation を On (デフォルトはOff) > --with-pgsql=/usr/local  → パッケージ php4-pgsql-4.4.2_1 をインストール > --enable-track-vars > --enable-trans-sid  → PHP4のconfigureのオプションにはない。

nekobuster
質問者

お礼

細かい点まで、ご指摘ありがとうございます。なにぶん手元の マニュアルも古いものでしたので大変助かりました。 ありがとうございます。

回答No.2

> つまり./configureはコンパイル前にしか使えないないのでしょうか はい。そうです。 > そもそも、./configure っていうのがなんなのか、どこにある > ものなのかがわかりません。 PHP(に限らず./configre式でビルド可能な多くのフリーソフトウェア)の場合、 配布されているソース(*.tar.gzや*.tar.bz2等)から、 以下のような手順でインストール出来ます。 >cd /tmp >tar xvjf php-4.4.4.tar.bz2 >cd php-4.4.4 >./configure >make >make install 「./configure」は「Makefile」(makeで使用します)を、マシン環境に 応じて自動作成します。 ちなみにportsを使うと上記の作業は自動的に行われます。 portsを使うメリットは、 (1)FreeBSD用のパッチを当ててくれる。 (2)依存関係(例:XXXを使うためにはYYYが必要)のあるプログラムを 自動的に構築してくれる。 (3)インストール状態は「/var/db/pkg/*」以下で管理され、 「pkg_*」コマンド群でメンテナンス出来る。 などです。

nekobuster
質問者

補足

概ね、理解できました(と思います) 重ね重ねありがとうございました。 最後に恐縮ですが、#pkg_add でバイナリデータを 直接持ってきた場合は環境設定できるかどうか教えてください。 (これまでのお話を伺う限り、コンパイル前に設定しなければ ならない処理である./configure設定を必要とする アプリケーションはpackagesで入手すること自体、間違ってて、 ports、もしくはtarなどでソースを入手しなさい、ってことっぽいですが)

回答No.1

> 初歩の初歩なんですが、FreeBSDで利用できるports/packagesを > インストールしたとき(make install もしくは pkg_add) > 作られる(インストールされる)プログラムファイル本体は > どのディレクトリに格納されるのでしょうか。 > Windowsで言うところのc:\Program files\ みたいなディレクトリは > 決まっているのでしょうか。 /usr/local/*以下(または/usr/X11R6/*以下)にインストールされます。 > また、マニュアルに./configure ~~~で環境設定をしてください > と書いてあるとおりに、# ./configure~~とやってもなにも起こり > ません。./がディレクトリの位置を示しているんだとしたら、これは > そもそもどこが基準になってるのでしょうか。 portsの場合、./configureを行う部分が自動化されているので ./configureの実行はportsに任せた方が良いです。 portsツリー上にある「Makefile」、「pkg-message」等を調べてみると、 ./configureで変更できる項目の代わりに指定できるmake変数が 見つかることもあるので、出来ればそれを使います。 >cd /usr/ports/www/apache13 >make install APACHE_DOCUMENT_ROOT="/alter/wwwroot" 対応するmake変数が無い場合、Makefile(の中の「CONFIGURE_ARGS」等)を 書き換えてしまう手もあります。

nekobuster
質問者

補足

前者については、よくわかりました。ありがとうございます。 portsについて、./configureをmakeで代用するとのことですが、 たとえば、PHP4.4.2.1 のように、Webからのダウンロード、ports、 #pkg_add と複数の方法で提供されているソフトウェアの場合、 #pkg_addでコンパイル済みのデータをインストールしたとき、 ./configureに相当する環境設定方法があるのでしょうか。 (tbz tgzなどの圧縮ファイル、portsはソースコードを手元の FreeBSDでコンパイル後インストール。packagesはコンパイル済みの プログラムをダウンロードしてインストールすると認識しています。 つまり./configureはコンパイル前にしか使えないないのでしょうか) そもそも、./configure っていうのがなんなのか、どこにある ものなのかがわかりません。

関連するQ&A