Entiendo que tanto en Windows como en Linux y Unix, se puede instalar un programa | aplicación | software en cualquier directorio. Además, si los paquetes se instalan utilizando el sistema de empaquetado de la distribución, colocará los archivos en la ubicación correcta.
Pero a veces, una instalación de software solicita una ruta para colocar archivos. En caso de una distribución de Linux, ¿dónde está este lugar predeterminado ( C:\Program Files
o C:\progra~1
equivalente)? ¿Es diferente para varias distribuciones? Si es así, ¿dónde estaría presente para ser RHEL
, Suse
y Ubuntu
?
No hay equivalente directo. La estructura del directorio es muy diferente. En Windows, tiene un único directorio para cada paquete / software instalado que contiene todos los archivos relacionados (p
C:\Program Files\MyProgram
. Ej .). En Linux, cada software está "disperso" en muchos directorios según el tipo de archivo y alguna otra regla.Como ejemplo, podemos examinar dónde
xscreensaver
están instalados los diferentes archivos relacionados con el programa:No se preocupe, por lo general cuando un instalador le pregunta dónde instalar a, la respuesta correcta es uno de los siguientes:
/
,/opt
,/usr
,/usr/local
Como puede ver, casi todos los (1) archivos
xscreensaver
se instalan de/usr
acuerdo con alguna regla simple: ejecutables/usr/bin
, páginas de manual/usr/share/man
, documentación,/usr/share/doc/packages/PROGRAMNAME
etc.Cuando un instalador solicita una instalación
prefix
, generalmente quiere ahora la ruta de acceso básica bajo la cual instalar el programa. En mixscreensaver
ejemplo, lo es/usr
.Como regla simple:
/
debe contener solo el programa que se necesita para iniciar el sistema (comoC:\windows\system32
),/usr/local
debe contener los programas que se necesitan solo en esa computadora única,/opt
(2) todos los programas opcionales que tienen una estructura de directorio no estándar y/usr
todo el software estándar .En cualquier caso, existe un estándar que define todas estas reglas en detalle: Estándar de jerarquía del sistema de archivos
(1) los archivos de configuración de todo el sistema deben residir en
/etc
(2) bastante obsoleto bajo Linux
fuente
/opt
se prefiere para software de terceros durante/usr/local
bastante tiempo./usr/share
se llama "compartir" porque se comparte entre diferentes arquitecturas (documentación, scripts, imágenes), mientras que/usr/lib*
es para archivos dependientes de la arquitectura (y no ejecutables, a los cuales/usr/bin
).USusually,
/bin
,/usr/bin
,/usr/local/bin
, o/opt/bin
. Creo/usr/bin
y/opt/bin
son los archivos de programa más cercanos, porque generalmente son para archivos binarios no críticos del sistema instalados por el administrador del sistema, aunque a diferencia de Windows, ambos contienen programas instalados con un administrador de paquetes. Dónde/usr/local/bin
está para el software empaquetado no distribuido./bin
es para binarios críticos del sistema como/bin/sh
.fuente
/bin
,/usr/bin
,/usr/local/bin
O/opt/bin
. ¿No hay una ubicación estándar? La razón por la que pregunto es porque estoy instalando software en algunas máquinas virtuales y la ubicación predeterminada toma cualquier partición que tenga el mayor espacio. Quiero cambiar el espacio de partición al directorio donde suele ir el software y no tener el software colocado de manera diferente en todas las máquinas virtuales./opt
por ejemplo, generalmente se usa para software propietario./usr/
es una partición separada./bin
y/usr/bin
ahora es obsoleta; Históricamente, las cosas crítico del sistema estaría en/bin
,/lib
, ... (directamente en la raíz), mientras que/usr
(con/usr/bin
,/usr/lib
, ...) se montaría más adelante (tal vez a través de red), no siendo necesario para la funcionalidad básica del sistema./opt
no debería salir. Algunas personas solían pensar en el pasado que era una buena idea tener algunas aplicaciones en una ubicación diferente de todas las demás aplicaciones./bin
está en la partición raíz. Como en algunos sistemas, el espacio en la partición raíz es limitado, se movieron archivos binarios no esenciales (es decir, todas las aplicaciones de usuario)/usr/bin
.Eche un vistazo a
man hier
su "Descripción de la jerarquía del sistema de archivos".fuente
Como otros han señalado, los programas instalados a través del administrador de paquetes están dispersos en varios directorios. Aunque normalmente se encuentra el binario
/usr/bin
, los archivos de configuración de todo el sistema están en/etc
, y así sucesivamente.Si no se instala una aplicación a través del administrador de paquetes, los archivos deben instalarse en un lugar donde no interfieran con el administrador de paquetes. Este lugar es
/usr/local
.Si se le solicita una ruta de instalación, la opción más común sería
/usr/local/appname
fuente
Escriba
echo $PATH
su terminal para ver la (s) ruta (s) que buscará el shell para encontrar un comando. Se va a buscar un archivo en el orden en que se imprime.fuente
Bueno, no encontrará todas sus soluciones en
/bin
ysbin
porque contienen principalmente comandos del sistema (es decir, los comandos utilizados por el sistema)./usr/bin
idealmente se le puede llamar el"Program Files"
mundo de Unix. Con respecto a que/opt
muy pocos paquetes optan por usar esa ubicación para la instalación, lo mismo se aplica a los paquetes que usan/etc/
o/var
como ubicacionesfuente