Re: [Ubuntu-BR] Execução de um script em /usr/local/share

2011-11-14 Por tôpico Luciano de Souza
Guardei o link para consultas. Mas a bem dizer, sua explicação foi-me 
mais do que suficiente. Se eu criar um deb, utilizo /usr/local. Se não 
criar, utilizo /opt.


Agora tudo funciona magnificamente bem.

Em 14-11-2011 11:18, Andre Cavalcante escreveu:

Oi Luciano,

Em 14 de novembro de 2011 11:38, Luciano de Souzaescreveu:


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.


Use unix2dos e dos2unix para fazer a conversão entre os sistemas



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.


Na verdade isso é uma "limitação" do C: \n é uma quebra de linha em C, a
linguagem base que foi construído o Linux e, por compatibilidade
retroativa, tudo foi criado a partir disso.



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.


Vamos em partes:

/bin - binários do sistema
/boot - binários para startup do sistema (e.g. initramfs, vmlinuz, grub
etc.)
/etc - configurações globais do sistema
/dev - acesso aos dispositivos de hardware do sistema
/home - os arquivos dos usuários
/lib - as bibliotecas do sistema
/opt - programas de terceiros, isto é, que não são instalados via .deb ou
façam parte da distribuição
/proc - é o acesso aos dados do processador e funções do kernel
/usr - é a mesma hierarquia acima, mas para a distribuição, assim:
 /usr/share - dados compartilhados (geralmente não há binários aqui)
 /usr/lib - bibliotecas da distro
 /usr/bin - binários da distro
 etc.

Então se você está a instalar programas que não são da distro o ideal é em
/opt.
Note que há uma outra hierarquia para programas de terceiros: /usr/local
Em /usr/local há a mesma hierarquia acima (bin, share, lib, etc.) para
instalações (e.g. compiladas) pelo usuário, mas de acesso global ao sistema.

Uma outra hierarquia de pastas, em geral para desenvolvimento, pode ser
criada dentro da pasta do usuário, assim:

$HOME/bin - os binários
$HOME/lib  - as bibliotecas compartillhadas
$HOME/src - os fontes
$HOME/share - os arquivos compartilhados, em geral ícones, recursos, etc.

Os scripts são arquivos executáveis e são tratados como binários.

O PATH do sistema é uma variável que define as buscas no bash para a
execução de arquivos executáveis (binários e scripts).

Há muito mais detalhes aqui, mas por hora o e-mail já está gigante, então
fico por aqui.

Detalhes em: http://wiki.debian.org/FilesystemHierarchyStandard
Só que está em inglês.


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.


Não, na verdade a filosofia é a mesma: bibliotecas vão para
C:\windows\system ou c:\windows|system32 e os programas vão para c:\program
files e os compartilhados vão para c:\program files\commoms. A diferença é
que, no windows, não há "distribuição", então todos os programas, inclusive
os da microsoft são tratados como de terceiros (seria equivalente a ter-se
somente o /opt).

Para o seu caso, colocaria tudo em $HOME/scritps e um link simbólico em
$HOME/bin

Abraços




--
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


Re: [Ubuntu-BR] Execução de um script em /usr/local/share

2011-11-14 Por tôpico Andre Cavalcante
Oi Luciano,

Em 14 de novembro de 2011 11:38, Luciano de Souza escreveu:

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

Use unix2dos e dos2unix para fazer a conversão entre os sistemas


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

Na verdade isso é uma "limitação" do C: \n é uma quebra de linha em C, a
linguagem base que foi construído o Linux e, por compatibilidade
retroativa, tudo foi criado a partir disso.


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

Vamos em partes:

/bin - binários do sistema
/boot - binários para startup do sistema (e.g. initramfs, vmlinuz, grub
etc.)
/etc - configurações globais do sistema
/dev - acesso aos dispositivos de hardware do sistema
/home - os arquivos dos usuários
/lib - as bibliotecas do sistema
/opt - programas de terceiros, isto é, que não são instalados via .deb ou
façam parte da distribuição
/proc - é o acesso aos dados do processador e funções do kernel
/usr - é a mesma hierarquia acima, mas para a distribuição, assim:
/usr/share - dados compartilhados (geralmente não há binários aqui)
/usr/lib - bibliotecas da distro
/usr/bin - binários da distro
etc.

Então se você está a instalar programas que não são da distro o ideal é em
/opt.
Note que há uma outra hierarquia para programas de terceiros: /usr/local
Em /usr/local há a mesma hierarquia acima (bin, share, lib, etc.) para
instalações (e.g. compiladas) pelo usuário, mas de acesso global ao sistema.

