Guia para Instalação no LInux


#1

No espírito de retribuir à comunidade tudo que aprendi, fiz este guia, espero ser útil:

Guia para Instalação do AdempiereLBR (localização Brasil)

Guia para Instalação em sistema Linux Red Hat, Red Hat Entreprise Linux, Centos ou White Box

Este guia foi baseado em vários documentos da Internet, foi escrito por mim e testando modificações para ver o que dava certo, pois sou leigo em postgresql e java, e forem verificados alguns erros por favor me notifica. Segue abaixo os endereços da Internet de alguns destes links como referência, desde já ofereço meus agradecimentos aos autores destes textos, bem como minhas desculpas àqueles que me esqueci, que sem os quais este guia não seria possível.

wiki.openxpertya.org/index.php/I … ora_Core_6
adempiere.com/wiki/index.php … S_5.1_(Xen_with_Postgres
adempiere.com/wiki/images/f/ … mpiere.pdf
eltonplima.blogspot.com/2008/11/ … buntu.html
adempiere.com/wiki/images/b/ … ows_Xp.pdf
fedora.org.br/fortopic7194.html

Recomendo uma bela olhada na página do AdempiereLBR (localização Brasil) :
adempierelbr.com.br/
Recomendo também criar uma conta e acompanhar o fórum da Kennos que desenvolveu o AdempiereLBR:
viewforum.php?f=7

Primeira Parte - Instalação do Java

O Adempiere roda em dois programas separados, o sevidor em background e o cliente gráfico, o cliente se conecta ao servidor e faz todos os acessos necessários, mas antes é necessário configurar e fazer rodar o servidor, para os clientes o java JRE da sun é suficiente, mas para o servidor é necessário o JDK, então baixe a versão RPM do SDK mais atual ou então no mínimo as versões do 1.5.0 para cima. Baixe-o, mude as permissões do arquivo para executável e rode como root para fazer a instalação. É necessário também a instalação de alguns pacotes de compatibilidade.
sudo yum install -y compat-libstdc+±33 compat-libstdc+±296 wget system-switch-java
wget -O ~/jdk-6u11-linux-i586-rpm.bin javadl.sun.com/webapps/download/ … leId=12790
chmod +x jdk-6u11-linux-i586-rpm.bin
sudo ./jdk-6u11-linux-i586-rpm.bin
Responda yes às perguntas, isto instalará o java em /usr/java/jdk1.6.0_11 com um link para ele em /usr/java/default
Agora vamos à configuração da máquina virtual:
sudo /bin/ln -s /usr/java/default /usr/lib/jvm/jdk
sudo /usr/sbin/alternatives --install /usr/bin/java java /usr/lib/jvm/jdk/bin/java 18000
sudo /usr/sbin/alternatives --auto java

IMPORTANTE : A parte abaixo se refere a um bug no Fedora 8 apenas:
Existe um bug no libx11 do fedora 8 (libX11-1.1.3-4.fc8) (bugzilla.redhat.com/show_bug.cgi?id=372071), então fazemos um reparo temporário :
sudo sed -i ‘s/XINERAMA/FAKEEXTN/g’ /usr/java/jdk1.6.0_11/jre/lib/i386/xawt/libmawt.so
FIM da parte da BUG do Fedora 8

Para testar se saiu tudo certo :
java -version
Se deu tudo certo deve aparecer:
java version “1.6.0_11”
Java™ SE Runtime Environment (build 1.6.0_11-b03)
Java HotSpot™ Server VM (build 11.0-b16, mixed mode)

Segunda Parte - Instalação do PostgreSQL

O Adempiere foi baseado no Compiere e dele herdou a capacidade de se conectar ao Oracle, mas o Adempiere no espírito do software livre teve seu código modificado para poder conectar-se também com o postgresql, e como este já acompanha os RedHat/Fedora, a instalação do BD será feita nele.
Primeiro instale o postgresql se ainda não estiver no sistema
sudo yum install postgresql* -y
Ou melhor ainda (dificilmente apresentará erros ao instalar o PLJAva), baixe os arquivos rpm que estiverem na versão mais atual, que irás encontrar no seguinte endereço:
ftp2.uk.postgresql.org/sites/ftp … rg/binary/
Vai na versão mais atual e ache os executáveis ou do Fedora ou RedHat (RHEL ou Centos), baixe-os em um diretório separado específico que criares e instale-os daí:
sudo rmp -Uvh *.rpm
Se pedir alguma atualização de algo já instalado, localiza qual pacote e instale-o com o yum install.
Depois deves iniciar o DB
sudo /sbin/service postgresql initdb
Vamos modificar os arquivos de configuração de forma a permitir conexões do host local e da rede:
sudo gedit /var/lib/pgsql/data/pg_hba.conf
Edita as últimas linhas conforme abaixo (usando os endereços da tua rede):

TYPE DATABASE USER CIDR-ADDRESS METHOD

“local” is for Unix domain socket connections only

local all all trust sameuser

IPv4 local connections:

host all all 127.0.0.1/32 trust sameuser

IPv4 net connections:

host all all 192.168.0.0/24 trust sameuser
Salve-o
sudo gedit /var/lib/pgsql/data/postgresql.conf
Edita as seguintes linhas conforme abaixo:
listen_addresses = ‘’ # what IP address(es) to listen on;
# comma-separated list of addresses;
# defaults to ‘localhost’, '
’ = all
# (change requires restart)
port = 5432 # (change requires restart)
Salve-o

Depois iniciar o serviço
sudo /sbin/service postgresql start

Para não te incomodares como atualização do postgresql automática, faz o seguinte, edita o /etc/yum.conf
sudo gedit /etc/yum.conf
acrescenta a seguinte linha:
exclude=postgresql*
salva-o.

Terceira Parte - Modificação do Profile

Vamos editar o /etc/profile, de forma a certas variáveis de ambiente estarem definidas para todos os usuários do sistema.
sudo gedit /etc/profile
logo acima da linha “export PATH USER LOGNAME MAIL HOSTNAME HISTSIZE INPUTRC” inclua o seguinte:
export PATH PATH=$PATH:$HOME/bin:/usr/lib/pgsql:/usr/lib/jvm/jdk
JAVA_HOME=/usr/lib/jvm/jdk
JRE_HOME=$JAVA_HOME/jre
ADEMPIERE_HOME=/opt/Adempiere
PGDATA=/var/lib/pgsql/data
e modifca a linha : “export PATH USER LOGNAME MAIL HOSTNAME HISTSIZE INPUTRC”
para : “export PATH USER LOGNAME MAIL HOSTNAME HISTSIZE INPUTRC JAVA_HOME JRE_HOME ADEMPIERE_HOME PGDATA”
Salve-o
Para garantir as modificações no sistema reinicie-o
reboot

Quarta Parte - Instalação do PLJava

Faça esta parte com muita calma e cuidado, é a parte mais complicada e que dá muita dor de cabeça.
O postgresql possui a capacidade de aceitar comandos em várias linguagens de programação, algumas como o java precisam, que seja instalado um “suporte” no postgresql para isto, este é o trabalho do PLJava
Veja na página do projeto a versão que mais se adapta às tuas condições, vendo qual tua versão do postgresql e do java, procura usar as versões compatíveis mais atuais (isto dimnui a possibilidade de erros), baixando do endereço abaixo:
pgfoundry.org/frs/?group_id=1000038
Descompacta como root, em uma pasta à criar, no diretório /var/lib/pljava
Baixe o drive jdbc do postgresql, observando as versões do java e do postgresql que usas em:
jdbc.postgresql.org/download.html
Copia-o para os seguintes diretórios, sempre como root
/var/lib/pgsql
/var/lib/pljava
Modifica as permissões SOMENTE do PLjava:
sudo chmod -R 755 /var/lib/pljava
Modifica o postgresql.conf
sudo gedit /var/lib/pgsql/data/postgresql.conf
Acrescenta no final do arquivo:
dynamic_library_path = ‘$libdir:/var/lib/pljava’
custom_variable_classes = ‘pljava’
pljava.classpath=’/var/lib/pljava/pljava.jar’
Salva-o
Cria os seguintes arquivos:
sudo gedit /etc/sysconfig/pgsql/postgresql
com o seguinte conteúdo:
export LD_LIBRARY_PATH=$JRE_HOME/lib/i386:$JRE_HOME/lib/i386/client:$JRE_HOME/lib/i386/native_threads
salva-o
sudo gedit /etc/ld.so.conf.d/postgresql.conf
com o seguinte conteúdo:
/usr/java/jdk1.6.0_11/jre/lib/i386
/usr/java/jdk1.6.0_11/jre/lib/i386/client
salva-o
sudo gedit /etc/ld.so.conf.d/jvm.conf
com o seguinte conteúdo:
/usr/java/jdk1.6.0_11/jre/lib/i386/server
salva-o
sudo gedit /etc/ld.so.con.d/java.conf
com o seguinte conteúdo:
/usr/java/jdk1.6.0_11/jre/lib/i386
/usr/java/jdk1.6.0_11/jre/lib/i386/client
/usr/java/jdk1.6.0_11/jre/lib/i386/native_threads
salva-o
Aplicamos as configurações ao sistema:
sudo /sbin/ldconfig
Reiniciamos o Postgresql
sudo /sbin/service postgresql restart
Vamos instalar o PLjava nos DB usando o modelo template1, assim todos o bancos criados por este modelo já terão o suporte ao java.
su
cd /var/lib/pljava
su postgres
psql -dtemplate1 -Upostgres
vai aparecer algo como o seguinte:
Welcome to psql 8.3.5, the PostgreSQL interactive terminal.
Type: \copyright for distribution terms
\h for help with SQL commands
? for help with psql commands
\g or terminate with semicolon to execute query
\q to quit
template1=#
digita o seguinte
\i install.sql
Vai aparecer umas várias mensagens, mas não pode dar erro, se der verifica o que foi.
Normalmente os erros são o seguinte:
Primeiro, tu não deste permissões de execução para outros usuários além do root para os arquivos dentro do diretório /pljava.
Segundo, e muito comum, as versões do postgresql do java e do pljava não são compatíveis, baixa outras, se possível as mais atuais, sempre verificando as compatibilidade e reinicia as instalações.
Terceiro, o Selinux está impedindo, abra o setroubleshot e veja as mensagens, vá para um terminal de texto puro tty, loga como root e digita exatamente o comando colocado como possível solução, isto vai aparecer duas vezes com dois comandos levemente diferentes a fazer, faça-os. Será algo como:
restorecom -v ./pljava
Se após isto o SELinux continuar complicando, tu vais compilar um módulo para ele, na ajuda do setroubleshot isto é explicado bem detalhado também. Será algo como:
audit2allow -m local -l -i /var/log/audit/audit.log > local.te
checkmodule -M -m -o local.mod local.te
semodule_package -o local.pp -m local.mod
semodule -i local.pp
Bom se ainda assim não funcionar desativa-o, mas tenta não fazê-lo, refaça tudo de novo se necesário, mas se não der:
sudo /usr/sbin/setenforce Permissive

Esta parte dá muita DOR DE CABEÇA, na primeira instalação que fiz tive de desativar o SELinux, na segunda vez, mais tarimbado, consegui fazer funcionar com ele, dando os comandos e compilando um módulo para isto. Mas se não tiveres erro o bixo tá quase morto.

Instalação do Adempiere

Cria o diretório /opt/Adempiere
sudo mkdir /opt/Adempiere
cria um grupo adempiere
sudo groupadd adempiere
te coloca como usuário do grupo
sudo gpasswd -a usuário adempiere
muda as propriedades do diretório Adempiere para os usuários do grupo Adempiere poderem escrever lá
chgrp -R adempiere /opt/Adempiere/
chmod -R 775 /opt/Adempiere
Baixe o AdempiereLBR ( Localização Brasil ) de : adempierelbr.com.br/index.ph … Itemid=275
Ou ainda do :
sourceforge.net/project/showfile … _id=577946
Descompacta-o no diretório /opt/Adempiere
Baixa também o o ExpDat_lbr.zip, que está junto do adempiere no endereço acima do sourceforge, e descompata-o no diretório /opt/Adempiere/data
Baixa o arquivo com o plano de contas se a versão que baixares não tem o plano de contas BR:
download/file.php?id=5
descompacta-o na pasta /data/import/
Vamos criar o banco de dados, podes fazer bem fácil isto usando o pgadmi3, se não o tiveres, instala-o: sudo yum install pgadmin3, depois cria o usuário adempiere no postgresql e o bano de dados adempiere sendo o dono o uuário adempiere usando como modelo o template1, onde foi instalado o pljava. Ou faça com os comandos no prompt:
sudo su postgres
psql -Upostgres -dtemplate1
create user adempiere
create database adempiere
IMPORTANTE
Iportante, se teu servidor usa mais de uma placa de rede (o que é muito comum), cria um nome para um dos endereço de rede dele tipo adempiere.servidor.minharede.com.br, presumindo que teu servidor se chame servidor.minharede.com.br, o SO saberá automático que este nome pertence ao servidor e vai aceitá-lo, depois usa toda a configuração do adempiere para este nome do servidor. Porquê isto? O adempiere inicializa em uma placa de rede apenas, aí se procurares pelo servidor.minharede.com.br, poderás pedir acesso por um endereço de rede que ele não está ouvindo e o cliente retornará que o servidor não está funcionando, enquanto que nos clientes rodando no servidor vai funcionar.
Inicia a configuração do sistema rodando o RUN_setup.sh, colocando os dados da tua configuração na tela que aparecer, troca as portas 80 por 8080 e 443 por 4443, digita no test e vê se está tudo Ok se sim grava a configuração, após isto vai aparecer uma tela para aceitar a licença, dá OK e aguarda a tela sumir e no terminal aparecer BUILD SUCCESSFUL e entrar no cursor de novo, demora bastante, lembra que é JAVA e é grande o bixo.
Depois executa o seguinte:
sh /opt/Adempiere/utils/RUN_DBRestore.sh
Isto vai pegar os dados do ExpDat.dmp que foi descompactado antes do ExpDat.zip, com as configurações do Brasil, e colocar no banco de dados adempiere.
Após isto já dá para começar a rodar o servidor, não esquecendo de liberar a porta tcp 8080 no firewall:
sh /opt/Adempiere/utils/RUN_Server2.sh
E acessar pelo cliente
sh /opt/Adempiere/RUN_Adempiere.sh
Ou acessar via Browser
nome_servidor_do_setup:8080
Desliga tudo usando o:
sh /opt/Adempiere/utils/RUN_Server2Stop.sh

Automatizando o Sistema
Bom esta parte ensina como fazer o programa adempiere servidor rodar como um serviço do sistema, ou seja, tu podes iniciá-lo com sudo /sbin/service adempiere.sh, deixando-o muito mais prático de controlar, inclusive colocando-o no Menu do system-config-service.
Vai até a pasta …utils/unix
cd /opt/Adempiere/utils/unix
Edita o arquivo adempiere-redhat.sh muda os diretórios escritos lá para o /opt/Adempiere e o diretório que pede o bash.profile, edita para o teu, mais abaixo onde está colocado @ADEMPIERE_HOME troca por /opt/Adempiere, pois te lembra que estará iniciando um serviço no boot do sistema e isto pode acontecer antes do /etc/profile ser lido, então o sistema não saberá onde é o ADEMPIERE_HOME, se quiser edita também os textos do echo, pois ao acessar o servidor muitos usuários leigos do sistema nã entenderão as mensagens que podem vir à aparecer.
Após isto vamos colocá-lo disponível como serviço ao SO
sudo cp /opt/Adempiere/util/unix/adempiere_redhat.sh /etc/rc.d/init.d/adempiere_redhat.sh
cd /etc/rc.d/init.d/
sudo /sbin/chkconfig –-add adempiere_redhat.sh
Após isto ele já deve aparecer para o sistema como serviço, assim poderás comandá-lo pelos seguintes meios:
sudo /sbin/service/adempiere_redhat.sh [status,start,stop,restart]
sudo system-config-service ( aparece no menu sistema do gnome )
sudo ntsysv ( menu em modo texto de configuração dos serviços, só aparece nos red hat antigos )

Clientes gráficos
Após instalado e rodando o servidor, tu poderás usar o RUN_adempiere.sh ou usar as opções web que aparecem no browser ao se colocar o endereço nome_servidor_do_setup:8080, lá tu podes instalar o cliente web, que é a melhor solução, rodar de dentro do browser ou mesmo baixar o RUN_adempiere.sh ou RUN_adempiere.bat (para clientes windows), deste modo será fácil instalar o cliente nas máquinas cliente da tua rede, sejam linux ou windows.
Detalhe parece que o cliente web não funciona direito em estações para mais de um usuário, ou seja ela instala para o primeiro bem e depois para os outros usuários não parece funcionar direito, se acontecer, baixa do servidor o arquivo compactado e instala ou o RUN_adempiere.sh ou o RUN_adempiere.bat.

Um bom trabalho e uso à todos


Instalação Passo a Passo em Linux
#2

golombieski,

Exelente tutorial!

Consegui avançar bastante, mas estou encontrando alguns problemas e espero que possa me ajudar.

No momento da instalação do Adempiere, se eu executo o comando sh /opt/Adempiere/utils/RUN_DBRestore.sh, aparece a mensagem de erro: /opt/Adempiere/utils/RUN_DBRestore.sh: line 5: ./myEnvironment.sh: Arquivo ou diretório não encontrado

Se eu executo o comando sh /opt/Adempiere/RUN_Adempiere.sh, aparece a seguinte mensagem: /opt/Adempiere/RUN_Adempiere.sh: line 41: /usr/local/sun-jdk/bin/java: Arquivo ou diretório não encontrado

Outra coisa: As configurações que tu sugere quando são utilizadas duas placas de rede são feitas em qual arquivo? Seria no AdempiereEnv.properties?

Ah! Meu servidor é um CentOS 5.4

Agradeço, se puder ajudar.

Um abraço,
Marcelo


#3

Marcelo!!

execulte o comando dentro da pasta $adempeire/utils.


#4

Michel,

Obrigado pela resposta, mas acontece o mesmo erro!

Veja a mensgem a seguir:

[root@server utils]# sh RUN_Adempiere.sh Adempiere Client /opt/Adempiere RUN_Adempiere.sh: line 41: /usr/local/sun-jdk/bin/java: Arquivo ou diretório não encontrado

Tá bem difícil…não sei onde errei.

Utilizei:
jdk 1.6 update 18
java version “1.6.0_18”
Java™ SE Runtime Environment (build 1.6.0_18-b07)
Java HotSpot™ Client VM (build 16.0-b13, mixed mode, sharing)

postgres 8.3
pljava pg8.3-1.4.0
postgresql-8.3-605.jdbc4.jar

Se puder ajudar, agradeço…

Um abraço,
Marcelo


#5

Já indicou os paths? Se indicou veja se ta certo o caminho do jdk!


#6

Obrigado pela ajuda…

Realmente eram os paths que estavam incorretos.

Outra perguntas:
O Adempiere pode rodar sobre tomcat 6 ao invés de Jboss?
Na versão mais nova (3.54) não há mais necessidade do PLJAVA?

Um abraço,
Marcelo


#7

Eu testei com o apache, mas nao funcionou a parte desktop, apenas a parte web.


#8

Edilson,

Pois é…será que na próxima versão estável funcionará também o desktop?