Macports упаковывает несколько версий PosgreSQL, где имена пакетов каждой версии содержат строку версии. Так что, если XY является объединением основной и вспомогательной версии выпуска PostgreSQL (начиная с 8.1 до 9.4 бета на момент написания этой статьи), пакеты называются так:
- postgresqlXY (Это устанавливает клиента, 'psql'.)
- postgresqlXY-сервер (это серверная часть.)
- postgresqlXY-doc (и т. д.)
Вам просто нужно активировать установленную версию по вашему выбору. Если вы устанавливаете пакет "postgresqlXY" (любой версии), вы также получаете пакет "postgresql_select" в качестве зависимости, которая позволяет запрашивать активную версию postgresql:
$ port select --list postgresql
Available versions for postgresql:
none (active)
postgresqlXY
Вы можете указать активную версию следующим образом:
$ port select --set postgresql postgresqlXY
Selecting 'postgresqlXY' for 'postgresql' succeeded. 'postgresqlXY' is now active.
Это заставляет Macports поместить символическую ссылку из /opt /local /bin /psql (которая находится по пути, потому что вы установили Macports) в двоичный файл, установленный в /opt /local /lib /postgresqlXY /bin /psql (который не включен путь):
$ which psql # That created this symlink to the active version:
/opt/local/bin/psql
Обратите внимание, что вы всегда можете получить доступ к версии XY двоичного файла клиента через /opt /local /bin /psqlXY, что является еще одной символической ссылкой, которую Macports поддерживает для каждой установленной версии, независимо от того, что выбрано или не выбрано. Это было там до того, как вы выбрали версию XY, и также останется, если вы выберете "none", чтобы удалить стандартное двоичное имя из вашего пути:
$ port select postgresql none
Selecting 'none' for 'postgresql' succeeded. 'none' is now active.
$ which psql # Not on the path because 'none' is active!
$ which psqlXY # But this is always present:
/opt/local/bin/psqlXY
Люди в конечном итоге нуждаются в готовом доступе к нескольким версиям различных частей программного обеспечения, и Macports облегчает это, упаковывая несколько версий около 50 популярных примеров, используя этот механизм выбора и соответствующий пакет somesoftware_select в качестве зависимости. Посмотреть список:
$ port search _select