Uma outra hierarquia de pastas, em geral para desenvolvimento, pode ser
criada dentro da pasta do usuário, assim:

$HOME/bin - os binários
$HOME/lib  - as bibliotecas compartillhadas
$HOME/src - os fontes
$HOME/share - os arquivos compartilhados, em geral ícones, recursos, etc.

Os scripts são arquivos executáveis e são tratados como binários.

O PATH do sistema é uma variável que define as buscas no bash para a
execução de arquivos executáveis (binários e scripts).

Há muito mais detalhes aqui, mas por hora o e-mail já está gigante, então
fico por aqui.

Detalhes em: http://wiki.debian.org/FilesystemHierarchyStandard
Só que está em inglês.


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.


Não, na verdade a filosofia é a mesma: bibliotecas vão para
C:\windows\system ou c:\windows|system32 e os programas vão para c:\program
files e os compartilhados vão para c:\program files\commoms. A diferença é
que, no windows, não há "distribuição", então todos os programas, inclusive
os da microsoft são tratados como de terceiros (seria equivalente a ter-se
somente o /opt).

Para o seu caso, colocaria tudo em $HOME/scritps e um link simbólico em
$HOME/bin

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
).
-- 
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


Re: [Ubuntu-BR] Execução de um script em /usr/local/share

2011-11-14 Por tôpico Luciano de Souza

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
).



--
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


Re: [Ubuntu-BR] Execução de um script em /usr/local/share

2011-11-13 Por tôpico Andre Cavalcante
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
).
-- 
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


Re: [Ubuntu-BR] Execução de um script em /usr/local/share

2011-11-13 Por tôpico Ataias Pereira Reis
Muito estranho. Mas se quiser ver o conteúdo da variável PATH, basta 
digitar $PATH e enter, daí você copia o que tinha nela.
Certifique-se do seguinte, se o diretório é mesmo 
/usr/local/share/Lacuna , com L maiúsculo mesmo, ou não. Se for 
minúsculo ou a pasta tiver outro nome tem de mudar ela. Por exemplo:


PATH=$PATH:/usr/local/share/lacuna
export PATH

Agora, se a pasta estiver certinha, e o nome do seu programa for 
lacuna.lua, digite somente lacuna.lua no terminal (se não tiver a 
extensão no arquivo, então ignore-a, mas se tiver, tem que colocar).


Cara, com tanto erro, eu já não sei bem o que dizer. Eu instalei o 
interpretador lua aqui, se quiser, envie o arquivo e tento colocar ele 
em pasta semelhante e ver o que acontece.


Abraço
--
Ataias Pereira Reis

--
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


Re: [Ubuntu-BR] Execução de um script em /usr/local/share

2011-11-13 Por tôpico Luciano de Souza

Observe que coisa estranha:

/usr/bin/env lua #O interpretador abre
cd /home/luciano/fontes/lacuna
lua lacuna.lua #O script roda
chmod +x lacuna.lua
./lacuna.lua #Arquivo ou diretório não encontrado

Substituí o conteúdo do script por apenas o seguinte:

#!/usr/bin/env lua

print('Teste')

Faço:
lua lacuna.lua
E recebo:"teste". Muito bom. Isto está certo.

Contudo, este mesmo script, rodado como "./lacuna.lua",  não funciona e, 
pelos passos que descrevi, é realmente extraordinário, misterioso que 
não tenha funcionado!


Agora, vamos aos comandos que me enviou:
Se faço, $PATH, obtenho um conjunto de diretórios.

Se faço:
PATH=$PATH:/usr/local/share/Lacuna
export PATH

Não obtenho nenhum erro, mas se volto a fazer:

./lacuna
Arquivo ou diretório não encontrado

Quando fiz "$PATH", além do conjunto de diretórios, pareceu-me que uma 
mensagem de erro foi  emitida. Algo na linha do arquivo ou diretório não 
encontrado. Queria copiar o conteúdo da saída e enviar-lhe, mas não 
consegui.


Se faço: $PATH > output, diz que não tenho permissão. Se faço sudo $PATH 
> output, além de não colocar o resultado da variável no arquivo, o 
próprio conteúdo da variável foi esvaziado. Confesso que reiniciei o 
computador com bastante receio. Se $PATH não continha nada, então, 
talvez eu tivesse um travamento absoluto. Mas nada disso sucedeu. O 
ubuntu reconstituiu o seu conteúdo. NO entanto, continuei a não poder 
copiar o conteúdo da variável.


