Рейтинг:0

PostGIS имеет неудовлетворенную зависимость от libgdal20; ручная компиляция не удалась (18.04 LTS)

флаг vn

Я пытаюсь установить PostGIS поверх PostgreSQL 13. У меня уже есть достаточно развитая экосистема ГИС, и я запускаю GDAL 3.0.4.

> дпкг -л | grep gdal

II gdal-bin 3.0.4+dfsg-1~bionic0
ii gdal-data 3.0.4+dfsg-1~bionic0
II libgdal-dev 3.0.4+dfsg-1~bionic0
II libgdal26 3.0.4+dfsg-1~bionic0
ii python3-gdal 3.0.4+dfsg-1~bionic0


> dzdo apt-get установить postgis postgresql-13-postgis-3

Чтение списков пакетов... Готово
Построение дерева зависимостей       
Чтение информации о состоянии... Готово
Не удалось установить некоторые пакеты. Это может означать, что у вас есть
запрошена невозможная ситуация или если вы используете нестабильную
дистрибутив, что некоторые необходимые пакеты еще не созданы
или был перемещен из входящих.
Следующая информация может помочь разрешить ситуацию:

Следующие пакеты имеют неудовлетворенные зависимости:
 postgis : зависит: libgdal20 (>= 2.0.1), но он не будет установлен
 postgresql-13-postgis-3 : Зависит: libgdal20 (>= 2.0.1), но не будет установлен
E: Невозможно исправить проблемы, у вас есть сломанные пакеты.

Странно, учитывая, что рекламируется, что PostGIS лучше всего работает с GDAL 3... но ладно, я сам его скомпилирую.

> wget https://download.osgeo.org/postgis/source/postgis-3.1.4.tar.gz
> tar xf postgis-3.1.4.tar.gz
> cd postgis-3.1.4
> ./configure --без protobuf
> make && dzdo make uninstall && dzdo make install

делать не работает при построении элементов, связанных с raster2pgsql:

make[2]: Вход в каталог '/home/USER/postgis-3.1.4/raster/loader'
/bin/bash ../../libtool --mode=link gcc -std=gnu99 -g -O2 -fno-math-errno -fno-signed-zeros -fPIC -DPIC -I../rt_core -I. ./../liblwgeom -I/usr/include/gdal -I/home/USER/anaconda3/include ../rt_core/librtcore.a raster2pgsql.o -lm -static ../../liblwgeom/liblwgeom.la -L/usr/lib -lgdal -L/home/USER/anaconda3/lib -lgeos_c -lc -o raster2pgsql
libtool: ссылка: gcc -std=gnu99 -g -O2 -fno-math-errno -fno-signed-zeros -fPIC -DPIC -I../rt_core -I../../liblwgeom -I/usr/include /gdal -I/home/USER/anaconda3/include raster2pgsql.o -o raster2pgsql ../rt_core/librtcore.a ../../liblwgeom/.libs/liblwgeom.a -lm -L/home/USER/anaconda3 /lib -lproj -ljson-c -L/usr/lib -lgdal -lgeos_c -lc
//usr/lib/x86_64-linux-gnu/libgeotiff.so.5: неопределенная ссылка на `_TIFFmemcpy@LIBTIFF_4.0'
/usr/lib/libgdal.so: неопределенная ссылка на `TIFFReadDirectory@LIBTIFF_4.0'
/usr/lib/libgdal.so: неопределенная ссылка на `TIFFClientdata@LIBTIFF_4.0'
//usr/lib/x86_64-linux-gnu/libgeotiff.so.5: неопределенная ссылка на `_TIFFrealloc@LIBTIFF_4.0'
//usr/lib/x86_64-linux-gnu/libgeotiff.so.5: неопределенная ссылка на `_TIFFmemset@LIBTIFF_4.0'
/usr/lib/libgdal.so: неопределенная ссылка на `TIFFLastDirectory@LIBTIFF_4.0'

(...) многие другие строки с той же ссылкой на @LIBTIFF_4.0

collect2: ошибка: ld вернул 1 статус выхода
Makefile:84: рецепт для цели raster2pgsql не удался
make[2]: *** [raster2pgsql] Ошибка 1
make[2]: Выход из каталога '/home/USER/postgis-3.1.4/raster/loader'
Makefile:35: рецепт для целевого «rtloader» не удался
make[1]: *** [rtloader] Ошибка 2
make[1]: Выход из каталога '/home/USER/postgis-3.1.4/raster'
GNUmakefile:22: рецепт для цели «все» не удался
сделать: *** [все] Ошибка 1

Ошибка предполагает, что некоторые отсутствуют libtiff4. Однако при попытке установить его:

> dzdo apt-get установить libtiff4
E: Не удалось найти пакет libtiff4

> dzdo apt-get установить libtiff4-dev
Пакет libtiff4-dev недоступен, но на него ссылается другой пакет.
Это может означать, что пакет отсутствует, устарел или
доступен только из другого источника
Однако следующие пакеты заменяют его:
  libtiff5-dev:i386 libtiff5-dev
E: Пакет «libtiff4-dev» не имеет кандидата на установку.

> dzdo apt-get установить libtiff5-dev
libtiff5-dev уже самая новая версия (4.0.9-5).

либертифф кажется, установлен, хотя в его версии 5. При рассмотрении возможности установки libgdal20 с способность, предлагаемые решения удалят многие пакеты ГИС, которые я использую, так что это не совсем вариант. Я не уверен, как действовать. Любая помощь приветствуется!

N0rbert avatar
флаг zw
Что не так с PostGIS 2.4.3 из [официального репозитория](https://packages.ubuntu.com/bionic/postgis)?
M2FKXY avatar
флаг vn
Для этого требуется libgdal20, который конфликтует с libgdal26, установленным на моей машине. Понижение версии GDAL или выполнение двойной установки приведет к поломке или потребует удаления многих других пакетов, которые я запускаю, в зависимости от того, что мне предлагает aptitude.
Рейтинг:0
флаг pe

Я столкнулся с подобными проблемами при компиляции PostGIS из исходного кода (но в Ubuntu 20.04). Мое решение проблемы линковки (для другого пакета) описано в GIS.SE ответ здесь.

Кажется, что Makefile в PostGIS-3.1.0+ не включал параметры ссылки для некоторых пользовательских пакетов, в моем случае гео:

Проблема решается правкой загрузчик/Makefile а затем добавить следующие параметры ссылки GEOS

-L/опт/геос/библиотека -lgeos

до строки 25, которая выглядит так:

CFLAGS= -I ../liblwgeom -I/opt/geos/include ...

Если ваша проблема такая же, добавьте параметры ссылки в соответствующий Makefile (сразу после ./настроить ) может решить проблему.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.