FreeBSDでpearを入れようとしています。


そこで

pear
pear list

などを入力してみたところ、

/libexec/ld-elf.so.1: Shared object "libmysqlclient.so.12" not found, required by "php"

というエラーが発生し、何も行なえませんでした。

php4/perl/mysql5などを、ソースからコンパイルしてインストールしています。

freebsdは5です。

portsの中にdevel/以下にpear-なんたら
というのが沢山あって、どれを先ずインストールしていいのかわかりません。
(必要なものだけ?)

こういう場合は、どうすればいいのでしょうか?

回答の条件
  • 1人2回まで
  • 登録:
  • 終了:2007/05/19 15:47:50
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

ベストアンサー

id:toohigh No.3

回答回数291ベストアンサー獲得回数37

ポイント100pt

pear がエラーを出している、というよりは pear 自体が php で動いていて、その php 自身がエラーを出している、という状況ですね。

エラーメッセージの内容そのものは、「php が mysql 用のライブラリを見つけられない」という感じになっています。


対処法でいうなら、以下の三つのうちいずれかを選ばれるのが良いかと思います。


  • ソースからではなく、全面的に ports を使う (一部分だけ自分で make する場合は ports との整合性を取れるように configure オプションなどを選ぶ必要あり)
  • php をインストールする際の configure のオプションで --with-mysql=/usr/local とかを指定する

http://www.atmarkit.co.jp/flinux/rensai/mysql05/mysql05a.html

  • mysql のインストールの段階で php が素直に mysql を探せるような場所にインストールしておく(その場合、標準のパッケージ管理を用いたものと場所的に競合するはずなのでお勧めしませんが・・)
id:onigirin

どうもありがとうございます。

そういえば、最近mysqlをバージョンアップさせたので、それが原因かもしれません。

今のサーバーはソースでインストールしてしまっているので混乱しそうなので、2番目のオプションで試したところ、無事動きました!

とても助かりました。どうもありがとうございました!

2007/05/19 15:44:58

その他の回答2件)

id:b-wind No.1

回答回数3344ベストアンサー獲得回数440

ポイント13pt

portsの中にdevel/以下にpear-なんたら

というのが沢山あって、どれを先ずインストールしていいのかわかりません。

どの順番でもいい。

必要であれば ports が勝手に色々入れてくれるから。


ただ、できるだけ ports だけで管理した方があとあと都合がよいので、

php4/perl/mysql5などを、ソースからコンパイルしてインストールしています。

このあたりは ports から入れなおしたほうが無難。

id:onigirin

ありがとうございます。

portsからpearの必要な物を入れればいいということですね。

mysql等はportsではうまく自分のやりたいことを実現できなかったので、

今はソースを使っています。

portsだと何故か動かないことがよくあったので・・・。

2007/05/18 23:14:20
id:b-wind No.2

回答回数3344ベストアンサー獲得回数440

ポイント13pt

ports もソースからコンパイルする形なので、実は結構カスタマイズできる。

Makefile の中身が読めれば分かるのだが、make のオプション等で大抵のことは可能です。

それでも無理のの場合 ports のディレクトリごと /usr/ports/local などにコピーして自分用 ports を作る事も可能。


どこがうまくいかないかを出してくれれば例ぐらいは出せると思いますが?

id:onigirin

ありがとうございます。

portsupgradeした後に、portsからHTML_Commonのインストールを試みましたが、同じエラーが出ました。

===> Installing documentation in /usr/local/share/doc/pear/Archive_Tar.

/libexec/ld-elf.so.1: Shared object "libmysqlclient.so.12" not found, required by "php"

Error code 1

postfixやmysqlなどいろいろインストールしていて、FreeBSDに慣れていなくて動かなかったことしか覚えていないんです・・・。

気分一新してソースコンパイルしたらうまくいったので、それ以来ずっとソース使ってます。

たぶん、portsでインストールした場合のそれぞれのソフトのインストール状況の説明が載っていないので、自力解読が厳しいので情報があるソースコンパイルにしている気がします。。。

2007/05/19 04:06:56
id:toohigh No.3

回答回数291ベストアンサー獲得回数37ここでベストアンサー

ポイント100pt

pear がエラーを出している、というよりは pear 自体が php で動いていて、その php 自身がエラーを出している、という状況ですね。

エラーメッセージの内容そのものは、「php が mysql 用のライブラリを見つけられない」という感じになっています。


対処法でいうなら、以下の三つのうちいずれかを選ばれるのが良いかと思います。


  • ソースからではなく、全面的に ports を使う (一部分だけ自分で make する場合は ports との整合性を取れるように configure オプションなどを選ぶ必要あり)
  • php をインストールする際の configure のオプションで --with-mysql=/usr/local とかを指定する

http://www.atmarkit.co.jp/flinux/rensai/mysql05/mysql05a.html

  • mysql のインストールの段階で php が素直に mysql を探せるような場所にインストールしておく(その場合、標準のパッケージ管理を用いたものと場所的に競合するはずなのでお勧めしませんが・・)
id:onigirin

どうもありがとうございます。

そういえば、最近mysqlをバージョンアップさせたので、それが原因かもしれません。

今のサーバーはソースでインストールしてしまっているので混乱しそうなので、2番目のオプションで試したところ、無事動きました!

とても助かりました。どうもありがとうございました!

2007/05/19 15:44:58

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません