Instalando e configurando o Interbase Server
Abaixo vai um tutorial simples e prático para instalação do Banco de Dados Interbase no Linux.
Primeiro obtenha o pacote do InterbaseSS no formato rpm, o nome do pacote e InterbaseSS_LI-V6_0-1_i386.rpm.
Para proceder com a instalação, digite no prompt (você deve estar logado como root):
# rpm -ivh InterbaseSS_LI-V6_0-1_i386.rpm
Se ocorrer tudo bem na instalação siga para o próximo passo. Como este guia tem como base um usuário e um grupo Interbase, vamos à criação dos mesmos. Para isso basta seguir os passos abaixo.
Criando o grupo Interbase
# groupadd interbase
Agora vamos criar o usuário interbase e associá-lo ao grupo interbase.
# adduser -g interbase interbase
Depois desse procedimento, vamos criar uma senha para o usuário interbase.
# passwd interbase
Digite e confirme a senha.
O próximo passo é fazer algumas modificações no sistema para perfeito funcionamento do Interbase.
Para melhor compatibilidade com outros programas, vamos criar alguns links simbólicos.
Vá para a raiz do sistema (digite cd /) e siga os passos abaixo para a criação dos links simbólicos.
# ls -s /opt/interbase /usr/interbase
# ls -s /opt/interbase /user/local/interbase
Agora vamos para o diretório pessoal do usuário Interbase:
# cd /home/interbase
Dentro do diretório crie um sub-diretório com nome bin:
# mkdir /home/interbase/bin
Agora entre no sub-diretório bin:
# cd /home/interbase/bin
E crie um link simbólico para o executável do interbase:
# ln -s /opt/intebase/ibmgr
Esse procedimento não e obrigatório para o funcionamento do interbase, porém pode ajudar a solucionar possíveis problemas de compatibilidade.
Agora vamos editar o arquivo profile que se localiza em /etc/profile. Siga os passos abaixo.
# cd /etc
# vi profile
Com arquivo aberto você poderá observar uma linha semelhante a esta:
PATH = “$PATH:/usr/bin/X11:/usr/games:/usr/local/bin”
Adicione o parâmetro :/opt/interbase/bin ao final da linha, neste caso ficaria:
PATH = “$PATH:/usr/bin/X11:/usr/games:/usr/local/bin:/opt/interbase/bin“
Isso vai fazer com que o servidor de banco de dados do Interbase possa ser ativado de qualquer parte do sistema. Basicamente faz com que você não tenha que sempre se deslocar até o diretório do /opt/interbase/bin para ativá-lo, tornando assim a ativação do mesmo muito mais simples e prática.
Agora crie o arquivo gds_host.equiv dentro do diretório /etc/. Coloque na primeira linha localhost e na segunda linha o sinal de +. Veja como proceder logo a baixo.
# cd /etc/
# cat > gds_host.equiv localhost
+
Pressione Ctrl+d para sair
Agora verifique se o arquivo foi criado:
# cat /etc/gds_host.equiv
Se tudo estiver bem vamos para o próximo passo!
Agora vamos dar um comando para verificar o estado da porta do Interbase.
# grep 3050 /etc/services
Você deverá receber a seguinte mensagem na tela:
gds_db 3050/tcp # Interbase Database Remote Protocol
Agora vamos editar o arquivo host que esta dentro de etc.
# vi /etc/hosts
Tire tudo que estiver na frente de localhost! E verifique se o IP da máquina está incluso no arquivo.
Agora edite o arquivo gds_host.equiv adicionando essas 3 linhas:
# cat > /etc/host.equiv
+
servidor
localhost
Pressione Ctrl+d para sair
Agora verifique se o arquivo foi criado:
# cat /etc/gds_host.equiv
Agora vamos iniciar o servidor de banco de dados do Interbase, veja o comando logo a baixo:
# ibmgr start
O comando para desativar o servidor de banco de dados:
# imgr shut pass masterkey
Obs: Para desativar o servidor Interbase é solicitada a senha do administrador, nesse caso o sistema está usando o usuário e a senha padrões (user sysdba, pass masterkey).
ATENÇÃO: certamente ao tentar iniciar o Interbase você receberá um mensagem de erro semelhante a essa:
/opt/interbase/bin/ibmgr.bin: error while loanding shared libraries: libncurses.so.4: cannot open shared object file : No shuch file or directory.
Isso ocorre porque o Interbase faz uso de uma biblioteca antiga, a libncurses.so.4, que certamente não estará disponível em nosso sistema.
Para solucionar o problema vamos criar um link simbólico que faz com que o Interbase use uma biblioteca mais atual que certamente estará disponível em nosso sistema.
Eu já testei com a biblioteca libnecurses.so.5 e libncurses.so.5.2 e funcionou perfeitamente, então caso seu sistema disponha de uma biblioteca mais atual você pode tentar usar a mesma.
Veja logo a baixo o procedimento adotado para solucionar tal problema!
Primeiro fique certo que o link simbólico será criado em /usr/lib, portanto se dirija para o diretório em questão.
# cd /usr/lib
Localize onde está sua biblioteca libncurses e qual a versão da mesma, a minha estava dentro de /lib/bin. Agora que já sabemos onde está a nossa libncurses, vamos criar um link para a mesma.
OBS: lembre-se de estar dentro do diretório /usr/lib/.
# ls -s local/da/libnecurses.so.5.2 libncurses.so.4
OBS: lembre-se que primeiro vem o lugar onde se localiza a biblioteca real depois o nome do link.
Agora toda vez que o Interbase solicitar a biblioteca libncurses.so.4 o link vai redirecionar para a biblioteca libncursses.so.5.2.
Depois desses passos certamente o Interbase já poderá ser iniciado, para isso basta o seguinte comando:
# cd /opt/interbase/
# ibmgr -start
Pode ser que seja solicitada a senha para iniciar o Interbase nesse caso o comando ficaria:
# ibmgr -start -user SYSDBA -password masterkey
OBS: certamente que se você tentar iniciar o Interbase fora do seu diretório ele vá funcionar, pois o path já está configurado.
Para parar o Interbase o procedimento e semelhante:
# cd /opt/interbase/
# ibmgr shut -password masterkey (senha padrão do Interbase)
OBS: vale lembrar que o servidor Interbase para estações depende do serviço inetd, portanto inicie o mesmo antes de iniciar o Interbase e só finalize o inetd depois de ter finalizado o Interbase.
O inetd é um serviço de rede que presta suporte a alguns aplicativos.
# ibserver script – Start/stop the InterBase daemon
# Set these environment variables if and they are set.
: ${INTERBASE:=/home/interbase}
: ${ISC_USER:=SYSDBA}
: ${ISC_PASSWORD:=masterkey}
# ADVERTÊNCIA: em uma instalação do mundo real,
# você não deveria deixar a senha SYSDBA dentro de um diretório
# público legível. Para proteger o arquivo de um:
# chmod 700 Ibserver
# chown root Ibserver
# export INTERBASE
# export ISC_USER
# export ISC_PASSWORD
ibserver_start()
{
# This example assumes the InterBase server is
# being started as UNIX user ‘interbase’.
echo $INTERBASE’/bin/ibmgr -start -forever’ | su interbase
}
ibserver_stop()
{
# No need to su, since $ISC_USER AND $ISC_PASSWORD validate us.
$INTERBASE/bin/ibmgr -shut -password $ISC_PASSWORD
}
case $1 in
‘start’)
echo -e ‘InterBase Server iniciado… c’
ibserver_start ;;
‘start_msg’ )
echo -e ‘InterBase Server iniciado… c’ ;;
‘stop’ )
echo -e ‘InterBase Server parado… c’
ibserver_stop ;;
‘stop_msg’ ) echo -e ‘InterBase Server parado… c’ ;;
*) echo ‘Usage: $0 { start | stop }’; exit 1;;
esac
exit 0
Agora que o nosso script ibserver já esta pronto, vamos dar-lhe as devidas permissões para tornar o sistema um pouco mais seguro. Porém antes vamos colocá-lo no seu devido lugar:
# cp lugar/onde/esta/oscript/ibserver /etc/rc.d/
Agora vamos às suas permissões!
# chown root ibserver
# chgrp root ibserver
# chmod 700 ibserver
Se você quiser que o ibserver possa ser inicializado com a lista de cds, crie um link simbólico para o mesmo em:
# ls -s /etc/rc.d/ibserver /etc/rc.d/init.d/ibserver
OBS: se você nem sabe o que é lista cds, é melhor não efetuar esse procedimento já que o mesmo é apenas para facilitar a vida do usuário mais preguiçoso.
Bom, como você já deve saber o Interbase Server é um serviço dependente do inetd, portanto o inetd deve ser inicializado antes do Interbase e para isso você deve seguir os passos a baixo.
Antes de qualquer coisa procure saber o nível de inicialização do seu sistema.
Modo texto – nível 3
ou Modo texto e modo gráfico – nível 5
OBS: pode ser que em seu sistema os níveis sejam diferentes. Veja o arquivo /etc/inittab para conferir.
Primeiro vamos colocar o inetd para iniciar junto com sistema, para isso recomendo o uso o utilitário linuxconf que é sem dúvida uma ótima ferramenta para diversas atividades.
Supondo que o inetd não esteja na lista de serviços disponíveis para iniciar junto com sistema, teremos que criar um link simbólico na pasta do nível de inicialização correspondente ao nosso sistema. Parece complicado? Pois é mesmo!
Certamente o inetd estará dentro de /etc/rc.d/init.d, porém ele deve estar com nome de inet. Supondo que o nível de inicialização da nossa maquina seja o nível 3, vamos proceder da seguinte forma:
# cd /etc/rc.d/rc3.d
# ls -s /etc/rc.d/init.d/inet S30inet
# ls -s /etc/rc.d/init.d/inet K80inet
Cada nível de inicialização é representado por uma pasta do tipo rc.Nivel, portanto se o seu nível é o 5, você deve criar o links em etc/rc.d/rc5.d/.
Agora vamos criar os links para que o nosso script seja iniciado junto com sistema. Como estamos supondo que nossa máquina tenha o nível 3 de inicialização, veja o procedimento logo abaixo:
# cd /etc/rc.d/rc3.d
# ls -s /etc/rc.d/ibserver S60ibserver
# ls -s /etc/rc.d/ibserver k03ibserver
Bom agora esta tudo configurado!
Qualquer duvida poste um comentário.
Diogo Junqueira Penha.
e-mail: diogu@pop.com.br



