Ir para conteúdo
  • Cadastre-se

dev botao

Instalando pacote ACBr no Larazrus 64 (com Linux Mint Cinnamon 64)


Ver Solução Respondido por Daniel Simoes,
  • Este tópico foi criado há 2021 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

  • Membros Pro
Postado

Boa tarde a todos,

e parabéns para toda equipe do ACBr e para todos que direta e/ou indiretamente contribuem para o projeto.

Segue minha dificuldade, pois estou iniciando com o lazarus:

Logo após instalar o pacote "ACBr_NFe.lpk", o lazarus para de reconstruir. Não mostra nenhuma mensagem, apenas não responde ao "Rebuild".

Acredito que seja por falta de alguma dll ou caminho. Ou até mesmo, erro na instalação.

Segue abaixo, exatamente como cheguei neste ponto.

 

Instalei o Linux Mint Cinnamon 64;

Lazarus 1.8.4 64bit
Baixei os .db, duplo clique, na seguinte ordem:
1º fpc_3.0.4-3_amd64.deb
2º fpc-src_3.0.4-2_amd64.deb
3º lazarus-project_1.8.4-0_amd64.deb
 

Fortes Report - Baixei e instalei o pacote com sucesso.

 

Bibliotecas ACBr

Seguindo instrução "Luiz Otavio Ribeiro Valle" em 29-01-2018 no forum:

Acessar o terminal
$ sudo su -
# apt-get update&&apt-get upgrade
# apt-get install subversion  <-- Para trabalhar com repositório SVN
# apt-get install git-core  <-- Para trabalhar com git

# apt-get install xml2  ← Configurando xml2 (0.5-1)
# apt-get install libxslt1-dev  ← Configurando libxslt1-dev:amd64 (1.1.29-5ubuntu0.1) ...
# apt-get install libltdl-dev  ← Configurando libltdl-dev:amd64 (2.4.6-2) ...
# apt-get install openssl   ← openssl is already the newest version (1.1.0g-2ubuntu4.3).
# apt-get install libgtk-3-dev  ← Configurando libgtk-3-dev:amd64 (3.22.30-1ubuntu3) ...
# apt-get install libssl-dev  ← Configurando libssl-dev:amd64 (1.1.0g-2ubuntu4.3) ...
# apt-get install libxml2-dev  ← libxml2-dev is already the newest version (2.9.4+dfsg1-6.1ubuntu1.2).

xmlsec1  <-- Não utilizar esta do repositório. Baixar do site: https://www.aleksey.com/xmlsec/
. Clicar no link “Download”; Clicar no link “Sources for latest version.”; (x) Salvar arquivo e “Ok”.
. Irá baixar o arquivo “xmlsec1-1.2.28.tar.gz”;  “Extrair aqui”;
. Clique na pasta descompactada com botão direito e escolha “Abrir no terminal”.
$ ./configure --prefix=/usr
$ make
$ sudo make install ← Instalação da biblioteca
$ sudo ldconfig ← Confere Instalação.
$ pkg-config xmlsec1 --modversion  ← Retorna versão instalada.
1.2.28
$ cd /usr/lib
$ ls | grep xmlsec ← exibir bibliotecas xmls
libxmlsec1.a
libxmlsec1.la
libxmlsec1-openssl.a
libxmlsec1.so
O ACBr procura por “xmlsec” e não por “xmlsec1”. Então vamos criar um alias (um apelido).
$ sudo ln -s /usr/lib/libxmlsec1.so libxmlsec.so  ← Cria link simbólico do 1º arq para o 2º arq

Pacote ACBr - Baixar
# cd /home/visitante/Downloads/
# svn co svn://svn.code.sf.net/p/acbr/code/trunk2 acbr  ← co=Checkout

Pacote ACBr - Instalar
Abrir o Lazarus: File Close all; Package, "Open Package File (.lpk)..."
\ACBr\Pacotes\Lazarus\synapse\laz_synapse.lpk .......... Compilar
\ACBr\Pacotes\Lazarus\ACBrComum\ACBrComum.lpk .......... Compilar, Instalar
\ACBr\Pacotes\Lazarus\ACBrDiversos\ACBrDiversos.lpk .... Compilar, Instalar
\ACBr\Pacotes\Lazarus\ACBrTCP\ACBrTCP.lpk .............. Compilar, Instalar
\ACBr\Pacotes\Lazarus\ACBrOpenSSL\ACBrOpenSSL.lpk ...... Compilar, Instalar
\ACBr\Pacotes\Lazarus\PCNComum\PCNComum.lpk ............ Compilar
\ACBr\Pacotes\Lazarus\ACBrIntegrador\ACBr_Integrador.lpk Compilar, Instalar
\ACBr\Pacotes\Lazarus\ACBrDFe\ACBrDFeComum.lpk ......... Compilar
Até aqui, se clicar em "Tools","Build Lazarus with Profile: Normal IDE", executa normalmente.
\ACBr\Pacotes\Lazarus\ACBrDFe\ACBrNFe\ACBr_NFe.lpk ..... Compilar, Instalar
Já aqui, ao tentar o "Build...", não executa (Não responde, sem ação).

