Usando links simbólicos para trapacear o /opt

(Este artigo é parte integrante do Guia do Ubuntu Perfeito, o sucesso da aplicação deste artigo depende do sucesso das etapas anteriores)

Acabou de instalar o Ubuntu Linux, completou o idioma e agora ?

Minha sugestão é trapacear o /opt, na realidade a palavra não é trapacear, é aplicar um “workaround”. :)

Explico, existe uma pasta em seu sistema chamada de  :

/opt

Olhe para ela e notará que está vazia.

Estando vazia então concluímos que ela é inútil, certo ?

Afinal, se ela não é inútil então porque ela existe ?

Ela não é inútil, só não descobriram um uso para ela. :)

Brincadeiras à parte, existe uma padronização adotada em outros sistemas e distribuições do Linux em que todos os programas devem ter seus arquivos copiados para esta pasta. Padronização é bom e todos nós gostamos, no entanto, o sistema Debian, do qual nosso Ubuntu derivou-se resolveu não adota-la, pois já possuía como padrão  ter estes arquivos de programas instalados em /usr/share. Resultado ?

O resultado é que você não vai encontrar nenhum programa que venham dos repositórios oficiais ou tradicionais para Ubuntu Linux que utilizem a pasta /opt, todos os programas estão preparados para instalar-se em /usr/share.

Então essa pasta /opt ficará para sempre vazia, certo ?

Nem sempre, apenas se você nunca instalar algo fora dos repositórios do Ubuntu Linux. Se você instalar programas oriundos da Internet como Google Earth, Google Picasa, Adobe Reader,… eles se poderão ser instalados em /opt.

Se você instala programas e geralmente não se importa de onde eles tenham vindo, então com o passar do tempo você terá programas em /usr/share e também em /opt. Isso não traz nenhum efeito alarmante e nem causa prejuízos, mas não te incomoda saber que alguns programas ficaram fora do lugar ? No Windows seria o mesmo que ter “Arquivos de Programas” e “Program Files” no mesmo C:, eu tenho arrepios de ver isso.

Como evitar que programas venham a ser instalados em /opt ?

A resposta direta é : usando links simbólicos.

Links simbólicos (também chamados de symlinks ou soft links) são pequenos nodes de sistemas de arquivos que criam a ilusão de haver uma pasta ou arquivo num local, mas que na realidade aponta para outra pasta ou outro arquivo. Para os iniciantes dá a impressão que temos dois arquivos ou pastas iguais, quando na realidade tratam-se do mesmo destino. Para entender melhor, imagine que você tem um programa que utiliza o arquivo /usr/lib/libXp.so.6, depois veio uma atualização e removeu este arquivo deixando apenas a versão mais recente libXp.so.6.2.0 que é retro-compativel com a versão anterior, a pergunta é : o que acontecerá com o seu programa ? Simplesmente deixará de funcionar porque um de seus arquivos deixou de existir. Como resolver ? Se isso fosse com o Windows você teria de copiar o arquivo antigo de volta ou duplicar o novo arquivo convenientemente renomeado para que o programa não dê pela falta do arquivo, com o tempo, chamamos este procedimento de DLL Hell porque vira uma zona. Para não criarmos uma DLL Hell em nosso Ubuntu Linux, criaremos um symlink chamado /usr/lib/libXp.so.6 apontando para o arquivo libXp.so.6.2.0. :

ls -l /usr/lib/libXp.so*
lrwxrwxrwx 1 root root    14 2010-10-15 12:04 /usr/lib/libXp.so.6 -> libXp.so.6.2.0
-rw-r--r-- 1 root root 35568 2010-03-07 00:18 /usr/lib/libXp.so.6.2.0

Dessa forma, seu aplicativo continuará chamando a mesma biblioteca e não precisamos duplicar nenhum arquivo como mostrou o exemplo acima. Essa técnica é usada com eficiência para resolver os mais variados problemas que encontramos no caminho. Muitos arquivos em seu Ubuntu Linux são links simbólicos propositais permitindo atualizações seguras e confiáveis. Os links simbólicos (symlinks) podem apontar para pastas/arquivos que também contenham ou também sejam symlinks e podem ser usados de forma ilimitada e não precisam de privilégios especiais, basta que o criador tenha acesso à localidade onde ele será criado. O melhor de tudo sobre os links simbólicos : são transparentes para o sistema operacional.

Em nosso truque com o /opt faremos a mesma coisa, porém fazendo com que a pasta /opt aponte para /usr/share, ficando assim :

ls -l /
(...)
lrwxrwxrwx   1 root root    10 2010-10-15 13:23 opt -> /usr/share
(...)

Removeremos a pasta /opt no príncipio, porém vamos criar um novo /opt como sendo um link simbólico apontando para /usr/share, assim quando um programa apontar para /opt, encontrará todas as referencias que estiver buscando, porém, na realidade, os arquivos estarão fisicamente armazenados /usr/share.

De fato, se você não entendeu bem as instruções acima, com o tempo passará a entende-las, apenas tenha paciência. Por ora, apenas execute os comandos abaixo para ter esse “workaround” aplicado a seu sistema :

Após ter concluído que a pasta /opt está realmente vazia – você olhou para ela, né ? – execute o comando :

sudo rmdir /opt

Agora criamos o link simbólico :

sudo ln -s  /usr/share  /opt

Pronto !

Todos os próximos programas que forem instalados que desejarem ir para /opt serão direcionados para /usr/share.

Conclusão

Neste artigo você aprendeu a utilidade das pastas /usr/share e /opt, também aprendeu o que é um link simbólico e o mais importante : já sabe criar links simbólicos para resolver problemas de mapeamento de pastas no sistema.

  1. Deixe um comentário

Deixe uma resposta

Faça o login usando um destes métodos para comentar:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s

%d blogueiros gostam disto: