Respuestas:
"Sistemas basados en Unix" es una categoría demasiado general para hacer cualquier tipo de determinación de aplicación general que se aplique a todos Sistemas basados en Unix. El problema es que la estructura del sistema de archivos (y el lugar "apropiado" / "convencional" para colocar las cosas) es tan tremendamente diferente entre los diferentes sabores de "Unix" (si es que se puede llamar así), por lo que tienes que manejarlo. sobre una base de caso por caso.
Algunos ejemplos:
La respuesta es que el Canónico, socialmente aceptable, bien integrado. convención sobre dónde almacenar cualquier cosa en cualquier sistema operativo, ya sea una distribución de Linux, BSD, Solaris, HP-UX, etc. Depende de las circunstancias exactas . Específicamente:
apt-get
o yum
¿Para instalarlo directamente sin descargar un instalador de un sitio web? No hay una respuesta directa para esto sin considerar todos los factores. Sin embargo, para Ubuntu 12.04 específicamente , si está construyendo su paquete en un .deb
El archivo se distribuirá en un PPA o para enviarlo a los repositorios de paquetes de Ubuntu ( main
o universe
), Recomendaría que el caché se almacene en /var/cache
. Pero eso es solo para Ubuntu y tu ciertamente no debería Aplique la suposición de que cada sistema de distribución basado en la base o en Unix lo considerará aceptable.
Además, si no hay ventajas en guardar los datos de la caché en los arranques del sistema, creo que también podría pertenecer a / tmp.
Tenga en cuenta que se encontrará con estos problemas de convención de rutas de ruta para cada tipo de archivo que utiliza su programa: datos compartidos, archivos ejecutables, bibliotecas, archivos de ayuda, imágenes, sonido, páginas web, etc. Así que me pregunto, si está preguntando acerca de los archivos de caché, cómo planea manejar los otros tipos de archivos. ¿Está usted haciendo suposiciones ingenuas y esperando que nadie esté en desacuerdo con usted? Si no ha leído ninguna documentación o estándares de Ubuntu que sugieran dónde colocarlos, es una mala idea asumir solo una cosa u otra. Por ejemplo, siempre pegar bibliotecas en / usr / lib podría ser un error, ya que, dependiendo de la situación, pueden pertenecer a otro lugar.
Además, como desarrollador de software, creo que lo más responsable es permitir que el usuario final decida dónde colocar sus archivos. Puede configurar los valores predeterminados, pero los usuarios (y los distribuidores) pueden personalizar la compilación para que se ajuste a su distro.
La forma más fácil de hacer esto es construir su programa usando GNU Autoconf . Autoconf es un sistema de compilación en el que el usuario puede pasar los argumentos de la línea de comandos al script de compilación para cambiar las rutas de los distintos "tipos de directorio" de los valores predeterminados. Casi todas las distribuciones tienen un script de compilación para cada paquete de Autoconf que establece los directorios convencionales apropiados para la distribución de cada tipo. Incluso tienen específicamente un tipo de directorio para caché: estado compartido .
gem
herramienta. Sin embargo, probablemente no sería apropiado crear archivos en tiempo de ejecución dentro del mismo directorio donde la gema descarga su aplicación. Por otro lado, si está ejecutando la aplicación como usuario, necesita un directorio que sea de lectura y escritura. para usuarios , y eso significa cambiar los permisos (lo que requiere aún más trabajo de integración del sistema en el momento de la instalación, como crear un grupo, etc.) o usar un directorio global de lectura-escritura, por ejemplo. / tmp.
/usr
, /lib
o /bin
desde su aplicación.
/tmp
carpeta. Las respuestas a sus preguntas serían (descarga, no, no, no, no, no, no). Probablemente parece normal que la mayoría de la gente concluya que es/tmp
pero soy nuevo en los sistemas Unix y las convenciones basadas en ubuntu os no me son familiares. Esto abre una idea interesante para que gema permita el almacenamiento en caché del disco agnóstico (usuario agnóstico). Gracias, +1 de mi parte.