A Macports empacota diversas versões do PosgreSQL onde os nomes dos pacotes de cada versão contêm a string de versão. Então, se XY é a concatenação da versão principal e secundária do PostgreSQL (do 8.1 até o 9.4 beta), os pacotes são assim chamados:
- postgresqlXY (instala o cliente, 'psql'.)
- postgresqlXY-server (essa é a parte do servidor.)
- postgresqlXY-doc (e assim por diante)
Você simplesmente precisa ativar a versão instalada de sua escolha. Se você instalar o pacote "postgresqlXY" (qualquer versão), você também terá o pacote "postgresql_select" como uma dependência, que permite consultar a versão ativa do postgresql:
$ port select --list postgresql
Available versions for postgresql:
none (active)
postgresqlXY
Você pode especificar a versão ativa assim:
$ port select --set postgresql postgresqlXY
Selecting 'postgresqlXY' for 'postgresql' succeeded. 'postgresqlXY' is now active.
Isso faz com que Macports coloquem um symlink de / opt / local / bin / psql (que é no caminho porque você instalou Macports) no binário instalado em / opt / local / lib / postgresqlXY / bin / psql (que não está no caminho):
$ which psql # That created this symlink to the active version:
/opt/local/bin/psql
Note que você sempre pode acessar a versão X.Y do binário do cliente via / opt / local / bin / psqlXY, que é outro symlink mantido pelo Macports para cada versão instalada, não importando o que esteja ou não selecionado. Ele estava lá antes de você selecionar a versão XY e, da mesma forma, permanecerá se você selecionar "nenhum" para remover o nome binário padrão de seu caminho:
$ 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
As pessoas acabam precisando de pronto acesso a várias versões de vários softwares, e o Macports facilita isso empacotando várias versões de cerca de 50 exemplos populares usando esse mecanismo de seleção e o correspondente pacote somesoftware_select como dependência. Veja a lista:
$ port search _select