Instalar Harbour no Linux e mais uma duvida...

Projeto [x]Harbour - Compilador de código aberto compatível com o Clipper.

Moderador: Moderadores

Avatar do usuário
ricardosierban
Usuário Nível 2
Usuário Nível 2
Mensagens: 57
Registrado em: 12 Out 2020 21:08
Localização: São Bernardo do Campo/SP
Contato:

Instalar Harbour no Linux e mais uma duvida...

Mensagem por ricardosierban »

Olá senhores.

Tenho duas questões...

1 - Esta é a principal, como instalar o Harbour no Linux (estou usando o Mint, baseado no Ubuntu, que é baseado no Debian).

Baixei um pacote, o "harbour_3.0.0-1_i386_ubu_10.04-2", mas aparece um erro ao instalar (ou algo parecido com segurança), é a seguinte mensagem,
"Erro: A dependência não é contentável: libqt4-network (>=4:4.5.3) ".

2 - Harbour e XHarbour...

Já entendi que o xHarbour é um fork do Harbour e encontrei informações que são ferramentas que causam (ou causavam) conflitos entre os desenvolvedores, que o pessoal que defende o Harbour são os mais puristas, enfim...

A pergunta é, vale mais a pena o Harbour, xHarbour ou os dois ?

É isso e obrigado pela atenção.

Ricardo.
Avatar do usuário
Vlademiro
Usuário Nível 4
Usuário Nível 4
Mensagens: 752
Registrado em: 11 Jul 2005 02:46

Instalar Harbour no Linux e mais uma duvida...

Mensagem por Vlademiro »

Olá,

A primeira questão. Eu sempre compilo o Harbour dos fontes, é bem simples.

Instalo esses pacotes
sudo apt update
sudo apt install gcc
sudo apt install build-essential

Baixo os fontes de https://github.com/harbour/core
Vou para a pasta dos fontes
cd core

Executo make
Depois sudo make install (só precisa ser root nessa etapa)

E pronto.

Já dá para brincar com Harbour no linux
Eu sempre usei no Ubuntu mas deve funcionar nas outras distribuições.

Quanto a segunda questão: não uso o xHarbour a bastante tempo, por isso não sei dizer.
Avatar do usuário
Vlademiro
Usuário Nível 4
Usuário Nível 4
Mensagens: 752
Registrado em: 11 Jul 2005 02:46

Instalar Harbour no Linux e mais uma duvida...

Mensagem por Vlademiro »

Só complementando...

O harbour compilado dos fontes, na sua forma mais simples, possui todos os drivers para acessar os DBFs e o acesso nativo ao SQLite. Se for compilado no windows ele libera o acesso ao ADO da Microsoft também, o que lhe permite acessar todos os bancos que possuem ODBC (ou seja, todos).

Caso você queira acessar algum banco no linux é preciso compilar o harbour com suporte a esse banco ou então baixar um pacote pré-compilado (tipo esse que vc baixou).

Isso vale para qualquer outro recurso da linguagem. Quando vc tentou instalar usando apt deu um erro porque o pacote pré-compilado tentou acessar as libs da biblioteca QT e como não achou no seu sistema ele acabou reportando um erro.

O arquivo README.md do Harbour (que vem com os fontes) tem um roteiro informando como instalar ele com suporte a outros bancos e outros recursos. No Linux eu só compilei o Harbour até agora com suporte ao MySQL e PostgreSQL. Mas tem acesso nativo para outros bancos, como o Oracle através do OCI.

Boa sorte, qualquer coisa pergunta.
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Instalar Harbour no Linux e mais uma duvida...

Mensagem por JoséQuintas »

Vlademiro escreveu:Se for compilado no windows ele libera o acesso ao ADO da Microsoft também, o que lhe permite acessar todos os bancos que possuem ODBC (ou seja, todos).
No Linux tem ODBC também, e se não me engano, o Harbour pode usar.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar do usuário
Vlademiro
Usuário Nível 4
Usuário Nível 4
Mensagens: 752
Registrado em: 11 Jul 2005 02:46

