パスが指定されているのに Libtool が間違ったディレクトリを検索する

パスが指定されているのに Libtool が間違ったディレクトリを検索する

ソフトウェアのインストールに関してサポートが必要です。

一般的には、クラスター (CentOS) に PostGIS をインストールしようとしていますが、管理者権限がありません。sqlite3 インストール (エラーに関連) がありますが、これは破損しているようです。私のインストールは通常は機能し、(インストール プロセスによっても) 以前に使用されていました。

yum が使えません。

詳細に:

MakeFiles をビルドするために、必要になると思われるフラグを設定しました。

./configure --prefix="$HOME/.local" CFLAGS="-I$HOME/.local/include" LDFLAGS="-L$HOME/.local/lib" LT_SYS_LIBRARY_PATH="$HOME/.local/lib" LIBS="-L$HOME/.local/lib" SQLITE3_CFLAGS="-I$HOME/.local/include" SQLITE3_LIBS="-L$HOME/.local/lib"

しかし、make を実行すると次のエラーがスローされます。

/usr/bin/sed: can't read /usr/local/lib/libsqlite3.la: No such file or directory

libtool: error: '/usr/local/lib/libsqlite3.la' is not a valid libtool archive

直後(ただし、関連性はわかりません):

libtool: link: ranlib .libs/liblwgeom.a

もう一度 make を実行すると、そのディレクトリにジャンプします。しかし、同様のエラーでスタックします (もう一度 make を実行してもジャンプしません)。

/bin/sh ../../libtool --mode=link gcc -Wall -Wmissing-prototypes -std=gnu99 -I<exp. $HOME>/.local/include -fno-math-errno -fno-signed-zeros -fPIC -DPIC -I../rt_core -I../../liblwgeom -I<exp. $HOME>/.local/include -I/usr/include/gdal -I<exp. $HOME>/.local/include ../rt_core/librtcore.a raster2pgsql.o -L<exp. $HOME>/.local/lib -static ../../liblwgeom/liblwgeom.la -L/usr/lib64 -lgdal -L<exp. $HOME>/.local/lib -lgeos_c -lc -lm -o raster2pgsql

libtool: error: cannot find the library '/usr/local/lib/libsqlite3.la' or unhandled argument '/usr/local/lib/libsqlite3.la'

libtool が '/usr/local/lib/' を検索する理由がわかりません。libtool や MakeFiles にハードコードされているものは見つかりませんでした。私には何もわかりません。そして、これは私のスキルを超えています (どうやら)。

手伝ってもらえますか?

答え1

依存関係の 1 つ (proj) が、その .la ファイル内で悪意のある sqlite3 バージョンにリンクされています。この依存関係を再インストールすると、問題は解決しました。

同様のケースで役立つのは、依存関係内の「間違ったパス」を検索することです。

find <deps lib dir> -type f -exec grep -l "<wrong path>" {} +

称賛に値するhttps://stackoverflow.com/a/62500481/14339502「それを参照する他の .la ファイルがあるようです」という貴重なヒントを述べました。

関連情報