lua lacuna.lua
env lua lacuna.lua
Sim, ambos os comandos funcionavam. NO entanto, não podia chamar
./lacuna.lua.
#!/usr/bin/lua - interpretador inválido.
#!/usr/bin/env lua - interpretador inválido.
O que poderia ser? O mistério se desfez quando, ao invés de reutilizar o
mesmo arquivo, criei um completamente novo.
Por que havia falha? Porque o último caracter era uma quebra linha
Windows. Aquele script foi criado durante as férias, na casa de minha
mãe. E por lá, a máquina é Windows.
Para estar certo de que o problema era mesmo esse, voltei ao lacuna.lua
e o salvei, mudando a quebra de linha de Windows para Unix. Pronto, tudo
está resolvido.
Mas que coisa extraordinária. Não seria mal que o Linux reconhecesse
como válida as duas quebras e pouparia um bocado de dor de cabeça.
Observe-se que, independentemente da quebra de linha, o script é
executado normalmente em um ou outro caso quando a linha de comando é
"lua lacuna.lua". A quebra de linha só fez diferença quando tentei
executar o script diretamente pelo Bash.
Quando a estrutura de pastas do Linux, confesso que ainda me atrapalho
um pouco. Segundo entendo, em /usr/bin, guardo executáveis binários. Em
/usr/share, guardo executáveis do tipo script. Em /usr/lib, guardo
binários do tipo biblioteca. Temos a mesma estrutura reproduzida em
/usr/local. A bem dizer, pensava que este "local" referia-se a coisinhas
produzidas pelo próprio usuário.
O meu /opt tem apenas um programa: o Postgresql. Creio que o Postgresql
e o Dropbox foram os dois únicos programas que não baixei de
repositórios. Imaginei, portanto, que este teria sido o motivo pelo qual
o Postgresql lá se instalou. O porquê o Dropbox não obedeceu o mesmo
critério... Bom, suponho que estas regras não sejam lá muito firmes e
que alguns desenvolvedores não acham mal adotar outros procedimentos.
Windows e Linux tem filosofias diferentes. . NO Windows, em geral, os
programas criam uma pasta em que binários, scripts, documentação e tudo
mais são colocados. O Linux, ao que me parece, prefere criar uma
estrutura particular a cada diferente tipo de item. Então, posso
cogitar, visto que não conheço do assunto, que se utilizar /opt, devo
concentrar tudo em uma pasta, como faz o Windows. Se, ao contrário,
desejar utilizar o padrão que encontro mais vezes no Linux, então, teria:
/usr/share/scripts/lacuna ou /usr/share/local/scripts/lacuna
/usr/bin/lacuna - O link simbólico.
E no outro caso:
/opt/scripts/lacuna - A pasta do programa.
/usr/bin/lacuna - O link simbólico.
Para mim, por enquanto, não fará muita diferença porque, afinal, não
tenho muita diversidade de tipos de arquivos.
Em 13-11-2011 17:07, Andre Cavalcante escreveu:
Luciano.
Esqueça tudo o que você fez e vamos por partes ok?
/usr/bin/env é um comando do linux que executa um comando em um ambiente
modificado.
/usr/bin/lua é o comando do linux que ativa o interpretador lua
/usr/bin/env lua simplesmente executa o interpretador lua em um ambiente
modificado.
Para scripts lua, você deve fazer:
$ nano teste.lua
#!/usr/bin/lua
print('teste')
Para fazer o teste:
$ lua ./teste.lua
ou
$ chmod +x teste.lua
$ ./teste.lua
Para scripts lua em um ambiente modificado:
$ env ./teste.lua
Para instalar seu programa, crie um script bash para copiar os arquivos
para as pastas corretas, e depois crie links simbólicos em /usr/bin para os
respectivos arquivos executáveis que criar. Isso evita as complicações do
PATH.
Uma alternativa é criar uma pasta bin no seu home:
mkdir $HOME/bin
Essa pasta, se existir, deverá ser colocada no seu PATH, automaticamente.
Se não, é porque você (ou algum programa mal comportado) já deve ter mexido
o seu .profile. Para inserir, basta adicionar:
echo "PATH=$HOME/bin:$PATH">> .profile
Você terá que fazer logout e login novamente.
Então você pode trabalhar tranquilamente na sua área pessoal e depois que
tudo estiver bom aí sim você instala em /usr/share, /usr/lib. Como esse seu
programa é de terceiros, ele deveria ir para /opt/pasta_do_programa e
somente os links em /usr/bin.
Testa aí e dá o retorno.
Abraços
André Cavalcante
Caparica, Portugal
Ubuntu User number # 24370
Quer saber sobre Open Source Software? http://sobreoss.blogspot.com
Quer saber mais sobre Espiritismo? http://sobreespiritismo.blogspot.com
Atenção: Este e-mail pode conter anexos no formato ODF (Open Document
Format)/ABNT (extensões odt, ods, odp, odb, odg). Antes de pedir os anexos
em outro formato, você pode instalar gratuita e livremente o BrOffice (
http://www.broffice.org) ou o seguinte Plugin para Microsoft Office (
http://odf-converter.sourceforge.net/index.html<http://www.sun.com/software/star/odf_plugin/get.jsp>
).
--
Mais sobre o Ubuntu em português: http://www.ubuntu-br.org/comece
Lista de discussão Ubuntu Brasil
Histórico, descadastramento e outras opções:
https://lists.ubuntu.com/mailman/listinfo/ubuntu-br