Pessoal andei pesquisando por aí em outros fóruns e principalmente neste q para mim é o melhor... e achei informações muito soltas sobre algo que creio q seja de suma importância para que esta migrando do Clipper para o xHarbour e não somente isto, mas tb para o Linux....
Obs: Essas questões seriam, vamos dizer assim, uma etapa posterior para quem já conseguiu instalar o xHarbour no Linux e compilar o sistema e esta tendo algumas questões a serem observadas nos seus sistemas....
Bom questões do tipo:
1) Declarações de Ambiente, exemplo no meu sistema utilizo a variável Comp, onde definir ? no XP definiamos no Autoexec.NT (SET COMP=15)....
2) Case Sensitive = O Linux é Case Sensitive, ou seja, para ele Config.DBF não é igual CONFIG.DBF, nem tão pouco cONFIg.dbf, e outras possibilidades em se alternando maísculas e minúsculas, e pelos erros q estão dando no meu sistema, tipo não foi encontrado o arquivo TaTal é simplesmente por causa dessa questão, então concluindo o raciocínio temos que alterar os fontes de forma q fiquem padronizados os nomes e EXTENSÕES dos Arquivos (Banco de Dados, Índices, Etc...), isto devido ao Linux, e não ao xHarbour. Se eu estiver errado por favor alguém que já trabalha com o xHarbour no Linux corrija...
3) Funções de proteção dos sistemas vão ter que ser revisadas, pois variáveis, pastas e tudo mais que eram utilizadas para nossas proteções, tem que ser revistas pois muitas não são da mesma maneira q nos O.S. do tio Bill.
4) Permissões = Qual a maneira mais correta de se trabalhar com elas, exemplo se estou desenvolvendo um aplicativo onde os DBF, CDX, etc e o próprio sistema pertencem a um Usuário X e um Grupo Y, qdo colocar no meu cliente terei q cuidar isto, pois talvez no meu cliente quem instale o Servidor Linux não seja eu e como vão ser as permissões para que não de erro no sistema de não conseguir ler um determinado arquivo por falta de permissão... ou via Putty (conheço, mas não trabalhado) daria para fazer algo e não se PREOCUPAR tanto com este detalhe....
5) Detalhes concernetes a O.S. > tipo o pessoal que já trabalha com o xHarbour no Linux poderia passar, caso houvesse, algum detalhe importante a ser observado para evitar desgastes e perca de tempo para poder instalarmos e trabalhar com o sistema nos clientes, exemplo: não esqueça de configurar o arquivo XXXXX no /etc/YYYY pois afeta Isso e Aquilo....
Vou ser mais específico conheço um sistema q roda nativo Linux, não sei se foi feito em FlagShip ou xHarbour e o pessoal que instala ele faz umas alterações e/ou toma alguns cuidados com relação ao Gerenciador de Janelas (KDE, Gnome, FluxBox...etc).
Obrigado, fica aberto o debate...
Sucesso :f
P.S.: Se alguém tiver alguma idéia melhor para o título do tópico, rsrsr
Pérolas do Linux e xHarbour (.o.)
Moderador: Moderadores
- vagucs
- Membro Master

- Mensagens: 1480
- Registrado em: 10 Jul 2004 10:45
- Localização: Ipanema - MG
- Contato:
1) Declarações de Ambiente, exemplo no meu sistema utilizo a variável Comp, onde definir ? no XP definiamos no Autoexec.NT (SET COMP=15)....
No windows você deve declarar as variaveis de ambiente em MEUS COMPUTADOR -> PROPRIEDADES -> AVANAÇDO -> VARIAVEIS DE AMBIENTE.
Funciona da mesma forma, em Linux você pode colocar em diversos lugares e tem que exportar a variavel para ela ser visivel para qualquer usuario.
2) Case Sensitive = O Linux é Case Sensitive, ou seja, para ele Config.DBF não é igual CONFIG.DBF, nem tão pouco cONFIg.dbf, e outras possibilidades em se alternando maísculas e minúsculas, e pelos erros q estão dando no meu sistema, tipo não foi encontrado o arquivo TaTal é simplesmente por causa dessa questão, então concluindo o raciocínio temos que alterar os fontes de forma q fiquem padronizados os nomes e EXTENSÕES dos Arquivos (Banco de Dados, Índices, Etc...), isto devido ao Linux, e não ao xHarbour. Se eu estiver errado por favor alguém que já trabalha com o xHarbour no Linux corrija...
Você não precisa de mudar todo o fonte, o xHarbour tem alguns SETs onde você pode definir se todos os nomes serão convertidos para minusculo ou maiusculo, e isto adianta muito, sempre use nome de arquivo como minusculo, isso é bom e é um padrão de maior parte dos aplicativos linux, no inicio do seu programa use o seguine:
3) Funções de proteção dos sistemas vão ter que ser revisadas, pois variáveis, pastas e tudo mais que eram utilizadas para nossas proteções, tem que ser revistas pois muitas não são da mesma maneira q nos O.S. do tio Bill.
Sim, mas não é tão duido assim substituir ou reescrever elas.
4) Permissões = Qual a maneira mais correta de se trabalhar com elas, exemplo se estou desenvolvendo um aplicativo onde os DBF, CDX, etc e o próprio sistema pertencem a um Usuário X e um Grupo Y, qdo colocar no meu cliente terei q cuidar isto, pois talvez no meu cliente quem instale o Servidor Linux não seja eu e como vão ser as permissões para que não de erro no sistema de não conseguir ler um determinado arquivo por falta de permissão... ou via Putty (conheço, mas não trabalhado) daria para fazer algo e não se PREOCUPAR tanto com este detalhe....
Bom, no linux, é um tanto complicado chegar a uma conclusão, vc pode controlar isto de diversas maneiras, a mais simples é colocar um atributo "rw-rw-rw" em todos os arquivos, sem se preocupar com grupos, no caso do seu programa trabalhar com arquivos temporarios ou algo do tipo e precisar acessar arquivos que vão pertencer a outro usuarios, ai dê um SID no EXE e pronto, é como se o usuario logasse e seu programa fosse o ROOT executando, só dar o comando no EXE:
chmod 4777 arquivo.exe
Isto é a forma mais simples, mas se for usar grupos e usuarios a coisa complica mais e nao to com tempo de rever isto, ai você terá que criar um grupo para o pograma, os usuarios que fazem parte deste grupo, em alguns casos terá que usar o UMASK para definir uma mascará de criação, e tem que por uma chamada ao UMASK pelo seu sistema. Mas melhor deixar esta parte para o Linuxer resolver, é chaticimo mesmo.
5) Detalhes concernetes a O.S. > tipo o pessoal que já trabalha com o xHarbour no Linux poderia passar, caso houvesse, algum detalhe importante a ser observado para evitar desgastes e perca de tempo para poder instalarmos e trabalhar com o sistema nos clientes, exemplo: não esqueça de configurar o arquivo XXXXX no /etc/YYYY pois afeta Isso e Aquilo....
Nao existem detalhes, isto é mais focado ao que seu programa vai fazer, qual recursos usar e por ai vai, mas no geral nao precisa mecher em nada mesmo.
No windows você deve declarar as variaveis de ambiente em MEUS COMPUTADOR -> PROPRIEDADES -> AVANAÇDO -> VARIAVEIS DE AMBIENTE.
Funciona da mesma forma, em Linux você pode colocar em diversos lugares e tem que exportar a variavel para ela ser visivel para qualquer usuario.
2) Case Sensitive = O Linux é Case Sensitive, ou seja, para ele Config.DBF não é igual CONFIG.DBF, nem tão pouco cONFIg.dbf, e outras possibilidades em se alternando maísculas e minúsculas, e pelos erros q estão dando no meu sistema, tipo não foi encontrado o arquivo TaTal é simplesmente por causa dessa questão, então concluindo o raciocínio temos que alterar os fontes de forma q fiquem padronizados os nomes e EXTENSÕES dos Arquivos (Banco de Dados, Índices, Etc...), isto devido ao Linux, e não ao xHarbour. Se eu estiver errado por favor alguém que já trabalha com o xHarbour no Linux corrija...
Você não precisa de mudar todo o fonte, o xHarbour tem alguns SETs onde você pode definir se todos os nomes serão convertidos para minusculo ou maiusculo, e isto adianta muito, sempre use nome de arquivo como minusculo, isso é bom e é um padrão de maior parte dos aplicativos linux, no inicio do seu programa use o seguine:
Código: Selecionar todos
set(_SET_FILECASE,"LOWER")
set(_SET_DIRCASE,"LOWER")
set(_SET_DIRSEPARATOR,"/")
set(_SET_TRIMFILENAME,.t.)3) Funções de proteção dos sistemas vão ter que ser revisadas, pois variáveis, pastas e tudo mais que eram utilizadas para nossas proteções, tem que ser revistas pois muitas não são da mesma maneira q nos O.S. do tio Bill.
Sim, mas não é tão duido assim substituir ou reescrever elas.
4) Permissões = Qual a maneira mais correta de se trabalhar com elas, exemplo se estou desenvolvendo um aplicativo onde os DBF, CDX, etc e o próprio sistema pertencem a um Usuário X e um Grupo Y, qdo colocar no meu cliente terei q cuidar isto, pois talvez no meu cliente quem instale o Servidor Linux não seja eu e como vão ser as permissões para que não de erro no sistema de não conseguir ler um determinado arquivo por falta de permissão... ou via Putty (conheço, mas não trabalhado) daria para fazer algo e não se PREOCUPAR tanto com este detalhe....
Bom, no linux, é um tanto complicado chegar a uma conclusão, vc pode controlar isto de diversas maneiras, a mais simples é colocar um atributo "rw-rw-rw" em todos os arquivos, sem se preocupar com grupos, no caso do seu programa trabalhar com arquivos temporarios ou algo do tipo e precisar acessar arquivos que vão pertencer a outro usuarios, ai dê um SID no EXE e pronto, é como se o usuario logasse e seu programa fosse o ROOT executando, só dar o comando no EXE:
chmod 4777 arquivo.exe
Isto é a forma mais simples, mas se for usar grupos e usuarios a coisa complica mais e nao to com tempo de rever isto, ai você terá que criar um grupo para o pograma, os usuarios que fazem parte deste grupo, em alguns casos terá que usar o UMASK para definir uma mascará de criação, e tem que por uma chamada ao UMASK pelo seu sistema. Mas melhor deixar esta parte para o Linuxer resolver, é chaticimo mesmo.
5) Detalhes concernetes a O.S. > tipo o pessoal que já trabalha com o xHarbour no Linux poderia passar, caso houvesse, algum detalhe importante a ser observado para evitar desgastes e perca de tempo para poder instalarmos e trabalhar com o sistema nos clientes, exemplo: não esqueça de configurar o arquivo XXXXX no /etc/YYYY pois afeta Isso e Aquilo....
Nao existem detalhes, isto é mais focado ao que seu programa vai fazer, qual recursos usar e por ai vai, mas no geral nao precisa mecher em nada mesmo.