Instalar Harbour no Linux e mais uma duvida...

Mensagem por Vlademiro »

É verdade, Quintas.
Avatar do usuário
Itamar M. Lins Jr.
Administrador
Administrador
Mensagens: 7928
Registrado em: 30 Mai 2007 11:31
Localização: Ilheus Bahia
Curtiu: 1 vez

Instalar Harbour no Linux e mais uma duvida...

Mensagem por Itamar M. Lins Jr. »

Olá!
O xHarbour foi uma ideia equivocada.
Inventaram algumas coisas, e alguns desenvolvedores criaram o xHarbour, só o quê na verdade eles queriam era código "gratis" para vender.(resumindo)
Tem a xHarbour.com, com dois produtos(pagos) baseados no xHarbour.org e não tem manutenção do código desde a saída do Przemek o guru master do Harbour e do xHarbour.
Na verdade os usuários do xHarbour são (99%) usuários apenas do windows. Coisa que no Harbour é bem diferente.
Para entender melhor tecnicamente as LIMITAÇÕES do xHarbour leia:

Código: Selecionar todos

This text describes most important differences between Harbour and xHarbour
with some references to Clipper and other compatible compilers like Xbase++,
CLIP, FlagShip.
Many thanks to Pritpal and Viktor for updating this text.
I hope that it will be updated in the future also by xHarbour developers,
It describes status of both compiler at the end of October 2009:
   Harbour 2.0.0 beta3 (revision 12788)
   xHarbour 1.2.1 (revision 6629)

Przemek,

(Przemyslaw Czerpak, druzus /at/ priv.onet.pl)

...
Este arquivo completo está em \doc\xhb-diff.txt
No Harbour temos o hbmk2 que faz tudo e bem feito, compilar os fontes.

Por exemplo: No xHarbour eles usam ".bats", por não desejarem ou não entendem ou querem estudar os códigos do Viktor(criador do hbmk2)
E ocultam, não divulgam as ferramentas da pasta contrib, pois querem vender suporte em cima de ferramentas similares pagas.
E outros desentendimentos com o Przemek que abandonou o xHarbour.

Saudações,
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Instalar Harbour no Linux e mais uma duvida...

Mensagem por JoséQuintas »

ricardosierban escreveu:"harbour_3.0.0-1_i386_ubu_10.04-2"
Esquecemos o mais importante:
Tem o Harbour 3.2, e os forks Harbour 3.4 e XHarbour

O Harbour 3.0 foi a única versão onde criaram um pacote de instalação, mas é muito antigo.
Me parece que a senha de atualização do source-forge foi perdida, e por isso parou.

Endereço atual dos fontes:
https://github.com/harbour/core

Site oficial:
https://harbour.github.io/

Versão atual 3.2

A última vez que testei o 3.4 no Linux também compilou normal.
Acho que nenhum foi ajustado pra última versão do C do Ubuntu 20.04
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar do usuário
NiltonGM
Usuário Nível 3
Usuário Nível 3
Mensagens: 397
Registrado em: 05 Jun 2014 23:47
Localização: Caieiras/SP

Instalar Harbour no Linux e mais uma duvida...

Mensagem por NiltonGM »

Vlademiro escreveu:foi a única versão
Vlademiro, Olha eu ai de novo, achei que não ia mais voltar ao Harbour, lá estou eu tentando compilar um simples Hello Word no Linux, segui sua dica, mas não consigo gerar um programa "executável" no Linux, executei os seguintes comandos:

Código: Selecionar todos

harbour teste.prg
foi gerado um teste.c e nada mais. Se executo apenas o harbour e enter, mostra que o harbour está instalado na versão 3.2.0dev
ou rodando:

Código: Selecionar todos

hbmk2 teste.prg
é gerado o binário teste sem extensão.
Ao rodar no terminal:

Código: Selecionar todos

$ ./teste
./teste: error while loading shared libraries: libharbour.so.3.2: cannot open shared object file: No such file or directory
Dentro do teste.prg:

Código: Selecionar todos

