4

Я пытаюсь установить клиент командной строки Posgtres (обычно psql в Linux). Я установил postgres через MacPorts (postgresql90 и postgresql90-server), но все еще не вижу установленного клиента.

Я искал MacPorts и не могу найти ни путь к клиенту, ни отдельный порт для его независимой установки.

Как я могу установить клиент командной строки psql?

3 ответа3

4

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
1

Нашел ответ по адресу: http://www.istarelworkshop.com/2011/01/04/snow_leopard_development_server_postgresql

Как и при обычной установке MacPorts, путь к инструментам командной строки PostgreSQL не известен системе, поэтому я добавляю /opt /local /lib /postgresql84 /bin в /etc /paths.

Кажется, что MacPorts устанавливает исполняемый файл, но не помещает его в путь.

0

Убедитесь, что вы установили последнюю версию psql-клиента (в моем примере 93)

sudo port install postgresql93

Затем в вашем файле ~/.bash_profile добавьте

PATH=/opt/local/lib/postgresql93/bin/:$PATH export PATH

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .