Jak zainstalować klienta wiersza polecenia Postgres (psql) w systemie OS X za pomocą MacPorts?

4

Próbuję zainstalować klienta wiersza polecenia Posgtres (zwykle psql w systemie Linux). Mam zainstalowany postgres przez MacPorts (postgresql90 i postgresql90-server), ale nadal nie widzę zainstalowanego klienta.

Przeszukałem MacPorts i nie mogę znaleźć ścieżki do klienta ani osobnego portu, aby zainstalować go niezależnie.

Jak mogę zainstalować klienta linii poleceń psql?

Freiheit
źródło
. Dla homebrew ekw, zobacz tutaj: dba.stackexchange.com/a/186457/16892
rogerdpack

Odpowiedzi:

5

Macports pakuje kilka wersji PosgreSQL, w których nazwy pakietów każdej wersji zawierają ciąg wersji. Więc jeśli XY jest połączeniem głównej i mniejszej wersji PostgreSQL (od wersji beta 8.1 do 9.4 w chwili pisania), pakiety mają następujące nazwy:

  • postgresqlXY (Instaluje to klienta, psql.)
  • postgresqlXY-server (To jest część serwera).
  • postgresqlXY-doc (I tak dalej.)

Musisz po prostu aktywować wybraną zainstalowaną wersję. Jeśli zainstalujesz pakiet „postgresqlXY” (dowolna wersja), otrzymasz również pakiet „postgresql_select” jako zależność, która pozwala zapytać o aktywną wersję postgresql:

$ port select --list postgresql
    Available versions for postgresql:
    none (active)
    postgresqlXY

Możesz określić aktywną wersję w następujący sposób:

$ port select --set postgresql postgresqlXY
Selecting 'postgresqlXY' for 'postgresql' succeeded. 'postgresqlXY' is now active.

To powoduje, że Macports umieszcza dowiązanie symboliczne z / opt / local / bin / psql (który jest na ścieżce, ponieważ zainstalowałeś Macports) do pliku binarnego zainstalowanego w / opt / local / lib / postgresqlXY / bin / psql (który nie jest na ścieżka):

$ which psql # That created this symlink to the active version:
/opt/local/bin/psql

Zauważ, że zawsze możesz uzyskać dostęp do wersji XY pliku binarnego klienta przez / opt / local / bin / psqlXY, co jest kolejnym dowiązaniem symbolicznym, które Macports utrzymuje dla każdej zainstalowanej wersji, bez względu na to, co jest zaznaczone lub nie. Było tam przed wybraniem wersji XY i podobnie pozostaje, jeśli wybierzesz „none”, aby usunąć standardową nazwę binarną ze ścieżki:

$ 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

Ludzie w końcu potrzebują łatwego dostępu do wielu wersji różnych programów, a Macports ułatwia to, pakując wiele wersji około 50 popularnych przykładów przy użyciu tego mechanizmu wyboru i odpowiedniego pakietu somesoftware_select jako zależności. Zobacz listę:

$ port search _select
użytkownik384609
źródło
1

Znaleziono odpowiedź na: http://www.istarelworkshop.com/2011/01/04/snow_leopard_development_server_postgresql

Podobnie jak ogólna instalacja MacPorts, ścieżka do narzędzi wiersza poleceń PostgreSQL nie jest znana w systemie, więc dołączam / opt / local / lib / postgresql84 / bin do / etc / paths.

Wygląda na to, że MacPorts instaluje plik wykonywalny, ale nie umieszcza go na ścieżce.

Freiheit
źródło
0

Upewnij się, że masz zainstalowany najnowszy klient psql (93 w moim przykładzie)

sudo port install postgresql93

Następnie w ~/.bash_profilepliku dodaj

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

djjeck
źródło
1
To słabe rozwiązanie, ponieważ będziesz musiał go wytropić podczas aktualizacji. Nie zadzieraj z ~ / .bash_profile. Uruchom port select --list postgresqli wybierz jeden, taki jak sudo port select --set postgresql postgresql95. Następnie znajdziesz dowiązanie symboliczne /opt/local/bin, które będzie już w ŚCIEŻCE.
Calaf