Seria importante que conseguisse copiar este conteúdo, pois sou cego, 
então, não posso valer-me de papel e caneta para copiar a mensagem e 
escrevê-la aqui.


Bom, de qualquer modo, fiquei com a impressão de que há algo errado com 
$PATH.


A hipótese de que eu estivesse a digitar algum comando equivocado, 
considerando que sou cego, era bem de se considerar. NO entanto, excluo 
esta alternativa, visto que,  pressionando tab, o Bash completa tudo 
para mim.


Veja que coisa extraordinária. Digito: "./lac". Pressiono tab. 
"./lacuna.lua". Muito bom. Ele encontrou o arquivo. Agora, pressiono 
"enter. "Arquivo ou diretório não encontrado". Dá para entender algo assim?


Em 13-11-2011 14:59, Ataias Pereira Reis escreveu:
Bem, não sei como criar arquivos .deb para isso. Mas acho mais simples 
modificar o .bashrc. Você pode fazer um comentário nas linhas que você 
colocar, deixando-as bem distinguíveis e depois, se precisar, 
retire-as. O .bashrc é executado quando você loga no sistema se não me 
engano. Aí você garante que o caminho para seu script estará sendo 
procurado modificando o path.


Nessa parte que você falou:
Se, tendo incluído como linha inicial "#!/usr/bin/env lua", chamo 
./lacuna.lua ele diz que o arquivo não foi encontrado.


Estou estranhando essa parte que você disse que com a linha 
"#!/usr/bin/env lua" no seu programa ocorrem erros dizendo arquivo não 
encontrado quando você tenta ./lacuna.lua . Tem certeza que estava na 
pasta correta quando chamou? Ou que o nome estava exato? Eu nunca 
tentei com esse tal de lua, só com python e shell, que adiciono uma 
linha semelhante no topo do arquivo.
Eu tentei conseguir o erro de arquivo não encontrado, ele só ocorre 
quando de fato o arquivo não existia aqui. Um outro erro, só que de 
"comando não encontrado", eu consegui digitando "programa" ao invés de 
"./programa". Isso eu corrigi aqui colocando a pasta na qual o comando 
estava no path.


Naquele comando que te passei, conferiu se o caminho que ia ser 
adiciona no path estava correto? E tentou executar o programa no mesmo 
terminal no qual modificou o path?


Abraço
--
Ataias Pereira Reis




--
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


Re: [Ubuntu-BR] Execução de um script em /usr/local/share

2011-11-13 Por tôpico Ataias Pereira Reis
Bem, não sei como criar arquivos .deb para isso. Mas acho mais simples 
modificar o .bashrc. Você pode fazer um comentário nas linhas que você 
colocar, deixando-as bem distinguíveis e depois, se precisar, retire-as. 
O .bashrc é executado quando você loga no sistema se não me engano. Aí 
você garante que o caminho para seu script estará sendo procurado 
modificando o path.


Nessa parte que você falou:
Se, tendo incluído como linha inicial "#!/usr/bin/env lua", chamo 
./lacuna.lua ele diz que o arquivo não foi encontrado.


Estou estranhando essa parte que você disse que com a linha 
"#!/usr/bin/env lua" no seu programa ocorrem erros dizendo arquivo não 
encontrado quando você tenta ./lacuna.lua . Tem certeza que estava na 
pasta correta quando chamou? Ou que o nome estava exato? Eu nunca tentei 
com esse tal de lua, só com python e shell, que adiciono uma linha 
semelhante no topo do arquivo.
Eu tentei conseguir o erro de arquivo não encontrado, ele só ocorre 
quando de fato o arquivo não existia aqui. Um outro erro, só que de 
"comando não encontrado", eu consegui digitando "programa" ao invés de 
"./programa". Isso eu corrigi aqui colocando a pasta na qual o comando 
estava no path.


Naquele comando que te passei, conferiu se o caminho que ia ser adiciona 
no path estava correto? E tentou executar o programa no mesmo terminal 
no qual modificou o path?


Abraço
--
Ataias Pereira Reis

--
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


Re: [Ubuntu-BR] Execução de um script em /usr/local/share

2011-11-13 Por tôpico Luciano de Souza

A coisa está um tanto confusa por aqui. Então, vejamos:

Se, no terminal, faço "/usr/bin/env lua", o terminal de Lua é aberto, 
então, este é o comando correto.


Se, estando em /home/luciano/fontes/lacuna", faço: "lua lacuna.lua", o 
script roda normalmente.


