Esse artigo é para aqueles que trabalham com WebDesign ou estão iniciando na programação no Mac e ainda não se aventuraram em projetos com a utilização de softwares gerenciadores de bancos de dados como o MySQL, conhecidíssimo e muito usado pelos linuxers ou o utilizam em seus projetos e gostariam de um SGBD mais robusto, como o PostgreSQL.
Para efeito de copyright estou me baseando no tutorial PostgreSQL on MacOS X, disponível em inglês na página da Apple Inc.. Lembrando que estou usando softwares disponíveis para o Mac OS X na plataforma Intel.
Sem mais delongas, vamos ao que realmente interessa:
Se você ainda não usa o Fink, um gerenciador de downloads de softwares portados de várias plataformas para o Mac (corrijam-me os veteranos se eu estiver errado), vamos instalar ele primeiro para depois prosseguir com a instalação do PostgreSQL.
Instalando o Fink
1. Acesse a página de download do Fink e baixe a última versão disponível. No meu caso foi o Fink 0.8.1 Binary Installer (Intel), que pesa aproximadamente 15 MB.
2. Depois que o download estiver concluído, abra o arquivo Fink-0.8.1-Intel-Installer.dmg
e dê um duplo-clique no arquivo de pacote chamado Fink 0.8.1-Intel Installer.pkg
.
3. Depois de responder algumas perguntinhas de praxe o Fink estará pronto para instalar.
4. Confirme a instalação e pronto. Finished!
5. Abra o Terminal e na linha de comando digite:
fink scanpackages; fink index
para atualizar a lista de pacotes de programas que o Fink pode instalar automaticamente.
6. Pronto! O Fink está instalado no seu Mac.
Instalando o PostgreSQL
1. Antes de instalar o PostgreSQL você vai precisar instalar um pacote chamado readline
e o modo mais fácil de instalar é como? Usando o Fink, certo?!
Abra o Terminal e digite a seguinte linha:
zehrique@producao:~> sudo /sw/bin/fink install readline
2. Você pode instalar um port do PostgreSQL usando o Fink, mas a Apple não recomenda esse método, porém eles deixaram uma pequena dica de como instalar o SGDB “na mão”.
Mais uma vez você vai ter de abrir o Terminal e seguir o procedimento abaixo:
zehrique@producao:~> cd /usr/local/src
zehrique@producao:src> sudo sh
Password:
root@producao:src> mkdir postgres
root@producao:src> cd postgres
root@producao:postgres> curl -O ftp://ftp2.br.postgresql.org/postgresql/source/v8.2.3/postgresql-8.2.3.tar.gz
root@producao:postgres> tar -xzvf postgresql-8.2.3.tar.gz
root@producao:postgres> cd postgresql-8.2.3
3. Agora que você tem o código fonte, você pode executar os scripts de configuração, compilação e instalação. Mas já que instalamos o readline pelo Fink, vamos adicionar os diretórios dele como argumentos para o script de configuração:
root@producao:postgresql-8.2.3> ./configure --with-includes=/sw/include/ --with-libraries=/sw/lib
root@producao:postgresql-8.2.3> make
root@producao:postgresql-8.2.3> make install
4. Depois desses passos, você deve criar um usuário comum chamado postgres que é quem terá domínio completo sobre o banco de dados. Após criá-lo, mais uma vez abra o Terminal e faça o seguinte:
root@producao:~> mkdir /usr/local/pgsql/data
root@producao:~> chown postgres /usr/local/pgsql/data
5. Faça o login com o usuário postgres e inicialize o banco de dados, como a seguir:
root@producao:~> su -l postgres
postgres@producao:~> /usr/local/pgsql/bin/initdb -D /usr/local/pgsql/data
6. Para simplificar a execução de programas do PostgreSQL, você pode setar a variável de ambiente PATH
para o caminho onde eles se encontram:
postgres@producao:~> export PATH=$PATH:/usr/local/pgsql/bin
7. Se você quiser que a alteração à variável PATH
seja permanente, crie um arquivo chamado .tcsh no diretório de início de qualquer usuário (se você estiver usando o shell default do Mac OS X, que é o tcsh), e adicione as seguintes linhas:
setenv PGDATA /usr/local/pgsql/data
setenv PATH ${PATH}:/usr/local/pgsql/bin
Lembrando que a variável PGDATA
servirá para indicar ao servidor do PostgreSQL em qual diretório residem os dados.
8. Pronto! Agora você pode iniciar o servidor do PostgreSQL:
postgres@producao> /usr/local/pgsql/bin/pg_ctl -D /usr/local/pgsql/data -l logfile start
Uma vez que o servidor está ativo, crie um banco de dados chamado teste
para brincarmos um pouco:
postgres@producao> createdb teste
Você pode usar o programa psql
para abrir o banco de dados recém criado e executar comandos SQL diretamente:
postgres@mail> psql teste
Crie uma tabela chamada amigos
e insira alguns nomes nela, como a seguir:
teste=# create table amigos (nome varchar primary key, amigos_id serial);
NOTICE: CREATE TABLE will create implicit sequence 'amigos_amigos_id_seq' for
NOTICE: CREATE TABLE / PRIMARY KEY will create implicit index "amigos_pkey" for table "amigos"
CREATE TABLE
test=# insert into amigos (nome) values ('Julia');
INSERT 0 1
test=# insert into amigos (nome) values ('Marcelo');
INSERT 0 1
teste=# select * from amigos;
nome | amigos_id
---------+-----------
Julia | 1
Marcelo | 2
(2 rows)
Para esta primeira parte do artigo já fizemos bastante coisa. Tente você mesmo criar outras tabelas com mais dados utilizando o programa psql
ou baixe o programa pgAdmin III, um front-end para o PostgreSQL que pode ajudá-lo na criação de novos bancos de dados, tabelas, índices, etc… e na manutenção do dia-a-dia.
Um abraço e até a parte 2.