
A maioria dos aplicativos que costumo instalar (opam, cargo, vscode, julia, ...) mantém um armazenamento local na minha pasta pessoal. Existe uma razão para esta preferência? Ou melhor, existem desvantagens nas alternativas?
Por exemplo, às vezes é sugerido que tais arquivos estejam localizados em /var ou em ~/.local/share, mas pode haver problemas ou aborrecimentos no uso dessas pastas em aplicativos "cross-distro".
Você conhece algum desses possíveis problemas?
[qualquer resposta a qualquer uma das três perguntas que fiz aqui seria satisfatória]
Responder1
Em uma postagem no Google+ de Rob Pike, Uma lição sobre atalhos, é dada esta explicação:
Há muito tempo, enquanto o design do sistema de arquivos Unix estava sendo elaborado, as entradas
.
e..
apareceram, para facilitar a navegação. Não tenho certeza, mas acredito que..
isso ocorreu durante a reescrita da versão 2, quando o sistema de arquivos se tornou hierárquico (tinha uma estrutura muito diferente no início). Quando alguém digitavals
, no entanto, esses arquivos apareciam, então Ken ou Dennis adicionaram um teste simples ao programa. Na época estava em assembler, mas o código em questão era equivalente a algo assim:if (name[0] == '.') continue;
Esta declaração foi um pouco mais curta do que deveria ter sido, o que é
if (strcmp(name, ".") == 0 || strcmp(name, "..") == 0) continue;
mas ei, foi fácil.
O resultado foram duas coisas.
Primeiro, foi criado um mau precedente. Muitos outros programadores preguiçosos introduziram bugs fazendo a mesma simplificação. Os arquivos reais que começam com pontos são frequentemente ignorados quando deveriam ser contados.
Em segundo lugar, e muito pior, foi criada a ideia de um arquivo “oculto” ou “ponto”. Como consequência, programadores mais preguiçosos começaram a colocar arquivos no diretório inicial de todos. Não tenho tantas coisas instaladas na máquina que estou usando para digitar isso, mas meu diretório inicial tem cerca de cem arquivos de pontos e nem sei o que a maioria deles é ou se ainda são necessários . Cada avaliação de nome de arquivo que passa pelo meu diretório inicial é retardada por esse lodo acumulado.
Tenho certeza de que o conceito de arquivo oculto foi uma consequência não intencional. Certamente foi um erro.
(Para aqueles que objetam que os arquivos de ponto servem a um propósito, não discuto isso, mas respondo que são os arquivos que servem ao propósito, não a convenção para seus nomes. Eles poderiam facilmente estar em $HOME/cfg ou $HOME /lib, que foi o que fizemos no Plano 9, que não tinha arquivos de ponto. Lições podem ser aprendidas.)
Então o que eu entendo é que:
À medida que esses “arquivos de ponto” se tornaram invisíveis, outros programadores intervieram e decidiram que o local para armazenar seus preciosos dados de configuração era em arquivos de ponto, junto com os arquivos .
e ..
. Como no início a hierarquia de arquivos não era muito evoluída, todos eles acabaram no diretório $HOME, e rapidamente isso se tornou uma convenção não escrita à qual todos se conformaram, seguindo os passos dos pais fundadores.
Isso deu origem a monstruosidades como:
Referência:
História do Linux: como os arquivos Dot se tornaram arquivos ocultos