Отсутствие библиотек при обновлении до PostGIS 2.1 и PostgreSQL 9.3.1 с использованием homebrew

В процессе обновления моего PostgreSQL с 9.2.4 до 9.3.1 (через homebrew в OS X) я столкнулся с нечетной проблемой. Это те шаги, которые я сделал до сих пор.

  • PostgreSQL, PostGIS и необходимые библиотеки (без ошибок)
  • запустите initdb в новой базе данных
  • остановил оба сервера
  • running pg_upgrade

pg_upgrade выполняет необходимые проверки, создает дампы старого кластера, но при импорте в новый кластер я получаю следующую ошибку:

> ./pg_upgrade -b /usr/local/Cellar/postgresql/9.2.4/bin/ -B /usr/local/Cellar/postgresql/9.3.1/bin -d /usr/local/var/postgres/ -D /usr/local/var/postgres9.3.1 -u postgres
Performing Consistency Checks
-----------------------------
Checking cluster versions                                   ok
Checking database user is a superuser                       ok
Checking for prepared transactions                          ok
Checking for reg* system OID user data types                ok
Checking for contrib/isn with bigint-passing mismatch       ok
Creating dump of global objects                             ok
Creating dump of database schemas
                                                            ok
Checking for presence of required libraries                 fatal

Your installation references loadable libraries that are missing from the
new installation.  You can add these libraries to the new installation,
or remove the functions using them from the old installation.  A list of
problem libraries is in the file:
    loadable_libraries.txt

Failure, exiting

Похоже, что PostgreSQL 9.3.1 пытается использовать PostGIS 2.0, который несовместим

Could not load library "$libdir/postgis-2.0"
ERROR:  could not access file "$libdir/postgis-2.0": No such file or directory

Could not load library "$libdir/rtpostgis-2.0"
ERROR:  could not access file "$libdir/rtpostgis-2.0": No such file or directory

Кто-нибудь сталкивается с той же проблемой?

Ответ 1

Недавно я столкнулся с этой проблемой, и для меня была использована переустановка postgis. То есть, перейдите в папку, в которой вы tar'ed исходный файл (если вы установили postgis из исходного кода) и перезапустите:

./configure
make
sudo make install

Если вы установили последнюю версию postgresql, postgis следует установить в новую папку расширения postgresql:

/usr/share/postgresql/x.x/extension/

Чтобы проверить, запустите:

sudo su -l postgres

psql template1 -p 5433

SELECT name, default_version,installed_version 
FROM pg_available_extensions WHERE name LIKE 'postgis%' ;

Если postgis успешно установлен, вы должны увидеть номер версии, указанный в столбце "Установленный". Теперь, когда вы пытаетесь запустить команду pg_upgrade, все должно работать нормально.

Надеюсь, что это поможет.