Установка версии 9.x на слишком новые apt-based дистрибутивы


#1

При установке postgrespro (как standard, так и enterprise) на слишком новые дистрибутивы, в которых уже есть родной postgreSQL 10 (ну или в будущем 11), apt пытается поставить свою libpq, libecpg, libpgtypes вместе с нашими бинарниками.

В десятке и выше этой проблемы нет, там мы специальнно изменили систему пакетирования так, чтобы пакеты библиотек не конфликтовали с родными (что, правда, мешает опользоваться фукнциональностью наших библиотек не пересобирая прикладных программ)

Для того, чтобы решить эту проблему, необходимо повысить приоритет нашего репозитория так, чтобы он был выше родного. Тогда наши пакеты будут ставиться, несмотря на то, что у них более низкий номер версии.

Для этого необходимо поместить в /etc/apt/preferences.d файлик со следующим содержимым

Explanation: You are trying to install major version of PostgresPro
Explanation: That is older than vanilla PostgreSQL packaged by you distro
Explanation: Because some package names are same, you should raise 
Explanation: priority for PostgresPro repository above your main repo.
Package: postgrespro* libpq* libecpg* libpqtypes*
Pin: origin *.postgrespro.ru
Pin-Priority: 1001

Проблема существует в Debian >=10 и Ubuntu >= 18.04. В альте там немножко хитрее - там с самого начала libpq разных major-версий не конфликтуют.


#2

стоит наверное еще напомнить, что после установки некоторых пакетов дополнительно следует еще вызывать

/opt/pgpro/std-10/bin/pg-wrapper update links

или

/opt/pgpro/1c-10/bin/pg-wrapper links update

например после установки пакета dev - pg_config не прописывается в момент установки в альтернативы применительно к той же ubuntu 18.04, и тогда сборка расширений будет падать

P.S. имеется ввиду вот эта утилита https://postgrespro.ru/docs/postgrespro/10/pg-wrapper