FUG-BR / Grupo Brasileiro de Usuarios de FreeBSD
 
23.04  
Inicio arrow Artigos arrow Roteiro de instalao do Microsiga Protheus 8 no FreeBSD e PostgreSQL 8.3
Principal
Inicio
Noticias
Artigos
Regras da Lista
Assinar a Lista
Histrico da Lista
Forum
Keyserver
PC-BSD: Artigos
PC-BSD: Notcias
Galeria de Imagens
Contador Usurios FUG
FUGs Estaduais
Downloads
Enquetes
FAQ
Resumo do Site
Links
Pesquisar
Contato
Sobre a FUG-BR
RSS / Twitter
-
DOC-BR (FUG BR)
Introduo
Projeto DOC-BR
Handbook
FAQ Oficial
-
+ Noticias
Alertas de Seguranca
Alertas em Ports
BSD em Geral
DaemonNews (Ingles)
MyFreeBSD
Todas Categorias
-
Login
Nome de Usurio

Senha

Lembrar login
Esqueceu sua senha?
Sem conta? Crie uma


Roteiro de instalao do Microsiga Protheus 8 no FreeBSD e PostgreSQL 8.3 PDF Imprimir E-mail
Por Mathias A. Gruber   
06/10/2008
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

Antes de iniciar qualquer instalação leia atentamente as advertências a seguir:

  • Esta configuração não é homologada pelo suporte Microsiga;
  • Não há como instalar o dispositivo de hardlock Aladdin HASP no FreeBSD devido a falta de um driver compatível, nem mesmo no modo de compatibilidade Linux. O driver aksusbd que opera com o HASP depende de um sistema de arquivos virtual USB do Linux chamado de usbdevfs e eu não encontrei um porte compatível no FreeBSD. Sendo assim, esta configuração é útil em um ambiente do tipo load-balancing, devido à necessidade de um outro servidor (Linux ou Windows) para alojar o dispositivo de segurança e o serviço de licenças;
  • Este roteiro não cobre a instalação do FreeBSD 7.0.
  • Este roteiro não cobre a instalação e configuração do PostgreSQL, visto que este assunto já está amplamanete abordado pela comunidade.

Pré-requisitos

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

Digite os seguintes comandos:

mkdir -p /var/lib/rpm
mkdir -p /compat/linux/var/lib/rpm
mkdir -p /compat/linux/microsiga
ln -s /compat/linux/microsiga /microsiga

Patch do CD 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/

Edição do script de instalação

Utilize o seu editor de textos predileto para editar o script de instalação Linux chamado /usr/local/distfiles/siga/protheus8server/install_linux:

  • Localize a seção "Variáveis Locais" na função run_rpms() que deverá conter:
rpm_server="protheus-server-$version-$release.i386.rpm"
rpm_protheus_data="protheus-data-$version-$release.i386.rpm"
rpm_rpo="protheus-rpo-$db-$rpo-$version-$release.i386.rpm"
nrpo=$rpo
rpm_loc="protheus-systemload-$local-$version-$release.i386.rpm"
rpm_general="protheus-systemload-general-$rpo-$version-$release.i386.rpm"

  • 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ção

Protheus 8

Rode o script modificado, digitando:

cd /usr/local/distfiles/siga/protheus8server
./install_linux

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 .

Para a instalação do pacote digite:

rpm -ivh --nodeps --ignoreos --dbpath /var/lib/rpm --root /compat/linux unixODBC-2.2.11-1.i386.rpm

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

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).

Veja um exemplo de seu conteúdo a seguir:

[ODBC Data sources ]
teste=Ambiente de Teste

[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

# Set some defaults
microsiga_enable=${microsiga_enable:-"NO"}

# This is required for microsiga daemon
USER=`whoami`
export USER
HOSTNAME=`hostname`
export HOSTNAME

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 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"

# Set some defaults
topconnect_enable=${topconnect_enable:-"NO"}
name=topconnect
rcvar=`set_rcvar`
load_rc_config $name

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.

Comentrios
Show de bola!
Por Kivanio em 13/10/2008 12:32:35
Oha, parabns cara, sensacional, eu mesmo j tentei fazer esta instalao e realmente o HASP um impeditivo.
Hard Key
Por Fernando Frana em 13/10/2008 14:56:47
Parabns pelo tuto. 
 
Esse hardkey ao qual voc se refere usb? 
Tenho um aqui que ainda db25, na porta paralela... vislumbro a possibilidade de funcionar no FreeBA.
Re: Hard Key
Por mgruber em 21/10/2008 11:06:59
O hard key que temos do modelo USB. Para o modelo de porta paralela o daemon correto o aksparlnx. Lembro-me de ter encontrado o cdigo fonte deste ltimo em um dos sites ftp da Alladin. 
No fao idia do grau de dificuldade para portar esse cdigo fonte.
Protheus 10
Por Carol Vasquez em 12/02/2010 14:46:43
Mathias, mudou algo neste procedimento para a verso 10 ?  
 
Obrigada, 
 
Carol Vasquez 
www.Experfite.com
rfOELJux
Por Mutate em 20/08/2012 14:44:18
hadi ?????:salam khaste naaibhsn chera moadel 14 baba kasaye hastan ke moadelashon 18 ama chizi balad nistan ma ke moadelamun 13 nemitonim sherkat konim ma ke khodaye computerim,khaheshan masolan darnazar begiran in mavaredo ye emtahane vorodi begirin


Comente!*
Nome:
E-mail
Homepage
Ttulo:
Comentrio:

Cdigo:* Code

ltima Atualizao ( 12/10/2008 )
 
< Anterior   Prximo >
FUG-BR - Espalhando BSD
Dicas Rpidas:

Partição encheu e não sabe o motivo? Descubra com:

du -s /usr/* | sort -n

 






Wallpapers
Sua Opiniao
Online:
Ns temos 14 visitantes online


Devil Store - Sua loja BSD
FreeBSD Brasil LTDA

FUG-BR: Desde 1999, espalhando BSD pelo Brasil.