Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
O roteiro a seguir tem por objetivo instalar o Microsiga Protheus8 + TopConnect versão Linux, em um servidor FreeBSD
7.0 com um banco de dados PostgreSQL 8.3.
Considerações Iniciais
Alguns passos importantes devem ser realizados para antes de iniciar a instalação do Protheus 8.
Suporte a Arquivos rpm
Utilize o ports para o suporte a arquivos rpm, instalando o pacote rpm-4.0.4_7. Não utilize o a versão 3 do rpm, pois tive
sérias incompatibilidades nos testes.
Compatibilidade Linux
Instale os módulos de compatibilidade Linux, conforme as orientações do manual do FreeBSD. Para meu setup, utilizei o
ambiente linux_base-fc-4_13. Também tenha certeza de que o módulo esteja corretamente ativado para execução durante
o boot, acrescentando a seguinte linha ao arquivo /etc/rc.conf:
linux_enable="YES"
Os dois serviços do Microsiga necessitam do sistema de arquivos virtual /proc do Linux, que pode ser emulado pelo
FreeBSD. Para isso ative os filesystems linprocfs e linsysfs, adicionando as seguintes linhas ao /etc/fstab:
linproc /compat/linux/proc linprocfs rw 0 0
linsys /compat/linux/sys linsysfs rw 0 0
Infelizmente a implementação do módulo linprocfs está incompleta e o daemon do Protheus consulta o arquivo virtual em
/proc/sys/fs/file-max para determinar o nº máximo de arquivos. Isso é facilmente contornável com a criação de um
arquivo comum, mediante os seguintes comandos:
mkdir -p /proc/sys/fs
echo 65535 > /proc/sys/fs/file-max
OBS: Este procedimento não é compatível com o filesystem procfs do FreeBSD: por sorte ele não vem ativado na
instalação padrão e também não é necessário para o Microsiga.
Preparação da Pasta de Instalação
Como o script de instalação do Microsiga não possui suporte ao FreeBSD, foi necessário realizar algumas pequenas
adaptações, que detalho a seguir.
Cópia do conteúdo do CD-ROM
Monte o CD-ROM de instalação do Microsiga Linux em /cdrom e digite os seguintes comandos para copiá-lo no seu HD.
mount /cdrom
mkdir -p /usr/local/distfiles/siga
cp -R /cdrom/linux/protheus8server /usr/local/distfiles/siga/
http://www.fug.com.br _PDF_POWERED _PDF_GENERATED 28 October, 2010, 16:29
FUG-BR / Grupo Brasileiro de Usuarios de FreeBSD
Utilize o seu editor de textos predileto para editar o script de instalação Linux chamado
/usr/local/distfiles/siga/protheus8server/install_linux:
- Acrescente a linha após a última linha do bloco citado acima:rpm_opts="-ivh --nodeps --ignoreos --dbpath /var/lib/rpm --
root /compat/linux"
- Agora localize cada string -ivh existente para cada comando rpm presente neste script e substitua por $rpm_opts.
ficando como resultado:...
echo $text16 #"Instalando server..."
rpm $rpm_opts $rpm_server
...
echo $text17 #"Instalando dados..."
rpm $rpm_opts $rpm_protheus_data
...
echo $text18 #"Instalando RPO..."
rpm $rpm_opts $rpm_rpo
...
echo $text19 #"Instalando arquivos de localizacao de sistema..."
rpm $rpm_opts $rpm_loc
rpm $rpm_opts $rpm_general
...
InstalaçãoProtheus 8
Agora você pode instalar o produto conforme a orientação do manual de instalação do Microsiga, exatamente como se
procede em um Linux convencional.
TopConnect
Instale o TopConnect conforme a orientação do manual de instalação do Microsiga, já que vem distribuído em um tar.gz
convencional. Recomendo que o mesmo seja instalado na pasta /microsiga/protheus8/bin/topconnect41, assim você
poderá reaproveitar o meu script de inicialização mais facilmente.
ODBC
O TopConnect utiliza o ODBC para realizar a comunicação com o banco de dados. No UNIX isso é feito pela biblioteca
unixODBC.
Mas como a emulação Linux não permite intercambiar bibliotecas entre binários Linux e FreeBSD não poderemos utilizar
a distribuição do ports. Então é necessário instalar a versão Linux da biblioteca unixODBC, conforme a distribuição Linux
escolhida no início deste artigo. No meu caso tenho uma distro do Fedora, então utilizei a versão disponível no próprio site
do projeto unixODBC, que é http://sourceforge.net/projects/unixodbc .
Segundo a Totvs/Microsiga a compatibilidade do TopConnect é com o PostgreSQL 7, cujo driver ODBC é denominado
libpsqlodbc.so. Já as bibliotecas mais novas do ODBC mudam este nome para libodbcpsql.so. Para piorar o problema,
parece-me que o daemon do TopConnect nem sempre consulta o arquivo de configuração odbc.ini para obter o nome do
driver ODBC.
Então para funcionar sem problemas é muito importante criar um link que compense essas diferenças:
ln -s /compat/linux/usr/lib/libodbcpsql.so.1 /compat/linux/usr/lib/libpsqlodbc.so
http://www.fug.com.br _PDF_POWERED _PDF_GENERATED 28 October, 2010, 16:29
FUG-BR / Grupo Brasileiro de Usuarios de FreeBSD
Finalmente, para que o ODBC funcione corretamente, é necessário colocar o arquivo de configuração .odbc.ini na pasta
home do root (/root/.odbc.ini).
[teste]
Servername=localhost
Username=pgsql
password='md5b09f85578ae5d284db5373d205a8ff0f'
Database=DadosAp8
Driver=/usr/lib/libodbcpsql.so
Port=5432
ReadOnly=0
Note no arquivo acima uma dica interessante: A linha password permite que você coloque o hash MD5 para o login no
banco de dados, evitando expor a senha do superusuário pgsql. Obtive este hash diretamente na ferramenta pgAdmin
do projeto PG.
Considerações importantes
O unixODBC fornece uma versão 2 do driver ODBC instalado em /compat/linux/usr/lib/libodbcpsql.so.2. Não utilize-o pois
codifica os textos no formato multi-byte, que causará paralização do serviço topconnect.
Os drivers informados no arquivo .odbc.ini referen-se para a pasta /usr/lib, que são mapeados para a camada de
compatiblidade Linux internamente pelo FreeBSD (resultando em /compat/linux/usr/lib).
Scripts de inicialização
O passo final para a execução do TopConnect e o Protheus8 é a criação os scripts de execução dos daemons. Crie os dois
scripts abaixo e lembre-se de habilitar o atributo de execução.
/usr/local/etc/rc.d/microsiga#!/bin/sh
#
# microsiga for rc.d usage (c) 2007 Mathias A. Gruber.
# $Id$
# PROVIDE: microsiga
# REQUIRE: DAEMON
# BEFORE: LOGIN
#
# Add the following line to /etc/rc.conf to enable microsiga:
#
# microsiga_enable="YES"
. /etc/rc.subr
name=microsiga
rcvar=`set_rcvar`
load_rc_config $name
command=/usr/compat/linux/microsiga/protheus8/bin/server/mp8srvlinux
command_args="DAEMON"
run_rc_command "$1"
Note que o script acima declara duas variáveis chamadas HOSTNAME e USER. Aqui foi onde enfrentei a maior
http://www.fug.com.br _PDF_POWERED _PDF_GENERATED 28 October, 2010, 16:29
FUG-BR / Grupo Brasileiro de Usuarios de FreeBSD
dificuldade para fazer o Microsiga executar confiavelmente. A documentação do Microsiga não comenta nada sobre elas,
embora sejam imprescindíveis para a correta execução do daemon. Mesmo em ambiente Linux a falta delas impede a
correta execução do sistema, principalmente durante o boot e também quando utilizamos o método
chkconfig/service/ntsysv do System V.
O script procura seguir as convenções utilizadas para execução dos outros daemons do BSD. Sendo assim é possível
iniciar, verificar e parar os serviços da forma tradicional:
/usr/local/etc/rc.d/microsiga start
/usr/local/etc/rc.d/microsiga status
/usr/local/etc/rc.d/microsiga stop
/usr/local/etc/rc.d/microsiga restart
/usr/local/etc/rc.d/topconnect#!/bin/sh
#
# topconnect for rc.d usage (c) 2007 Mathias A. Gruber.
# $Id$
# PROVIDE: topconnect
# REQUIRE: microsiga
# BEFORE: LOGIN
#
# Add the following line to /etc/rc.conf to enable topconnect:
#
# topconnect_enable="YES"
. "/etc/rc.subr"
command=/usr/sbin/daemon
command_args="-f /usr/compat/linux/microsiga/protheus8/bin/topconnect41/multi/topconnect"
procname=/usr/compat/linux/microsiga/protheus8/bin/topconnect41/multi/topconnect
run_rc_command "$1"
Arquivo de Configuração
Para que os scripts acima funcionem, devemos configurar o arquivo rc.conf corretamente, adicionando-se as seguintes
linhas:
microsiga_enable="YES"
topconnect_enable="YES"
Resumi abaixo todas as minhas configurações utilizadas para o rc.conf, que inclui algumas opções importantes para o initdb
do PostgreSQL:
linux_enable="YES"
microsiga_enable="YES"
topconnect_enable="YES"
postgresql_enable="YES"
postgresql_initdb_flags="--encoding=ISO8859-1 --lc-collate=pt_BR.ISO8859-1 --lc-ctype=pt_BR.ISO8859-1"
Testes
Se você tiver a parte gráfica instalada em seu FreeBSD, você poderá utilizar os programas que acompanham o
Protheus 8 seguindo a documentação que acompanha a distro para Linux, normalmente.
A alternativa mais comum é utilizar uma estação Windows com o TopMonitor e o Protheus Remote instalados para fazer
a configuração e verificação.