procedure main
    @ 10, 10 say "Hello Word"
    @ 12, 10 say "Tecle algo para sair"
    inkey(0)
    return
Nilton Medeiros
nilton@sistrom.com.br
Avatar do usuário
Itamar M. Lins Jr.
Administrador
Administrador
Mensagens: 7928
Registrado em: 30 Mai 2007 11:31
Localização: Ilheus Bahia
Curtiu: 1 vez

Instalar Harbour no Linux e mais uma duvida...

Mensagem por Itamar M. Lins Jr. »

Olá!

1) Qual é sua distribuição LINUX ?

2) Como foi que instalou o Harbour ?

Saudações,
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Instalar Harbour no Linux e mais uma duvida...

Mensagem por JoséQuintas »

Acrescente -fullstatic ou -static

Isso é pra não ter dependências.
No Linux o default é com dependências, e pelo jeito não tem aí.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar do usuário
Itamar M. Lins Jr.
Administrador
Administrador
Mensagens: 7928
Registrado em: 30 Mai 2007 11:31
Localização: Ilheus Bahia
Curtiu: 1 vez

Instalar Harbour no Linux e mais uma duvida...

Mensagem por Itamar M. Lins Jr. »

Olá!
No Linux o default é com dependências, e pelo jeito não tem aí.
Por isso eu perguntei.
Qual foi o procedimento adotado para instalar o Harbour e qual é a distribuição LINUX.
Porquê, o normal é não acontecer isso.
Ele fez a mesma pergunta em outro post.
Lá eu informei para colocar o parâmetro -fullstatic no hbmk2.
Mas não é para acontecer esse erro de dependência mesmo se não usar esse parâmetro, por padrão a compilação do Harbour no Linux não é static/fullstatic.

Saudações,
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Instalar Harbour no Linux e mais uma duvida...

Mensagem por JoséQuintas »

Itamar M. Lins Jr. escreveu:Mas não é para acontecer esse erro de dependência mesmo se não usar esse parâmetro, por padrão a compilação do Harbour no Linux não é static/fullstatic.
Depende de como a coisa funciona.

O Harbour pode ser gerado com dependência de DLLs, que é o default no Linux, ou fullstatic.
Neste momento estou falando da GERAÇÃO do Harbour.
E para os EXEs, mesma coisa.

NÃO tem DLLs.
Se o Harbour foi gerado fullstatic, ele NÃO precisa de DLL pra funcionar.
Já os programas compilados.... se precisarem de DLL, elas não existem, e por isso não funcionam.
Nesta situação, compilar com -fullstatic resolveria.

Outra situação, talvez, é o EXE compilado não encontrar as DLLs, e elas funcionarem para o Harbour porque estão no mesmo PATH.
Neste caso, o Harbour também não estaria no PATH, e nem o HBMK2.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Instalar Harbour no Linux e mais uma duvida...

Mensagem por JoséQuintas »

Traduzindo isso:

Tem lá

\harbour\harbour.exe
\harbour\harbour32.dll (que pode existir ou não)

-fullstatic é pra não precisar dessa dll.

Se o Harbour precisar, pode estar lá na mesma pasta, mas o aplicativo pode não enxergá-la.
Se o Harbour não precisar, ainda resta o aplicativo precisar ou não.
-shared -> default no Linux, é precisando dll
-fullstatic -> default no Windows, é sem precisar dll

Então, está relacionado a como foi obtido/gerado o Harbour (pra DLL existir), e também como foi gerada a compilação.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar do usuário
Itamar M. Lins Jr.
Administrador
Administrador
Mensagens: 7928
Registrado em: 30 Mai 2007 11:31
Localização: Ilheus Bahia
Curtiu: 1 vez

Instalar Harbour no Linux e mais uma duvida...

Mensagem por Itamar M. Lins Jr. »

Olá!
No Linux(Ubuntu/Debian e variantes), tem que funcionar das DUAS formas.
Sem mexer em configuração nenhuma.
Não é o LINUX do WINDOWS. Pq isso é gambiarra.
Quando ocorre falta de uma ".so" no Linux, é porquê não está no lugar correto a biblioteca ou esqueceu de copiar junto com o executável para outra máquina.
https://pt.wikipedia.org/wiki/Ldd_(Unix)

