Posible duplicado:
dónde está instalado un programa típico de Linux
Soy nuevo en Linux y quiero preguntar un poco más sobre los paquetes.
En Windows, descargo un .exe
archivo 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 yum
o apt-get
, no sé dónde está instalado el paquete y dónde se almacenan los archivos necesarios para esa aplicación. He visto que la mayoría de las configuraciones están en el /etc
directorio. Pero, ¿por qué Linux almacena los archivos necesarios para una aplicación en diferentes directorios?
¿Alguien puede decirme cómo se instalan los paquetes y dónde y cómo se almacenan? Y si mi comprensión sobre la gestión de paquetes es incorrecta, corríjame.
rpm
, puede usarrpm -q --whatprovides
para encontrar el nombre del paquete para un archivo en particular y luegorpm -q -a
averiguar qué archivos instaló un paquete.apt-get
, si el paquete está instaladodpkg -L PKGNAME
, use , si no lo estáapt-file list
.Respuestas:
Muchos programas (los binarios / scripts) terminan en
/bin
o/usr/bin
con otras partes en varios directorios de configuración (a menudo en / debajoetc
) como ya lo señaló.Para cualquier comando específico, puede consultar whereis
y le dará información sobre dónde se encuentra este comando. También puedes probar qué
Además, este gráfico y explicación / ejemplos pueden ser útiles.
fuente
/etc/
, pero tener una ubicación central para los archivos de configuración hace que sea muy fácil hacer una copia de seguridad. (Imagine hacer una copia de seguridad de los archivos de configuración de todo el sistema en Windows, donde están dispersos por todo el sistema de archivos y el registro ...)En Windows, particularmente en versiones anteriores, era común que los programas almacenaran archivos de configuración y datos no constantes en su
C:\Program Files
directorio. Esto se deriva de cómo los programas generalmente se instalaron y se ejecutaron bajo DOS de usuario único, sin red y sin permiso de archivo.Desde el punto de vista de la seguridad, esta es una mala idea. Los lugares donde vive el código ejecutable deben estar separados de los datos modificables. De esa manera, es más fácil aplicar los permisos de archivo apropiados para evitar la modificación de los archivos binarios instalados por usuarios no autorizados. Del mismo modo, los directorios de la biblioteca que se pueden actualizar por separado de los ejecutables principales también deben estar en un directorio separado.
Con el advenimiento de las molestias de Vista y UAC, esta tradición finalmente está empezando a perder la tracción.
UNIX y Linux, al ser un sistema multiusuario desde mucho antes, tenían la tendencia de separar los directorios ejecutables de otros directorios mucho antes, ya que era necesario evitar que otros usuarios además de root modificaran los binarios instalados. También es por qué
/usr
e incluso a/sbin
veces son particiones separadas: un administrador especialmente consciente de la seguridad puede montar esas particiones de solo lectura y volver a montarlas para leer / escribir cuando sea necesario realizar una instalación / desinstalación.Los paquetes generalmente se instalan desde un administrador de paquetes. Hay varios gestores de paquetes, como
aptitude
(Debian y distribuciones derivadas),yum
(Redhat y distribuciones derivadas),pacman
(olvide qué distribución es esta ...) y otros.El administrador de paquetes le permite explorar repositorios, descargar, instalar, consultar y eliminar software, como una "tienda de aplicaciones" sofisticada (y gratuita). Asume la responsabilidad de garantizar que se atiendan las dependencias y de rastrear 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. Las herramientas también están disponibles si desea crear el suyo a partir del software que creó o compiló usted mismo.
Dado que el paquete en sí NO es un archivo ejecutable, no tiene que ejecutar un ejecutable no confiable que realmente no sabe lo que hace. (Windows finalmente está llegando con actualizaciones distribuyendo
.msu
's en lugar de.exe
' s, pero.msi
han existido por un tiempo ...)fuente
Puede obtener una lista de los archivos que
yum
instala un paquete dado haciendo:Entonces puedes ejecutarlo así:
(Obviamente, reemplace "yum-utils" en ese segundo con el nombre de ese paquete cuya lista de archivos le gustaría ver).
Para
apt-get
, puedes usar:fuente
Normalmente debajo
/usr/bin
, aunque depende de la aplicación o biblioteca particular que esté instalando.fuente
En Linux / Unix, la mayoría de los programas generalmente no terminan en un solo directorio, pero diferentes partes del mismo (ejecutables, archivos de configuración, archivos de registro, documentación, otros recursos) se encuentran dispersos a través del sistema de archivos, generalmente a través de enlaces simbólicos. El artículo de Wikipedia describe 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.
fuente
El
/opt
directorio está reservado para instalaciones similares a Windows donde cada paquete tiene su propio árbol de directorios. Nadie lo usa. No estoy seguro de por qué; podría ser que la adición/opt/PACKAGE/bin
a su$PATH
cada vez que instale un paquete es demasiado molesto.fuente
/opt
parece ser utilizado principalmente por paquetes de software comerciales / no libres, como MATLAB./opt
pero también lo hizo LibreOffice 3.5 que instalé directamente desde aquí .El software en Linux es un poco diferente en paradigma de Windows o Mac. En ellos, un archivo ejecutable y todos sus archivos de soporte se instalan en una sola carpeta: Windows normalmente los mantiene adentro
c:\Program Files\program name
, Apple adentro/Applications/program.app
. Bajo Linux, hay una estructura más ... comunitaria. Los archivos binarios generalmente están en/usr/bin
, la configuración de todo el sistema está en/etc
, la configuración específica del usuario generalmente está en~/.program
. Las bibliotecas están dentro/usr/lib
, los archivos de soporte (por ejemplo, ilustraciones) a menudo están dentro/usr/share/program
, etc. Incluso hay un estándar que sugiere dónde deben ir las cosas.Los programas se instalan generalmente por los gestores de paquetes,
rpm
ydpkg
; son buscados y recuperados automáticamente (incluida la gestión de dependencias) poryum
yaptitude
/apt-get
, respectivamente. En un nivel más técnico, los paquetes son simples archivos comprimidos (creo que rpm y deb son ambos.tar.gz
). Estos archivos contienen un espejo de las piezas del sistema de archivos desde la raíz donde van los archivos (por ejemplo, un archivo que se supone que se instalará/usr/bin/program
estaráusr/bin/program
debajo de la carpeta correspondiente dentro del paquete.Para encontrar información sobre un paquete en particular, use el administrador de paquetes para su sistema, como han explicado otros aquí.
fuente
La página de manual de hier puede proporcionar algunas ideas
fuente