¿Dónde se almacena el software instalado en Linux?

¿Dónde se almacena el software instalado en Linux?

Posible duplicado:
¿Dónde se instala un programa típico de Linux?

Soy nuevo en Linux y quiero preguntar un poco más sobre los paquetes.

En Windows, descargo un .exearchivo y lo instalo. Cuando instalo, defino la ruta donde quiero que se almacene esa aplicación. En esa carpeta tengo todos los archivos necesarios para la aplicación.

Sin embargo, cuando instalo un paquete en Linux usando yumo apt-get, no sé dónde está instalado el paquete ni dónde se almacenan los archivos necesarios para esa aplicación. He visto que la mayoría de las configuraciones están en el /etcdirectorio. Pero, ¿por qué Linux almacena los archivos necesarios para una aplicación en directorios diferentes?

¿Alguien puede decirme cómo se instalan los paquetes, dónde y cómo se almacenan? Y si mi comprensión sobre la gestión de paquetes es incorrecta, corríjame.

Respuesta1

Muchos programas (los binarios/scripts) terminan en /bino /usr/bincon otras partes en varios directorios de configuración (a menudo en/bajo etc), como ya señaló.

Para cualquier comando específico, puede consultardónde es

whereis prog_name

y le dará información sobre dónde se encuentra este comando. También puedes probarcual

which prog_name

También estográfico y explicación/ejemplospodría ser útil.

Respuesta2

Puede obtener una lista de los archivos que yuminstala un paquete determinado haciendo:

yum install yum-utils

Entonces puedes ejecutarlo así:

repoquery --list yum-utils

(Obviamente, reemplace "yum-utils" en el segundo con el nombre del paquete cuya lista de archivos le gustaría ver).

Para apt-get, puedes usar:

dpkg -L package-name

Respuesta3

En Windows, especialmente en las versiones más antiguas, era común que los programas almacenaran archivos de configuración y datos no constantes en su C:\Program Filesdirectorio. Esto se deriva de cómo los programas generalmente se instalaban y ejecutaban bajo DOS de usuario único, sin red y sin permiso de archivos.

Desde el punto de vista de la seguridad, esta es una mala idea. Los lugares donde se encuentra el código ejecutable deben separarse de los datos modificables. De esa manera, es más fácil aplicar los permisos de archivos adecuados para evitar la modificación de los archivos binarios instalados por parte de usuarios no autorizados. De manera similar, los directorios de bibliotecas que pueden actualizarse por separado de los ejecutables principales también deben estar en un directorio separado.

Con la llegada de las molestias de Vista y UAC, esta tradición finalmente está comenzando a perder fuerza.

UNIX y Linux, al ser un sistema multiusuario desde mucho antes, tenían la tendencia a separar los directorios ejecutables de otros directorios mucho antes, ya que era necesario evitar que usuarios distintos del root modificaran los binarios instalados. También es la razón por la que, /usre incluso /sbina veces, son particiones separadas: un administrador particularmente consciente de la seguridad puede montar esas particiones de solo lectura y volver a montarlas en lectura/escritura cuando sea necesario realizar una instalación/desinstalación.

Los paquetes generalmente se instalan desde un administrador de paquetes. Hay varios administradores de paquetes, como aptitude(Debian y distribuciones derivadas), yum(Redhat y distribuciones derivadas), pacman(olvídese de qué distribución es esta...) y otros.

El administrador de paquetes le permite explorar repositorios, descargar, instalar, consultar y eliminar software, muy parecido a una "tienda de aplicaciones" sofisticada (y gratuita). Asume la responsabilidad de garantizar que se atiendan las dependencias y realizar un seguimiento de lo que está instalado actualmente.

Por lo general, el administrador de paquetes también permitirá las mismas operaciones en un paquete que descargó manualmente fuera de cualquier repositorio. También hay herramientas disponibles si desea crear las suyas propias a partir de un software que usted mismo creó o compiló.

Dado que el paquete en sí NO es un archivo ejecutable, no es necesario que ejecute un ejecutable que no sea de confianza y que no sepa realmente lo que hace. (Windows finalmente viene con actualizaciones distribuyendo .msu's en lugar de .exe's, pero .msi's han existido por un tiempo...)

Respuesta4

En Linux/Unix, la mayoría de los programas generalmente no terminan en un solo directorio, sino que diferentes partes del mismo (ejecutables, archivos de configuración, archivos de registro, documentación, otros recursos) están dispersas por el sistema de archivos, generalmente a través de enlaces simbólicos. ElArtículo de Wikipediadescribe con más detalle la estructura de directorios estándar bajo una jerarquía de sistema de archivos normal, mostrando los diferentes directorios y lo que puede esperar encontrar en cada uno.

información relacionada