linuxのライブラリ&インストールに関する質問です。


まずprogram_aをソースからmake install時に、prefix=/usr/local/program_aとしてインストール完了しました。
次に、program_aのインストール先を/usr/local/program_commonに変更したいと思い、”make uninstallする前に”make install --prefix=/usr/local/program_commonし(てしまい)ました。

この後、program_aのライブラリを必要とするprogram_bをmakeしようとすると、古いライブラリのパスが認識され(/usr/local/program_a)、正しくインストールされません。

/usr/local/program_commonヘprogram_aをインストールするために必要な修復作業を教えてください。

program_aの/usr/local/program_commonへのインストール自体は成功するのでライブラリの依存関係?さえ解決できればいいのかな、と思います。
おそらくmake uninstallする前にmake installしたのが関係していると思います。また、ldconfigやlibtool等が関係するのではないかと考えています。

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:
  • 終了:--
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答1件)

id:makeworld No.1

回答回数75ベストアンサー獲得回数23

ポイント100pt

http://www.linuxworld.jp/etc/-/10768.html

LinuxWorld Online - 第13回 /etc/ld.so.conf

ファイル/etc/ld.so.confに/usr/local/program_aへのパスが残っていて、そこに対象のライブラリが存在すると、/usr/local/program_aのライブラリをリンクしてしまうと思います。


/etc/ld.so.confを修正後、/sbin/ldconfigを実行すれば解決するかもしれません。


autoconfが/etc/ld.so.confを見てるかもしれないので、program_bは./configureから再実行された方が良いと思います。

cd program_b

make distclean

./configure --prefix=/usr/local/program_common

make

make install

id:koyachi

ld.so.cacheに残ってたのが原因だったようです。

ありがとうございました。

2005/09/23 15:34:12

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

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

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

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

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