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