Duplicata possible:
où est installé un programme Linux typique
Je suis nouveau sur Linux et je veux en savoir un peu plus sur les packages.
Sous Windows, je télécharge un .exe
fichier et l'installe. Lorsque j'installe, je définis le chemin où je veux que cette application soit stockée. Dans ce dossier, j'ai tous les fichiers requis pour l'application.
Cependant, lorsque j'installe un package sous Linux à l'aide de yum
ou apt-get
, je ne sais pas où le package est installé et où les fichiers requis pour cette application sont stockés. J'ai vu que la plupart des configurations se trouvent dans le /etc
répertoire. Mais pourquoi Linux stocke-t-il les fichiers requis pour une application dans différents répertoires?
Quelqu'un peut-il me dire comment les packages sont installés, où et comment sont-ils stockés? Et si ma compréhension de la gestion des packages est erronée, veuillez me corriger.
rpm
, vous pouvez utiliserrpm -q --whatprovides
pour trouver le nom du package pour un fichier particulier, puisrpm -q -a
pour savoir quels fichiers un package installé.apt-get
, si le package est installé, utilisezdpkg -L PKGNAME
, s'il n'est pas utiliséapt-file list
.Réponses:
De nombreux programmes (les binaires / scripts) se retrouvent dans
/bin
ou/usr/bin
avec d'autres parties dans divers répertoires de configuration (souvent dans / sousetc
) comme vous l'avez déjà noté.Pour toute commande spécifique, vous pouvez vérifier où est
et il vous donnera quelques informations sur l'emplacement de cette commande. Vous pouvez également essayer ce qui
De plus, ce graphique et cette explication / exemples pourraient être utiles.
la source
/etc/
, mais avoir un emplacement central pour les fichiers de configuration facilite la sauvegarde. (Imaginez la sauvegarde de fichiers de configuration à l'échelle du système dans Windows, où ils sont dispersés tout au long du système de fichiers et du registre ...)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 Files
ré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
/usr
pour laquelle il/sbin
existe 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 ...)la source
Vous pouvez obtenir une liste des fichiers qu'un
yum
package donné installe en faisant:Ensuite, vous pouvez l'exécuter comme suit:
(Évidemment, remplacez "yum-utils" dans ce second par le nom de ce paquet dont vous aimeriez voir la liste des fichiers.)
Pour
apt-get
, vous pouvez utiliser:la source
Généralement sous
/usr/bin
, bien que cela dépende de l'application ou de la bibliothèque particulière que vous installez.la source
Sous Linux / Unix, la plupart des programmes ne se retrouvent généralement pas dans un seul répertoire, mais différentes parties de celui-ci (exécutables, fichiers de configuration, fichiers journaux, documentation, autres ressources) sont dispersées dans le système de fichiers - généralement via la liaison symbolique. L' article de Wikipedia décrit plus en détail la structure de répertoires standard sous une hiérarchie de système de fichiers normale, montrant les différents répertoires et ce que vous pouvez vous attendre à trouver dans chacun d'eux.
la source
Le
/opt
répertoire est réservé aux installations de type Windows où chaque package a sa propre arborescence de répertoires. Personne ne l'utilise. Je ne sais pas pourquoi; il se peut que l'ajout/opt/PACKAGE/bin
à$PATH
chaque fois que vous installez un package soit trop ennuyeux.la source
/opt
semble être principalement utilisé par des progiciels commerciaux / non libres, comme MATLAB./opt
mais ensuite LibreOffice 3.5 que j'ai installé directement à partir d' ici .Le logiciel sous Linux est un peu différent en paradigme de Windows ou Mac. Dans ceux-ci, un exécutable et tous ses fichiers de support sont installés dans un seul dossier: Windows les conserve normalement
c:\Program Files\program name
, Apple dedans/Applications/program.app
. Sous Linux, il y a une structure plus ... commune. Les fichiers binaires sont généralement dans/usr/bin
, la configuration à l'échelle du système est dans/etc
, la configuration spécifique à l'utilisateur est généralement à~/.program
. Les bibliothèques sont dedans/usr/lib
, les fichiers de support (par exemple les illustrations) sont souvent dedans/usr/share/program
, etc. Il y a même une norme suggérant où aller.Les programmes sont généralement installés par les gestionnaires de packages,
rpm
etdpkg
; ils sont automatiquement recherchés et récupérés (y compris la gestion des dépendances) paryum
etaptitude
/apt-get
, respectivement. À un niveau plus technique, les packages sont de simples fichiers compressés (je pense que rpm et deb sont les deux.tar.gz
). Ces archives contiennent un miroir des morceaux du système de fichiers à partir de la racine où les fichiers vont (par exemple, un fichier supposé être installé se/usr/bin/program
trouverausr/bin/program
dans le dossier approprié dans le package.Pour trouver des informations sur un package particulier, utilisez le gestionnaire de packages de votre système, comme d'autres l'ont expliqué ici.
la source
La page de manuel hier peut fournir des informations
la source