Instalando/Utilizando o Protheus TOTVS em estações Linux 64 bits
A empresa onde trabalho passou a utilizar o sistema Protheus desenvolvido pela TOTVS, e com o fim do suporte e atualizações de segurança do Windows XP será necessário trocar o sistema operacional, visto que muitas máquinas são antigas e não vão rodar bem o Windows 7, Windows 8, Windows 8.1 ou Windows 10, dessa maneira serão migradas para alguma distribuição linux. Executei a instalação e testes do Protheus em uma estação com a distribuição Debian e descrevi os passsos abaixo.
Primeiramente é necessário acessar a área de download da TOTVS e fazer o download dos arquivos necessário, para isso acesse: https://suporte.totvs.com/download
Selecione a Linha “Protheus”, depois em “Filtrar” escolha TOTVS Binário, e depois clique no binário referente a sua versão, no meu caso 14-01-29-p11-binario_linux.rar
Após isso será aberto uma tela com os detalhes, clique em “DOWNLOAD”.totvs-download2
Escolha a opção “Navegador Web”.
Aguarde o fim do Download
Vamos criar uma pasta onde colocaremos os arquivos do Protheus:
mkdir /totvs
chmod 777 /totvs
cd /totvs
Vamos extrair o arquivo “14-01-29-P11-BINARIO_LINUX.RAR” e copiar os arquivos da pasta “14-01-29-P11-BINARIO_LINUX.RARsmartclientLinux” para a pasta /totvs e extraí-los:
tar xfvz smartclient.tar.z
tar xfvz printer.tar.gz
Depois executamos o comando ldd para verificar as dependências:
ldd ./smartclient
not a dynamic executable
O retorno “not a dynamic executable” indica que necessitamos fazer o download e instalação dos pacotes para execução de aplicativos 32bits, assim executamos o seguinte:
dpkg –add-architecture i386
apt-get update
apt-get install gcc-multilib
apt-get install ia32-libs
Verificamos novamente as dependências:
ldd ./smartclient
linux-gate.so.1 => (0xf7744000)
libSM.so.6 => not found
libICE.so.6 => not found
libXrender.so.1 => not found
libXext.so.6 => not found
libX11.so.6 => not found
libgthread-2.0.so.0 => not found
libglib-2.0.so.0 => not found
librt.so.1 => /lib32/librt.so.1 (0xf7728000)
libdl.so.2 => /lib32/libdl.so.2 (0xf7724000)
libpthread.so.0 => /lib32/libpthread.so.0 (0xf770b000)
libm.so.6 => /lib32/libm.so.6 (0xf76e4000)
libc.so.6 => /lib32/libc.so.6 (0xf7580000)
/lib/ld-linux.so.2 (0xf7745000)
Agora o sistema informa que está faltando a lib libglib2.0, vamos instalar ela:
apt-get install libglib2.0-0:i386
Verificamos novamente se ainda existe alguma dependência:
ldd ./smartclient
linux-gate.so.1 => (0xf76fc000)
libSM.so.6 => /usr/lib/i386-linux-gnu/libSM.so.6 (0xf76dd000)
libICE.so.6 => /usr/lib/i386-linux-gnu/libICE.so.6 (0xf76c4000)
libXrender.so.1 => /usr/lib/i386-linux-gnu/libXrender.so.1 (0xf76b9000)
libXext.so.6 => /usr/lib/i386-linux-gnu/libXext.so.6 (0xf76a7000)
libX11.so.6 => /usr/lib/i386-linux-gnu/libX11.so.6 (0xf756f000)
libgthread-2.0.so.0 => /usr/lib/i386-linux-gnu/libgthread-2.0.so.0 (0xf756c000)
libglib-2.0.so.0 => /lib/i386-linux-gnu/libglib-2.0.so.0 (0xf746f000)
librt.so.1 => /lib/i386-linux-gnu/i686/cmov/librt.so.1 (0xf7465000)
libdl.so.2 => /lib/i386-linux-gnu/i686/cmov/libdl.so.2 (0xf7461000)
libpthread.so.0 => /lib/i386-linux-gnu/i686/cmov/libpthread.so.0 (0xf7448000)
libm.so.6 => /lib/i386-linux-gnu/i686/cmov/libm.so.6 (0xf7422000)
libc.so.6 => /lib/i386-linux-gnu/i686/cmov/libc.so.6 (0xf72be000)
libuuid.so.1 => /lib/i386-linux-gnu/libuuid.so.1 (0xf72b7000)
libxcb.so.1 => /usr/lib/i386-linux-gnu/libxcb.so.1 (0xf7294000)
libpcre.so.3 => /lib/i386-linux-gnu/libpcre.so.3 (0xf7256000)
/lib/ld-linux.so.2 (0xf76fd000)
libXau.so.6 => /usr/lib/i386-linux-gnu/libXau.so.6 (0xf7253000)
libXdmcp.so.6 => /usr/lib/i386-linux-gnu/libXdmcp.so.6 (0xf724d000)
Como o sistema não retornou mais nenhum erro é só executar ./smartclient no terminal ou criarmos uma entrada para ele no menu, usando a ferramenta alacarte do gnome, por exemplo.
Fonte
Após a execução de todos esses processos, tivemos uma pequena dificuldade em mapear a impressora, já que o smartclient imprimir os pedidos direto na porta LPT2. Então tivemos redirecionar todas as impressões para um impressora instalada no cups !
Após a instalação da impressora no servidor CUPS, teremos que configurar o smartclient.ini para reconhecer o redirecionamento e enfim enviar a impressão dos pedidos para a impressora desejada.
Após a instalação da impressora no servidor CUPS, teremos que configurar o smartclient.ini para reconhecer o redirecionamento e enfim enviar a impressão dos pedidos para a impressora desejada.
Inserimos então as seguinte configurações no arquivo smartclient.ini
[Printer_Map_Port2Spool]
LPT2 = NOMEIMPRESSORACUPS
A seção [Printer_Map_Port2Spool] define o mapeamento de portas de impressão para spool de impressão.
Com isso tudo se resolve.
Espero ter ajudado.