[Ubuntu-BR] Entendendo a organização da estrutura de pastas dos programas no Ubuntu 10.04

luciano de souza luchyanus em gmail.com
Quarta Dezembro 8 11:56:28 UTC 2010


A idéia é fazer um programa autocontido. Sua resposta foi para mim
interessante e surpreendente. Porque estava no windows, nunca lidei
com o conceito de link simbólico.

Você sugeriu que tudo fosse posto em /opt. Por desconhecimento, minha
tendência seria colocar as bibliotecas e não os links simbólicos nos
referidos caminhos. Qual seria a desvantagem de fazê-lo?

Deixe-me exercitar uma hipótese. Terei um script que porá os arquivos
em /opt e criará os links simbólicos. Talvez os links simbólicos sejam
coisinhas mágicas que perseguem os arquivos para o qual apontam e, uma
vez removidos os primeiros, os links se apagam automática e
milagrosamente. Se isso for verdade, o script de desinstalação do
programa, teria apenas de fazer: “rm –r /opt/*”. Todos os links
simbólicos de /usr/bin e /usr/lib se suicidariam tão logo descobrissem
que ficaram sós.

Será que é isso? Se não for, qual a razão de colocar em /usr/bin e
/usr/lib os links simbólicos e não as próprias bibliotecas?




bEm 08/12/10, Andre Cavalcante<andre.d.cavalcante em gmail.com> escreveu:
> Como diria o bom programador Jack: por partes.
>
> Teu programa é auto-contido, isto é, tu vais distribuir tudo o que é
> necessário, sem links/dependências com outras bibliotecas (além é claro do
> glibc e kernel linux e eventualmente o LUA runtime)? Se sim é um programa de
> terceiros e o melhor é fazer um script que copie tudo para /opt/teu_programa
> e crie uns links simbólicos em /usr/bin para os executáveis e em /usr/lib
> para as bibliotecas dinâmicas. A estrutura interna pode ser qualquer uma,
> mas a que você sugeriu é muita boa.
>
> Teu programa tem uma estrutura distribuída (usar várias bibliotecas
> compartilhadas de outros pacotes e irá fornecer igualmente uma ou várias
> bibliotecas compartilhadas)? Então gere um pacote .deb que guarde as coisas
> onde devem ser guardadas (veja LSB). Tem vários detalhes, mas aí eu deixo
> para os meus colegas da lista que são mantenedores de pacotes para te
> explicar melhor isso.
>
> Eu particularmente uso a primeira opção e, como uso Java, distribuo
> compactados em zip com um script interno que pode ser executado tanto como
> root (/opt/meu_programa) como usuário comum (/home/$USER/apps/meus_programa)
> - quando não uso WebStart.
>
> --
> André Cavalcante
> Almada, 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://www.sun.com/software/star/odf_plugin/get.jsp).
>
>
> 2010/12/8 luciano de souza <luchyanus em gmail.com>
>
>> Caros,
>>
>> Gostaria de compreender melhor a estrutura de pastas do Linux.
>> Escreverei um programinha em Lua. Ele se comporá de algumas
>> bibliotecas dinâmicas "*.so", de um arquivo de banco de dados Sqlite3,
>> de algum arquivo de configuração, de alguns scripts Lua, alguma
>> documentação  e de um Shell script que invocará o interpretador de Lua
>> que processará o referido script.
>>
>> Se estivesse em Windows, compactaria a pasta do programa com o Winrar,
>> escolheria a opção de geração de um arquivo autoextraível ("exe" e,
>> apontaria para a pasta Arquivos de Programas. Como não necessitaria de
>> nenhuma gravação no registro do Windows, isto seria suficiente.
>>
>> Em Arquivos de Programas, ele criaria a pasta do programa e dentro dela:
>>
>> ./bin para executáveis e bibliotecas dinâmicas
>> ./doc para alguma documentação
>> dat para o banco de dados e para configurações
>> scr para os scripts Lua
>>
>> Na pasta raiz do programa, no windows, teria um executável, o disparador.
>>
>> E no Linux? Como as coisas funcionam? Pelo que pude depreender:
>>
>> /bin contém os binários do sistema
>> /usr/bin contém os executáveis de programas instalados no sistema
>> /usr/lib contém as bibliotecas de programas instalados no sistema
>> /usr/local/bin e /usr/local/lib parecem cumprir papel similar ao anterior
>>
>>
>> enfim, estou confuso de como deveria organizar o meu programa. Se bem
>> entendi, o Linux não adota uma pasta para cada programa, tendo dentro
>> dela uma  micelânia de conteúdos.
>>
>> No Linux, parece que a instalação de um programa não está instalada em
>> uma pasta, mas espalhada por diversas pastas de acordo com a função de
>> cada arquivo dentro do programa.
>>
>> O que me dizem a este respeito? Será que estou correto? como deveria
>> organizar os conteúdos que mencionei.
>>
>> Luciano de Souza
>>
>> --
>> 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
>


-- 
Luciano de Souza




More information about the ubuntu-br mailing list