Ir para conteúdo
  • Cadastre-se

dev botao

ACBrLib linux


Ver Solução Respondido por Daniel InfoCotidiano,
  • Este tópico foi criado há 190 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,

Eu preciso saber onde colocar e quais são as dependências do ACBrLibNFe para linux. Eu já estou usando normalmente para windows (servidor web) e funciona. Agora migrei para o azure e estou usando um plano de serviço do linux e estou recebendo a mensagem de que não foi possível carregar a biblioteca. Estou usando o mesmo procedimento do windows, na pasta raiz criei uma pasta  "ACBrLib" e dentro dela as respectivas pastas x64 ou x86, onde coloquei as bibliotecas de dependência (coloquei as mesmas do windows) e a biblioteca correspondente do linux libacbrnfe64.so. Preciso usar outras bibliotecas de dependência, quando o ambiente é linux? Preciso colocar os arquivos em outra pasta?

Att

Társis Francke Ferreira

  • Membros Pro
Postado

Obrigado pela resposta Daniel, mas aquilo se aplica para quem está instalando diretamente em uma máquina linux. No meu caso, eu estou usando um app service do linux no azure. Eu não tenho acesso direto a essas pastas. Eu vi aqui no fórum uma postagem de um membro que havia conseguido fazer com o ACBrBoleto, mas ainda não ficou claro para mim como. Qualquer ajudar será muito bem vinda.

Obrigado

 

Társis

  • Membros Pro
Postado

Já tenho trabalhado com o linux no azure há algum tempo. Já migrei todas as minhas api's para o linux no azure sem nenhum problema e estão rodando normalmente. Somente no caso da ACBrLib é que empaquei. Em máquinas linux propriamente (permissões, instalação, comandos) eu sou realmente cru. Sim, eu vi essa postagem. Já dá um alento saber que é possível, mas não tem os passos para executar. Poderiam dar uma luz?

Obrigado

 

Társis

  • Membros Pro
Postado
56 minutos atrás, Juliomar Marchetti disse:

tu já trabalha com linux e azure ou é a primeira vez?

Com Linux especificamente faz muito tempo que não mexo, até porque o app service abstrai isso. Mas tive que relembrar algumas coisas do meu cursinho da conectiva...

Com o Azure em si já faz uns 4 anos, estamos migrando os sistemas para Web.

  • Membros Pro
Postado

Pois é justamente aí que a coisa está pegando. Como tu disseste, o app service abstrai praticamente tudo. Somente em casos muito específicos, como esse, é que surge essa dificuldade.

  • Membros Pro
Postado
20 minutos atrás, Gandalf disse:

Seria mais fácil implantar com docker/container?

Eu acho que é um ambiente mais controlável mas tem a curva de aprendizado do Docker e sua distribuição.

A parte de fazer a lib funcionar vai ser exatamente igual, vai precisar dos mesmos arquivos e dependências.

O que me fez pensar no Docker foi a possibilidade ou não de instalar as dependências no Azure mas como isso foi resolvido não houve necessidade. De qualquer forma vou estudar e testar com o Docker, vai que uma hora precisa.

  • Membros Pro
Postado

Justamente, com o Docker tu já mandas todas as dependências (no windows a ACBrLib já funciona) e, a princípio, não vai precisar instalar no linux.

  • Moderadores
Postado
1 hora atrás, Gandalf disse:

Já tenho trabalhado com o linux no azure há algum tempo. Já migrei todas as minhas api's para o linux no azure sem nenhum problema e estão rodando normalmente. Somente no caso da ACBrLib é que empaquei. Em máquinas linux propriamente (permissões, instalação, comandos) eu sou realmente cru. Sim, eu vi essa postagem. Já dá um alento saber que é possível, mas não tem os passos para executar. Poderiam dar uma luz?

Obrigado

 

Társis

Bom primeiro de tudo é necessário o dominio do cenário. no caso o linux senão vai ficar correndo em voltas sem chegar no lugar desejado.

Docker sim seria o melhor caminho pois já estaria empacotado com as dependencias.

Consultor SAC ACBr Juliomar Marchetti
 

Projeto ACBr

skype: juliomar
telegram: juliomar
e-mail: [email protected]
http://www.juliomarmarchetti.com.br
MVP_NewLogo_100x100_Transparent-02.png
 

 

  • 1 mês depois ...
  • Membros Pro
Postado

Bom dia,

Optei por usar conteiners com o docker file a seguir são os passos que tomei,

Copiei para a pasta /app/ACBrLib/x64 o arquivo libacbrnfe64.so (debuguei nos fontes do acbrlib e ele está buscando na pasta certa)

