
Мне нужна помощь с установкой программного обеспечения.
В общем: я пытаюсь установить PostGIS на кластер (CentOS) и не имею прав администратора. Есть установка sqlite3 (подключенная к ошибке), но она, похоже, повреждена. Моя собственная обычно работает и (также по install-process) использовалась ранее.
Я не могу использовать 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
Одна из зависимостей (proj) ссылалась в своем .la файле на вредоносную версию sqlite3. Переустановка этой зависимости решила проблему.
В подобных случаях может помочь поиск «неправильного пути» в зависимостях:
find <deps lib dir> -type f -exec grep -l "<wrong path>" {} +
Почет и хвалаhttps://stackoverflow.com/a/62500481/14339502который высказал ценную подсказку, что «похоже, у вас есть какой-то другой файл .la, который ссылается на него».