sábado, 5 de janeiro de 2008

Compilando PostgreSQL no Ubuntu

Hoje baixei os fontes do PostgreSQL para compilar e instalar no meu Ubuntu.

Eu prefiro compilar os fontes para poder agregar o suporte a Perl e a Python aos banco de dados. Se você baixar a versão do Synaptic ou apt-get fica sem estes recursos por padrão.

Bem, quando eu estava compilando com o comando:

sudo ./configure --with-perl --with-python --prefix=/usr/local/pgsql

Apareceu o erro:


checking build system type... i686-pc-linux-gnulibc1
checking host system type... i686-pc-linux-gnulibc1
checking which template to use... linux
checking whether to build with 64-bit integer date/time support... no
checking whether NLS is wanted... no
checking for default port number... 5432
checking for gcc... gcc
checking for C compiler default output file name... configure: error: C compiler cannot create executables
See `config.log' for more details.

Procurei na WEB a solução e encontrei facilmente. Então eu fui perceber que estava faltando o g++ na minha instalação.


Depois que instalei o pacote do g++ e suas dependências, outro erro veio à tona:

(...)
configure: error: readline library not found
If you have readline already installed, see config.log for details on the
failure. It is possible the compiler isn't looking in the proper directory.
Use --without-readline to disable readline support.

Aí descobri que faltam o pacote libreadline e seus associados. Isto também é facilmente corrigível pelo apt-get (o foda é saber o nome do pacote correto, que você acha através de uma pesquisa no Synaptic ou através do querido amigo google.com).

Instalei o libreadline5-dev, e então... outros problemas apareceram.

No fim das contas, se você deseja instalar o postgresql a partir dos fontes no Ubuntu, sugiro instalar todos os pacotes abaixo para conseguir obter o máximo de funcionalidades do SGBD, e também, para não ter nenhum problema durante a compilação.

Execute o comando anteriormente à compilação do PostgreSQL:

sudo apt-get install g++ libreadline5-dev flex bison libzzip-dev libio-zlib-perl zlib1g-dev zlib-bin zlibc zziplib-bin libperl-dev python-dev build-essential

Ok, mas tem outro detalhe. Depois de instalar estes pacotes, outros problemas podem aparecer durante o comando $make...

... principalmente com o Perl, como por exemplo o erro abaixo:


(...)
/usr/bin/ld: cannot find -lperl
collect2: ld returned 1 exit status
make[3]: ** [libplperl.so.0.0] Erro 1
make[3]: Saindo do diretório `/usr/src/postgresql-8.2.5/src/pl/plperl'
make[2]: ** [all] Erro 1
make[2]: Saindo do diretório `/usr/src/postgresql-8.2.5/src/pl'
make[1]: ** [all] Erro 2
make[1]: Saindo do diretório `/usr/src/postgresql-8.2.5/src'
make: ** [all] Erro 2


Isto acontece porque o compilador procura o arquivo /usr/lib/libperl.so. Como eu tenho a versão 5.8, preciso criar um link simbólico a esta biblioteca com o nome padrão procurado. Se você possui outra versão, substitua o 5.8 pela versão e nome de arquivo correspondente. Para criar o link, execute:

sudo ln -s /usr/lib/libperl.so.5.8 libperl.so

Depois disso, creio que o PostgreSQL possa ser instalado sem problemas. Baseado em um artigo muito bom feito por Alexandro Correa [1], elenco abaixo as etapas para instalação do postgresql através dos fontes com suporte a Perl e Python, após ter realizado todas as instruções acima:

Instruções para instalação rápida do PostgreSQL:

1 - Copie o source do Postgres do endereço:
http://wwwmaster.postgresql.org/download/mirrors-ftp?file=%2Fsource%2Fv8.2.5%2Fpostgresql-8.2.5.tar.bz2

2 - Entre em modo root:
$ sudo su

3 - Descompacte o pacote:
$ tar -xjvf postgresql-8.2.5.tar.bz2

4 - Acesse o diretório:
$ cd postgresql-8.2.5

5- Configure e compile:

$ ./configure --prefix=/usr/local/postgres --bindir=/usr/bin --sysconfdir=/etc/postgres --with-perl --with-python

6 - Instalando:

$ make
$ make install

7 - Criando grupo e usuário:
$ groupadd postgres
$ adduser postgres


8 - Criando diretório para os dados:
$ mkdir /usr/local/postgres/data
$ chown postgres:postgres /usr/local/postgres/data


9 - Inicializando o banco:
$ su - postgres
$ initdb -D /usr/local/postgres/data


10 - Rodando o postgres em segundo plano, gravando logs:
$ postmaster -D /usr/local/postgres/data >> /usr/local/postgres/data/logfile &

Links:
[1] http://www.vivaolinux.com.br/artigos/verArtigo.php?codigo=2142&pagina=2

sexta-feira, 4 de janeiro de 2008

Atualização Ubuntu Gutsy 7.10 = Falha na placa de rede

No meu PC eu tenho uma placa de rede Via VT6105 Rhine III (a mais comum que existe, vendem pencas desta no Paraguay). É incrivel como o Linux tem a facilidade de integração com qualquer dispositivo de hardware (pena que não posso dizer desta facilidade ainda com os dispositivos Wireless, mas na maior parte é falha dos fabricantes que não desenvolvem seus drivers para linux).

Bem, depois de instalar o Ubuntu certinho, apareceram diversas atualizações para ele. Eu - obviamente - marquei todas. E então a placa de rede parou de funcionar.

Como eu corrigi? Perguntando a um dos fóruns do Ubuntu na internet. A correção está aqui [1]:

edite o /etc/network/interfaces acrescentando as linhas:

auto eth0
iface eth0 inet dhcp


Reinicie a rede com o comando:

sudo /etc/init.d/networking restart



Se não funcionar, reinicie o PC que vai estar tudo certo =)

Links:
[1] http://ubuntuforums.org/showthread.php?p=4064559#post4064559

Seguidores