Sous Windows, en particulier les versions plus anciennes, il était courant que les programmes stockent des fichiers de configuration et des données non constantes dans leur C:\Program Filesrépertoire. Ceci est dérivé de la façon dont les programmes étaient généralement installés et exécutés sous DOS mono-utilisateur, non en réseau, sans autorisation de fichier.
Du point de vue de la sécurité, c'est une mauvaise idée. Les endroits où vit le code exécutable doivent être séparés des données modifiables. De cette façon, il est plus facile d'appliquer les autorisations de fichier appropriées pour empêcher la modification des fichiers binaires installés par des utilisateurs non autorisés. De même, les répertoires de bibliothèque qui peuvent être mis à jour séparément des principaux exécutables doivent également se trouver dans un répertoire séparé.
Avec l'avènement des ennuis Vista et UAC, cette tradition commence enfin à sérieusement perdre de l'adhérence.
UNIX et Linux, étant un système multi-utilisateur depuis bien plus tôt, avaient tendance à séparer les répertoires exécutables des autres répertoires beaucoup plus tôt, car il fallait empêcher les utilisateurs autres que root de modifier les binaires installés. C'est également la raison /usrpour laquelle il /sbinexiste parfois des partitions distinctes - un administrateur particulièrement soucieux de la sécurité peut monter ces partitions en lecture seule et les remonter en lecture / écriture lorsqu'une installation / désinstallation doit avoir lieu.
Les packages sont généralement installés à partir d'un gestionnaire de packages. Il existe différents gestionnaires de paquets, tels que aptitude(Debian et distributions dérivées), yum(Redhat et distributions dérivées), pacman(oubliez de quelle distribution il s'agit ...), et d'autres.
Le gestionnaire de packages vous permet de parcourir les référentiels, de télécharger, d'installer, d'interroger et de supprimer des logiciels, tout comme une «app store» sophistiquée (et gratuite). Il assume la responsabilité de s'assurer que les dépendances sont prises en charge et de suivre ce qui est actuellement installé.
Habituellement, le gestionnaire de packages autorise également les mêmes opérations sur un package que vous avez téléchargé manuellement en dehors de tout référentiel. Des outils sont également disponibles si vous souhaitez créer le vôtre à partir d'un logiciel que vous avez créé ou compilé vous-même.
Étant donné que le package lui-même n'est PAS un fichier exécutable, vous n'avez pas besoin d'exécuter un exécutable non fiable dont vous ne savez pas vraiment ce qu'il fait. (Windows arrive enfin avec des mises à jour en distribuant des .msu'au lieu de .exe' - mais .msiça fait un moment ...)
rpm, vous pouvez utiliserrpm -q --whatprovidespour trouver le nom du package pour un fichier particulier, puisrpm -q -apour savoir quels fichiers un package installé.