Código: Selecionar todos

itamar@itamar-desktop:~/fontes/exemplos$ hbmk2 meu_exe.prg 
hbmk2: Processando script local: hbmk.hbm
Harbour 3.2.0dev (r2104142025)
Copyright (c) 1999-2021, https://harbour.github.io/
Compiling 'meu_exe.prg'...
Lines 19, Functions/Procedures 1
Generating C source output to '/tmp/hbmk_ljnpuz.dir/meu_exe.c'... Done.
itamar@itamar-desktop:~/fontes/exemplos$ ldd meu_exe
        linux-vdso.so.1 (0x00007ffe6067a000)
        libharbour.so.3.2 => /usr/local/lib/libharbour.so.3.2 (0x00007f71462c5000)
        libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f71460d9000)
        libX11.so.6 => /lib/x86_64-linux-gnu/libX11.so.6 (0x00007f7145f9b000)
        libpcre.so.3 => /lib/x86_64-linux-gnu/libpcre.so.3 (0x00007f7145f25000)
        libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1 (0x00007f7145f09000)
        libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f7145f02000)
        libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f7145ede000)
        libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f7145d90000)
        /lib64/ld-linux-x86-64.so.2 (0x00007f71467ee000)
        libxcb.so.1 => /lib/x86_64-linux-gnu/libxcb.so.1 (0x00007f7145d66000)
        libXau.so.6 => /lib/x86_64-linux-gnu/libXau.so.6 (0x00007f7145d60000)
        libXdmcp.so.6 => /lib/x86_64-linux-gnu/libXdmcp.so.6 (0x00007f7145d58000)
        libbsd.so.0 => /lib/x86_64-linux-gnu/libbsd.so.0 (0x00007f7145d3e000)
        libmd.so.0 => /lib/x86_64-linux-gnu/libmd.so.0 (0x00007f7145d31000)
Lugar onde deve ficar o arquivo
libharbour.so.3.2 => /usr/local/lib/libharbour.so.3.2 (0x00007f71462c5000)
Na verdade é apenas um LINK para a pasta harbour no mesmo local.

Código: Selecionar todos

drwxr-xr-x 2 root root  4096 mai 26 15:56 harbour
lrwxrwxrwx 1 root root    27 abr 15 03:47 libharbour.so -> harbour/libharbour.so.3.2.0
lrwxrwxrwx 1 root root    27 abr 15 03:47 libharbour.so.3.2 -> harbour/libharbour.so.3.2.0
lrwxrwxrwx 1 root root    27 abr 15 03:47 libharbour.so.3.2.0 -> harbour/libharbour.so.3.2.0
lrwxrwxrwx 1 root root    27 jan 21 21:21 libharbour.so.3.4 -> harbour/libharbour.so.3.4.0
lrwxrwxrwx 1 root root    27 jan 21 21:21 libharbour.so.3.4.0 -> harbour/libharbour.so.3.4.0
Dai se instalar de qualquer jeito, não vai funcionar. Pq isso quem faz é o próprio install do Harbour.
Outra coisa, Linux não é Windows. Não é um prompt dentro do windows. Cada distro tem suas particularidades. O interessado em usar Linux deve estudar o terreno antes, para não se perder nos labirintos de pastas e possibilidades.

Saudações,
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
Avatar do usuário
Itamar M. Lins Jr.
Administrador
Administrador
Mensagens: 7928
Registrado em: 30 Mai 2007 11:31
Localização: Ilheus Bahia
Curtiu: 1 vez

Instalar Harbour no Linux e mais uma duvida...

Mensagem por Itamar M. Lins Jr. »

Olá!
Repare que as perguntas, dificultam até as possíveis respostas.
Não diz como fez. Nem qual OS está usando.
Em que pasta está os fontes do Harbour ? Se compilou os fontes ou baixou um arquivo ".deb" de algum lugar ?...

Saudações,
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
Responder