Se, tendo incluído como linha inicial "#!/usr/bin/env lua", chamo 
./lacuna.lua ele diz que o arquivo não foi encontrado.


Se retiro a linha #!/usr/bin/env lua, ele não dá a mensagem de que o 
arquivo foi encontrado. Executa o arquivo como se fosse um shellscript, 
mas como se trata de um script Lua, não reconhece os comandos que lá estão.


Tentei os comandos que me enviou. Eles não funcionaram, mas a bem dizer, 
considerando que o problema se deu antes disso, não deveriam mesmo 
funcionar.


Eu entendi o que você propôs. Estou certo de que funcionará, mas 
confesso que não é exatamente aquilo que eu pensava.


Gostaria de instalar e desinstalar o meu programa. O shell de instalação 
deve copiar os arquivos de /home/luciano/fontes/lacuna para 
/usr/local/share/lacuna.


Eu tinha pensado nos links simbólicos. Mas pensando melhor, eles não são 
uma boa idéia. O script recebe parâmetros e o link simbólico não será 
capaz de os processar.


Então, devo incluir /usr/local/share/lacuna no PATH do sistema. Para 
tanto, devo acrescentar ao fim de ./.bashrc as linhas que me sugeriu. 
Não sei como um script de instalação poderia acrescentar este comando ao 
fim do arquivo. Mas realmente penso que deve existir alguma solução. Mas 
se a coisa já tem suas complicações para o arquivo de instalação, como 
ficaria o shell de desinstalação? Mesmo que houvesse algum modo de 
processar o arquivo ./.bashrc, não terei a certeza se conseguirei 
remover as linhas acrescentadas.


Se eu não remover as linhas acrescentadas, não penso que haverá maior 
impacto, mas gostaria de não deixar sujeira após a desinstalação.


Será que, para ter tudo isso, tenho mesmo de  criar um pacote deb? Será 
que o dpkg-deb adiciona os caminhos ao path automaticamente e, quando o 
pacote é  desinstalado, ele suprime tais caminhos?


Se os pacotes deb adicionam e removem caminhos do path automaticamente, 
eu os preferirei. Não são propriamente complicados, apenas preciso 
estudar um pouco.


Em 13-11-2011 13:23, Ataias Pereira Reis escreveu:
Acho que o seu problema deve ser mesmo com o path. Você pode ver as 
pastas nas quais os programas que você digita no terminal são 
procurados digitando "$PATH" (sem aspas). Para mudar, você pode fazer 
"PATH=$PATH:/usr/local/share/scripts/Lacuna" e depois um "export 
PATH". Uma ressalva, isso para de funcionar depois, em se você abrir 
outros terminais ou deslogar. Para fazer permanente, coloque estes 
dois comandos no seu .bashrc , um arquivo que está na sua pasta de 
usuário.

Acho que isso pode funcionar, mas diga aí o que acontece.

Abraço!

--
Ataias Pereira Reis




--
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


Re: [Ubuntu-BR] Execução de um script em /usr/local/share

2011-11-13 Por tôpico Ataias Pereira Reis
Acho que o seu problema deve ser mesmo com o path. Você pode ver as 
pastas nas quais os programas que você digita no terminal são procurados 
digitando "$PATH" (sem aspas). Para mudar, você pode fazer 
"PATH=$PATH:/usr/local/share/scripts/Lacuna" e depois um "export PATH". 
Uma ressalva, isso para de funcionar depois, em se você abrir outros 
terminais ou deslogar. Para fazer permanente, coloque estes dois 
comandos no seu .bashrc , um arquivo que está na sua pasta de usuário.

Acho que isso pode funcionar, mas diga aí o que acontece.

Abraço!

--
Ataias Pereira Reis

--
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


Re: [Ubuntu-BR] Execução de um script em /usr/local/share

2011-11-13 Por tôpico Luciano de Souza

Sim, ele tem permissão de execução.

Procurei alguma coisa na Internet, mas fiquei confuso.

Uns diziam para acrescentar uma linha ao fim de /etc/profile. Isto seria 
necessário para acrescentar um caminho de busca. Achei esta opção um 
tanto complicada.


Agora, estou lembrando de que já vi um programa que, ao instalar-se 
criou um link simbólico em algum lugar abrangido por $path. Esta idéia 
tem a vantagem de não obrigar o sistema a que sempre busque nesta pasta.


Será que a abordagem dos links simbólicos é a melhor? Onde deveria 
salvá-los?


A minha pasta de desenvolvimento está em /home/luciano/fontes/lacuna. 
será que esta abordagem seria boa:


