¿Cuáles son los "estándares"? ¿Debería poner la aplicación (no solo binaria, sino toda la distribución) en / usr / local o / usr / local / share.
Por ejemplo, scala o weka: contiene ejemplos, binarios, bibliotecas, etc. Entonces sería
/usr/local/scala-2.9.1
o
/usr/local/share/scala-2.9.1
Como soy el único administrador, no es un gran problema para mí, pero prefiero usar algo que sea ampliamente utilizado, no con mis propias costumbres.
Importante: no estoy preguntando sobre casos, en los que debe dividir la aplicación en / usr / local / bin, / usr / local / lib, etc. Más bien, estoy preguntando sobre el caso cuando tiene que mantener un directorio principal para toda la aplicación.
software-installation
directory-structure
application
Greenoldman
fuente
fuente
/opt
es de hecho la respuesta correcta, pero es no "ampliamente utilizado" por el software tradicional de Unix / Linux. Hay grandes razones para dividir sus archivos en múltiples directorios, y también para diferenciarse/usr
de/usr/local
/usr/bin
(o/usr/local/bin
) permite que su $ PATH llegue a todo el software sin necesidad de editarlo para cada software, un concepto que no existe en WindowsRespuestas:
Creo que / opt es más estándar en este tipo de contexto. La sección relevante en el Estándar de Jerarquía del Sistema de Archivos se cita a continuación.
fuente
Solo debe usar
/usr/local/share
para archivos que no son específicos de una arquitectura particular / versión del sistema operativo.Después de eso, depende de usted si distribuye los archivos entre los subdirectores existentes de
/usr/local
o si crea un nuevo directorio dedicado en/usr/local
(pero este último ya no existirá en el ejecutablePATH
, elLD_LIBRARY_PATH
, ni elMANPATH
).Echa un vistazo a la FHS
fuente
bin
,share
,lib
, etcHasta que se
/opt
hizo común, el lugar habitual era/usr/local/lib/<package>
.fuente
Al instalar aplicaciones locales, hay varias opciones según cómo desee acceder y actualizar. También debe tenerse en cuenta que algunos métodos se parecen más al sistema que ya tiene y otros son más ad-hoc. Sugeriría que las "mejores" soluciones son las que hacen que las cosas sean más fáciles de administrar.
He dividido esta respuesta en función de la cantidad de paquetes para realizar instalaciones personalizadas. La división se basa en mis propias experiencias. Estas experiencias sopesan el tiempo que lleva administrar los paquetes y los riesgos de estropear algo. No quiero decir que tengo el conocimiento de estándares comunes, sino que me refiero a esto como un punto de referencia a tener en cuenta al tomar la decisión.
Por solo unos pocos paquetes , quisiera poner paquetes adicionales en
/opt
, donde están fuera del camino de todo lo demás para que nada pueda estropearlos y puedan estropear algo más. Este es el método que uso en mi NAS. Sin embargo, este método mantiene los binarios fuera de su RUTA, por lo que deberá agregarlos manualmente. Esto funciona bien si solo hay unos pocos paquetes para instalar, pero se convierte en un desastre si hay muchos.Actualizar aquí es bastante fácil ya que simplemente sobrescribe el directorio.
Pros:
Contras:
PATH
vea desordenadoPara más de unos pocos paquetes , recomendaría usar el
/usr/local/<your package>
enlace simbólico y el ejecutable desde/usr/local/bin
o/usr/local/sbin
dependiendo de si necesita privilegios de root. Esto le evita cambiar su RUTA cada vez que se agrega algo nuevo para que la RUTA permanezca limpia. Este es el método que uso en mi computadora portátil Arch para todos los paquetes que no son de Pacman y AUR.La actualización se realiza sobrescribiendo el directorio del paquete y verificando que el enlace simbólico aún sea válido y corrigiendo si no lo es.
Pros
PATH
desordenadoContras:
Para muchos paquetes . Como este no es el caso que deseas, lo mantendré breve. Yo recomendaría dividir el paquete en
bin
,lib
,share
, etc, y la instalación de ellos a/usr/local
. Esto es para mantener limpia la estructura. También puede especificar quién puede escribir dónde y más. Por ejemplo, no desea que otras personas que no sean root modifiquen el ejecutable.Aquí la actualización se vuelve un poco más complicada ya que necesita escribir en más de un directorio. Recomendaría empaquetar todo y dejar que el administrador de paquetes se encargue del resto.
La cuota
El
share
directorio en sí mismo es para archivos independientes de la arquitectura como se señala en Faheem de enlace y los archivos dependientes de la arquitectura deben ir alib
,lib32
,lib64
, etc.fuente