Necessito de ajuda aqui.
Tentei detalhar todo processo, para permitir avaliar se efetuei algum procedimento errado.

O que pode estar faltando?

Utilizando o Lazarus no Windows, neste ponto, pode solicitar as dlls MinGW\32. Eu as adiciono na pasta do lazarus e resolve.
E aqui no linux, qual conjunto de dll devo utilizar e em que pasta devo colocar?

Agradeço a atenção de todos.

  • Fundadores
  • Solution
Postado

Porque você  está usando um Lazarus tão antigo ?

Tente baixar no site do Lazarus a versão 2.0.4 em DEB

Hoje em dia o ACBr não precisa mais da XMLSec pois escrevemos nossas próprias funções com a libXML2...

Você pode desligar a dependência da XMLSec em ACBr.inc 

Consultor SAC ACBr

Daniel Simões de Almeida
O melhor TEF, é com o Projeto ACBr - Clique e Conheça
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.

  • 2 semanas depois ...
  • Membros Pro
Postado

Bom dia!
Obrigado pelo retorno Daniel!

Seguindo suas orientações no post anterior, fiz as seguintes modificações:

- Atualizei o Lazarus para a versão 2.0.2 com FPC 3.0.4. (a última que encontrei no site https://www.lazarus-ide.org/)
- Descomentei no ABCr.ini: {$DEFINE DFE_SEM_XMLSEC}

Esse foi o único ajuste que fiz no ACBr.ini, depois de baixado.

Para Linux com Lazarus devo alterar mais alguma coisa?

As configurações do ACBr.ini ficou assim:

// Descomente a linha abaixo, se voc� quer que seu Execut�vel N�O dependa das DLLs LibXML2, LibXMLSEC,
{.$DEFINE DFE_SEM_OPENSSL}
// Descomente a linha abaixo, se voc� quer que seu Execut�vel N�O dependa das DLLs LibXMLSEC, mas continue suportando a LibXML2
{$DEFINE DFE_SEM_XMLSEC}  <-- Esta eu descomentei
// Descomente a linha abaixo, se voc� quer que seu Execut�vel N�O dependa das DLLs LibXML2, mas continue suportando LibXMLSEC
{.$DEFINE DFE_SEM_LIBXML2}
// Descomente a linha abaixo, se voc� n�o utiliza a obsoleta Capicom para Criptografia (recomendado)
{$DEFINE DFE_SEM_CAPICOM}
// Descomente a linha abaixo, se voc� n�o utiliza a obsoleta MSXML para Assinatura de XML(recomendado)
{.$DEFINE DFE_SEM_MSXML}
// Descomente a linha abaixo, se voc� n�o deseja adicionar a Depend�ncia da INDY nos seus Projetos
{.$DEFINE DFE_SEM_INDY}

Removi e reinstalei os pacotes novamente. Desta vez, sem erro.

No meu projeto (em Lazarus 64, no Linux Mint 64), configuei assim:
ACBrNFe1.Configuracoes.Geral.SSLCryptLib   := cryOpenSSL;
ACBrNFe1.Configuracoes.Geral.SSLHttpLib    := httpOpenSSL;
ACBrNFe1.Configuracoes.Geral.SSLLib        := libOpenSSL;
ACBrNFe1.Configuracoes.Geral.SSLXmlSignLib := xsLibXml2;

ACBrNFe1.Configuracoes.Certificados.NumeroSerie        := '';
ACBrNFe1.Configuracoes.Certificados.ArquivoPFX         := Caminho e nome do arquivo pfx;
ACBrNFe1.Configuracoes.Certificados.Senha              := Senha do pfx;

ACBrNFe1.SSL.CarregarCertificado;

Quando executo a linha acima, mostra:
    Project NFe300 raised exception class 'External: SIGSEGV'.

     In file '../../../Fontes/ACBrDFe/ACBrDFeOpenSSL.pas' at line 142:
    Validade := {$IFDEF DELPHIXE4_UP}AnsiStrings.{$ENDIF}StrPas( PAnsiChar(notAfter^.data) );

Devo estar esquecendo de alguma coisa...

Outro item que fiquei na dúvida. Estou utilizando o mesmo arquivo pfx que já utilizo no ambiente Windows. É isso mesmo ou devo solicitar um pfx para linux?

Podem me ajudar?

 

Postado
5 horas atrás, mannesoft disse:

Bom dia!
Obrigado pelo retorno Daniel!

Seguindo suas orientações no post anterior, fiz as seguintes modificações:

- Atualizei o Lazarus para a versão 2.0.2 com FPC 3.0.4. (a última que encontrei no site https://www.lazarus-ide.org/)
- Descomentei no ABCr.ini: {$DEFINE DFE_SEM_XMLSEC}

Esse foi o único ajuste que fiz no ACBr.ini, depois de baixado.

Para Linux com Lazarus devo alterar mais alguma coisa?

As configurações do ACBr.ini ficou assim:

// Descomente a linha abaixo, se voc� quer que seu Execut�vel N�O dependa das DLLs LibXML2, LibXMLSEC,
{.$DEFINE DFE_SEM_OPENSSL}
// Descomente a linha abaixo, se voc� quer que seu Execut�vel N�O dependa das DLLs LibXMLSEC, mas continue suportando a LibXML2
{$DEFINE DFE_SEM_XMLSEC}  <-- Esta eu descomentei
// Descomente a linha abaixo, se voc� quer que seu Execut�vel N�O dependa das DLLs LibXML2, mas continue suportando LibXMLSEC
{.$DEFINE DFE_SEM_LIBXML2}
// Descomente a linha abaixo, se voc� n�o utiliza a obsoleta Capicom para Criptografia (recomendado)
{$DEFINE DFE_SEM_CAPICOM}
// Descomente a linha abaixo, se voc� n�o utiliza a obsoleta MSXML para Assinatura de XML(recomendado)
{.$DEFINE DFE_SEM_MSXML}
// Descomente a linha abaixo, se voc� n�o deseja adicionar a Depend�ncia da INDY nos seus Projetos
{.$DEFINE DFE_SEM_INDY}

Removi e reinstalei os pacotes novamente. Desta vez, sem erro.

No meu projeto (em Lazarus 64, no Linux Mint 64), configuei assim:
ACBrNFe1.Configuracoes.Geral.SSLCryptLib   := cryOpenSSL;
ACBrNFe1.Configuracoes.Geral.SSLHttpLib    := httpOpenSSL;
ACBrNFe1.Configuracoes.Geral.SSLLib        := libOpenSSL;
ACBrNFe1.Configuracoes.Geral.SSLXmlSignLib := xsLibXml2;

ACBrNFe1.Configuracoes.Certificados.NumeroSerie        := '';
ACBrNFe1.Configuracoes.Certificados.ArquivoPFX         := Caminho e nome do arquivo pfx;
ACBrNFe1.Configuracoes.Certificados.Senha              := Senha do pfx;

ACBrNFe1.SSL.CarregarCertificado;

Quando executo a linha acima, mostra:
    Project NFe300 raised exception class 'External: SIGSEGV'.

     In file '../../../Fontes/ACBrDFe/ACBrDFeOpenSSL.pas' at line 142:
    Validade := {$IFDEF DELPHIXE4_UP}AnsiStrings.{$ENDIF}StrPas( PAnsiChar(notAfter^.data) );

Devo estar esquecendo de alguma coisa...

Outro item que fiquei na dúvida. Estou utilizando o mesmo arquivo pfx que já utilizo no ambiente Windows. É isso mesmo ou devo solicitar um pfx para linux?

Podem me ajudar?

 

boa tarde!

Estou tentando rodar o exemplo parecido como o seu e não estou obtendo sucesso, no meu caso uso o linux mint 18.2 + lazarus + componentes acbr atualizados, tenho um sistema que funciona perfeitamente para o sat, porém preciso desenvolver algo para nfce e qdo tento carregar o certificado A1 tenho a seguinte mensagem "Lercertificadosstores" não suportado em "TdfeOpenssl".

Consegui carregar o certificado digital?

desde já muito obrigado!

 

 

×
×
  • Criar Novo...

Informação Importante

Colocamos cookies em seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies, caso contrário, assumiremos que você está bem para continuar.