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 Filesdirectorio. 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é /usre incluso a /sbinveces 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 .msihan existido por un tiempo ...)
rpm, puede usarrpm -q --whatprovidespara encontrar el nombre del paquete para un archivo en particular y luegorpm -q -aaveriguar qué archivos instaló un paquete.