/home/luciano/fontes/install.sh

sudo cp -R $1 /usr/local/share/scripts
{criação de link simbólico}

/home/luciano/fontes/uninstall.sh
rm /usr/local/share/scripts/lacuna/*
rmdir /usr/local/share/scripts/lacuna
rm {apagando link simbólico.

Fiz um teste para criar o link simbólico.

ln -s /home/luciano/fontes/lacuna/lacuna.lua test

Mas qual não foi minha surpresa ao abrir ~/test, quando observei que ele 
era uma cópia de lacuna.lua e não um link simbólico.


Então, pergunto: será que a abordagem dos links simbólicos, com scripts 
para instalação e desinstalação, é a melhor? E quanto ao link simbólico, 
para onde o deveria remeter?


Quando tiver um pouco mais de prática, estudarei um pouco de deb, mas 
por enquanto...


Em 13-11-2011 11:24, Andre Cavalcante escreveu:

Outra coisa, verifica se o script tem permissão de execução:

$ chmod +x lacuna.lua

Abraços

Em 13 de novembro de 2011 13:15, Luciano de Souzaescreveu:


Caros,

Criei um script utilizando Lua.

Em sua linha inicial coloquei:

#!/usr/bin/env lua

Isto é suficiente para que seja encontrado o seu interpretador.

Em /usr/local/share, tenho uma pasta chamada scripts e, dentro dela, a
pasta do meu script, chamado "Lacuna".

Quando, no terminal, digitasse: "lacuna", ele deveria executar o comando:

lua /usr/local/share/scripts/**lacuna/lacuna.lua

  No entanto, o Bash me diz que o comando não foi encontrado. Como poderia
corrigir este problema?

  Luciano

--
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







--
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


Re: [Ubuntu-BR] Execução de um script em /usr/local/share

2011-11-13 Por tôpico Andre Cavalcante
Outra coisa, verifica se o script tem permissão de execução:

$ chmod +x lacuna.lua

Abraços

Em 13 de novembro de 2011 13:15, Luciano de Souza escreveu:

> Caros,
>
> Criei um script utilizando Lua.
>
> Em sua linha inicial coloquei:
>
> #!/usr/bin/env lua
>
> Isto é suficiente para que seja encontrado o seu interpretador.
>
> Em /usr/local/share, tenho uma pasta chamada scripts e, dentro dela, a
> pasta do meu script, chamado "Lacuna".
>
> Quando, no terminal, digitasse: "lacuna", ele deveria executar o comando:
>
> lua /usr/local/share/scripts/**lacuna/lacuna.lua
>
>  No entanto, o Bash me diz que o comando não foi encontrado. Como poderia
> corrigir este problema?
>
>  Luciano
>
> --
> 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
>



-- 
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
).
-- 
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


Re: [Ubuntu-BR] Execução de um script em /usr/local/share

2011-11-13 Por tôpico Andre Cavalcante
Luicano,

Vê se o nome do script (o arquivo) está escrito como lacuna.lua ou
Lacuna.lua. O Linux é sensível ao caso.

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).


Em 13 de novembro de 2011 13:15, Luciano de Souza escreveu:

> Caros,
>
> Criei um script utilizando Lua.
>
> Em sua linha inicial coloquei:
>
> #!/usr/bin/env lua
>
> Isto é suficiente para que seja encontrado o seu interpretador.
>
> Em /usr/local/share, tenho uma pasta chamada scripts e, dentro dela, a
> pasta do meu script, chamado "Lacuna".
>
> Quando, no terminal, digitasse: "lacuna", ele deveria executar o comando:
>
> lua /usr/local/share/scripts/**lacuna/lacuna.lua
>
>  No entanto, o Bash me diz que o comando não foi encontrado. Como poderia
> corrigir este problema?
>
>  Luciano
>
> --
> 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
>
-- 
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


[Ubuntu-BR] Execução de um script em /usr/local/share

2011-11-13 Por tôpico Luciano de Souza

Caros,

Criei um script utilizando Lua.

Em sua linha inicial coloquei:

#!/usr/bin/env lua

Isto é suficiente para que seja encontrado o seu interpretador.

Em /usr/local/share, tenho uma pasta chamada scripts e, dentro dela, a 
pasta do meu script, chamado "Lacuna".


Quando, no terminal, digitasse: "lacuna", ele deveria executar o comando:

lua /usr/local/share/scripts/lacuna/lacuna.lua

 No entanto, o Bash me diz que o comando não foi encontrado. Como 
poderia corrigir este problema?


 Luciano

--
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