Parece-me que você está tentando executar o PostgresSQL na sua conta de usuário atual.
Eu não sei as propriedades do fink para PostgreSQL, mas os daemons associados devem rodar sob uma conta de usuário dedicada (digamos postgres por exemplo).
Primeiro, identifique o diretório de dados, no qual o PostgresSQL armazena seus arquivos de dados e configuração. Suas mensagens de erro parecem dizer que isso pode ser "/Library/PostgreSQL/8.4/data".
Este diretório deve pertencer ao postgres -user e ter privilégios rwx para ele.
Eu acho que o Fink já o criou, então confira os logs de instalação.
Olhe dentro deste diretório (você pode precisar su / sudo porque você pode não ter privilégios suficientes para fazê-lo com seu usuário do console). Se houver alguns arquivos, por exemplo. postgresql.conf, um monte de pg_ * e alguns outros arquivos, todos pertencentes a postgres , o diretório de dados parece estar bem, caso contrário, invoque o seguinte (substitua o caminho binário, postgres -user e o caminho de dados com seus valores de sistema, veja man initdb para mais opções):
sudo -u postgres /usr/local/pgsql/bin/initdb -D /Library/PostgreSQL/8.4/data
É importante sudo como o usuário postgres aqui, porque a conta de usuário que o postgres deamons executa, terá que ter os direitos de acesso sufficients.
Além disso, você terá que iniciar o deamon com o sudo (isso deve ser tratado mais tarde por uma entrada do lauchctl, ou algo similar), então:
sudo -u postgres /usr/local/pgsql/bin/pg_ctl -D /Library/PostgreSQL/8.4/data
Você sempre pode recriar o diretório de dados, mas certifique-se de fazer um backup e não sobrescrevê-lo quando o postgres ainda estiver em execução.