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?


. 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


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


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
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.