¿Por qué los softwares suelen mantener los datos locales en $HOME/.?

¿Por qué los softwares suelen mantener los datos locales en $HOME/.?

La mayoría de las aplicaciones que suelo instalar (opam, cargo, vscode, julia, ...) mantienen un almacenamiento local en mi carpeta de inicio. ¿Existe alguna razón para esta preferencia? O mejor aún, ¿las alternativas tienen desventajas?

Por ejemplo, a veces se sugiere que dichos archivos se ubiquen en /var o en ~/.local/share, pero puede haber problemas o molestias al usar estas carpetas en una aplicación "cross-distro".

¿Conoce alguno de estos posibles problemas?

[cualquier respuesta a cualquiera de las tres preguntas que hice aquí sería satisfactoria]

Respuesta1

En una publicación de Google+ de Rob Pike, Una lección de atajos, se le da esta explicación:

Hace mucho tiempo, mientras se trabajaba en el diseño del sistema de archivos Unix, aparecieron las entradas .y .., para facilitar la navegación. No estoy seguro, pero creo que ..entró durante la reescritura de la Versión 2, cuando el sistema de archivos se volvió jerárquico (tenía una estructura muy diferente desde el principio). Sin embargo, cuando uno escribía ls, aparecían estos archivos, por lo que Ken o Dennis agregaron una prueba simple al programa. Estaba en ensamblador entonces, pero el código en cuestión era equivalente a algo como esto:

    if (name[0] == '.') continue;

Esta declaración fue un poco más corta de lo que debería haber sido, lo cual es

    if (strcmp(name, ".") == 0 || strcmp(name, "..") == 0) continue;

pero bueno, fue fácil.

Resultaron dos cosas.

En primer lugar, se sentó un mal precedente. Muchos otros programadores perezosos introdujeron errores al realizar la misma simplificación. Los archivos reales que comienzan con puntos a menudo se omiten cuando deberían contarse.

En segundo lugar, y mucho peor, se creó la idea de un archivo "oculto" o "punto". Como consecuencia, los programadores más perezosos comenzaron a colocar archivos en el directorio personal de todos. No tengo tantas cosas instaladas en la máquina que estoy usando para escribir esto, pero mi directorio de inicio tiene alrededor de cien archivos de puntos y ni siquiera sé cuáles son la mayoría de ellos o si todavía son necesarios. . Cada evaluación de nombre de archivo que pasa por mi directorio personal se ve ralentizada por este lodo acumulado.

Estoy bastante seguro de que el concepto de archivo oculto fue una consecuencia no deseada. Ciertamente fue un error.

(Para aquellos que objetan que los archivos punto tienen un propósito, no lo cuestiono, pero respondo que son los archivos los que cumplen el propósito, no la convención para sus nombres. Podrían estar fácilmente en $HOME/cfg o $HOME /lib, que es lo que hicimos en el Plan 9, que no tenía archivos punto. Se pueden aprender lecciones).

Entonces lo que entiendo es que:

A medida que estos "archivos punto" se volvieron invisibles, otros programadores intervinieron y decidieron que el lugar para almacenar sus valiosos datos de configuración eran los archivos punto junto con los archivos .y ... Como al principio la jerarquía de archivos no estaba muy evolucionada, todos terminaron en el directorio $HOME, y bastante rápido esto se convirtió en una convención no escrita a la que todos se conformaron, siguiendo los pasos de los padres fundadores.

Esto dio lugar a monstruosidades como:

imagen

Referencia :

Historia de Linux: cómo los archivos Dot se convirtieron en archivos ocultos

información relacionada