- Instalei as seguintes dependências: RUN apt-get update \
    && apt-get install -y \
       openssl \
       libxml2 \
       libxslt1.1 \
       libcurl4 \
       libssl-dev \
       uuid-dev \
       libudev-dev \
       gcc \
       g++ \
       make \
    && rm -rf /var/lib/apt/lists/*

- copiei as dependências também para RUN apt-get download \
       libxml2 \
       libxslt1.1 \
       libcurl4 \
       libssl-dev \
       uuid-dev \
       libudev-dev \
    && mv *.deb /usr/lib64

Mas continuo recebendo a mensagem "Não foi possivel carregar a biblioteca.". Existe alguma outra dependência que eu não estou carregando?

  • Consultores
Postado
1 hora atrás, Gandalf disse:

Copiei para a pasta /app/ACBrLib/x64 o arquivo libacbrnfe64.so (debuguei nos fontes do acbrlib e ele está buscando na pasta certa)

no linux eu salvo a dll para /usr/lib64 ou /lib64
ele chega a criar o arquivo log?
Log segue um padrao (no caso abaixo para lib de boleto), procure no hd linux se e ele nao gerou em outra pasta.

image.png

Consultor SAC ACBr

Daniel de Morais (Infocotidiano)
Ajude o Projeto ACBr crescer - Assine o SAC

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

  • Membros Pro
Postado

Olá Daniel,

eu coloquei a dll na pasta /usr/lib64 mas com o mesmo resultado. Acho estranho que pudesse ser isso, porque a acbrlib está procurando a dll na pasta /app/ACBrLib/x64.

Ele não parece ter gerado outra pasta. Na pasta da ACBrLib deve ter algum outro arquivo além da libacbrnfe64.so? Eu deixei lá as outras dependências (.dll), mas as que vem com a ACBrLib. Tem de ter ali alguma outra biblioteca do linux?

  • Membros Pro
Postado (editado)

Pode ser algum problema com a versão das bibliotecas do linux que eu estou baixando? Eu vi em outro tópico que é necessária a openssl 1.1.1 e eu creio que não é essa que está sendo baixada. Se possível, passar a lista das bibliotecas que eu preciso instalar no meu conteiner e também quais arquivos eu tenho de colocar em alguma outra pasta. Eu não uso arquivos .ini, o erro ocorre quando eu dou o comando ACBrNFe ACBrNFe = new("[Memory]");

No windows funciona perfeitamente.

Editado por Gandalf
  • Consultores
Postado

nao consegue criar um demo, so p q eu possa executar aqui em meu ambiente.
Só uma correção qdo falei q salvo a DLL da biblioteca na pasta /usr/lib64 é a biblioteca para linux, ou seja, acbrlibnfe.so (.SO) e nao DLL

  • Curtir 1
Consultor SAC ACBr

Daniel de Morais (Infocotidiano)
Ajude o Projeto ACBr crescer - Assine o SAC

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

  • Membros Pro
Postado

Sim, eu compreendi que era acbrlibnfe.so. Eu posso te mandar a minha api, com o dockerfile. Tu trabalhas com o docker aí? Porque, provavelmente, eu estou colocando os arquivos em alguma pasta errada ou não estou copiando para o conteiner algum arquivo necessário.

  • Membros Pro
Postado

Daniel, estou tentando mandar os arquivos zipados (ficou em 259k) mas o email destinatário está recusando. De qual outra forma posso mandar?

  • Consultores
Postado
3 horas atrás, Gandalf disse:

Daniel, mandei a api em anexo por aqui mesmo pra ti. Conseguiste receber?

assim q concluido ou tiver duvidas ja te chamo

 

Consultor SAC ACBr

Daniel de Morais (Infocotidiano)
Ajude o Projeto ACBr crescer - Assine o SAC

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

  • Consultores
Postado

Estou testando em meu ambiente o que vc me enviou.
subi o container, acessei ele via terminal para ver as configurações básicas.
Vi que esta instalado Debian 12 é uma das distros mais top, mas ela é chata, tem q dominar um pouco o linux; ao contrário de um Ubuntu Server (que é derivado do Debian) ele nos oferece recursos já pré configurado na instalação.
Não é como Debian que vc tem q ficar instalando n pacotes de rede p ver as configurações.
um sugestão se esta iniciando com linux, usar uma distro amigável, se ja conhece, vai de Debian mesmo.
Dentro da pasta ACBrLib/x64 está a biblioteca libacbrnfe64.so, mas vc deve copiar ela para /usr/lib64 igual manual q mandei o lib anteriormente.
No linux não usamos DLL como no windows, então temos que instalar exemplo openssl (clique aqui p manual de instalação) . (No caso do ubuntu ele já vem com openssl e xml2)


image.png

Solicitei a senha de root no privado para que possa instalar algumas dependencias e instruções de comandos para teste da sua api.
 

Consultor SAC ACBr

Daniel de Morais (Infocotidiano)
Ajude o Projeto ACBr crescer - Assine o SAC

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

×
×
  • 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.