Pourquoi y a-t-il tant d'endroits où mettre un binaire sous Linux? Il y a au moins ces cinq:
/bin/
/sbin/
/usr/bin/
/usr/local/bin/
/usr/local/sbin/
Et sur mon bureau, je n’ai pas d’autorisation d’écriture pour certains d’entre eux.
Quel type de binaire va dans lequel de ces bin
s?
filesystems
binary
Lazer
la source
la source
/usr/sbin/
.~/bin/
pour des affaires personnelles./bin
été fusionnés/usr/bin
et ont/sbin
été fusionnés/usr/sbin
- voir L'affaire de la fusion / usr ./usr/local/bin
?Réponses:
/bin
(et/sbin
) étaient destinés aux programmes devant être placés sur une petite/
partition avant que les partitions plus grandes/usr
, etc., ne soient montées. Ces jours-ci, il sert principalement d’emplacement standard pour des programmes clés tels/bin/sh
que, bien que l’intention initiale puisse toujours être pertinente pour, par exemple, des installations sur de petits périphériques intégrés./sbin
, distinct de/bin
, est destiné aux programmes de gestion de système (qui ne sont normalement pas utilisés par les utilisateurs ordinaires) nécessaires avant le/usr
montage./usr/bin
est destiné aux programmes utilisateur normaux gérés par la distribution.Il existe une
/usr/sbin
relation identique à ce/usr/bin
qui/sbin
doit être/bin
./usr/local/bin
est destiné aux programmes utilisateur normaux non gérés par le gestionnaire de packages de distribution, par exemple les packages compilés localement. Vous ne devez pas les installer dans/usr/bin
car les futures mises à niveau de la distribution pourraient les modifier ou les supprimer sans préavis./usr/local/sbin
, Comme vous pouvez le deviner à ce stade, est de/usr/local/bin
comme/usr/sbin
à/usr/bin
.En outre, il existe également des
/opt
packages monolithiques de non-distribution, bien qu'avant leur intégration correcte, diverses distributions inséraient Gnome et KDE. En règle générale, vous devriez le réserver pour les gros paquets tiers mal conçus, tels que Oracle.la source
~/bin
et ajouter ce répertoire à votre PATH en tant qu'utilisateur ... Merci pour la note, j'ai supprimé mon commentaire sérieusement obsolète.PATH
variable système , etecho $PATH
pour moi montre/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games
, ce qui signifie que les exécutables/usr/local/bin
sont prioritaires sur ceux/usr/bin
qui le sont par rapport à ceux de/bin
.Je vous recommande de consulter la page de manuel relative à la hiérarchie du système de fichiers:
Qui est également disponible en ligne, par exemple: http://linux.die.net/man/7/hier
la source
L’ entrée standard de la hiérarchie des systèmes de fichiers dans Wikipedia m’a aidé à répondre à la même question que lorsque je l’avais eue, plus un tableau très explicatif.
Extrait de cette page 1 :
1 Récupéré le 19 juin 2019; lien permanent .
la source
Les
sbin
répertoires contiennent des programmes qui sont généralement uniquement destinés à l’administration système. Les programmes destinés aux utilisateurs réguliers ne devraient jamais y aller.Quelques programmes sont nécessaires au démarrage et aboutissent à
/bin/
ou/sbin/
. Ceux-ci doivent être disponibles avant que les systèmes de fichiers ne soient montés. Des choses commemount
, etfsck
qui sont nécessaires pour vérifier et monter des systèmes de fichiers, doivent être là.La plupart des programmes empaquetés aboutissent dans
/usr/bin/
et/usr/sbin/
. Ceux-ci peuvent être sur un système de fichiers autre que le système de fichiers racine. Dans certains cas, ils peuvent être sur un lecteur réseau.Les programmes et scripts locaux appartiennent à
/usr/local/bin/
et/usr/local/sbin/
. Cela les identifie comme étant clairement non standard et, éventuellement, uniquement disponible sur site.Pour plus d'explications, essayez d'exécuter la commande
man hier
qui devrait fournir une description de la hiérarchie de système de fichiers recommandée pour votre distribution. Vous pouvez également vouloir en savoir plus sur la hiérarchie des systèmes de fichiers sur Wikipediala source
Dans les années 1970,
UNIX
tous les exécutables officiels se trouvaient dans les répertoires de départ des utilisateurs (par exemple )/bin
et/usr/bin
se trouvaient sous/usr/dmr
celui-ci, ce qui permettait à tout utilisateur de stocker ses propres fichiers binaires susceptibles d’intéresser d’autres.Le résultat de cette ouverture a
/usr/bin
été un parc de logiciels non documentés. C'est pourquoi nous avonsStephen Bourne
écrit uncron script
outil qui vérifiait la présence de nouveaux fichiers binaires toutes les nuits et supprimait tous les fichiers binaires dépourvus de documentation ou mis à jour sans les mettre à jour.À la fin des années 1970, a
/usr/bin
été intégré à la distribution de base du système d’exploitation et les gens ont commencé à utiliser/usr/local/bin
pour les besoins de la précédente ouverture/usr/bin
.Après un certain temps, les administrateurs système
/usr/local/bin
stockaient lesnon-local
logiciels importés du réseau (par exemple USENET) et, les entreprises UNIX ne voulant pas répéter la même erreur/usr/bin
, une conférence sur la hiérarchie des systèmes de fichiers a eu lieu vers 1987, à laquelle toutes les entreprises UNIX ont convenu. abandonner/usr/local/bin
et utiliser à la/opt/<vendor>/bin
place.Malheureusement, les distributions Linux n'ont pas suivi cette décision ....
la source
/opt
pas sur UNIX ni sur UNIX, mais sur Linux. C'est comme répondre "Pourquoi les voitures ont-elles 4 roues?" avec "Les vélos ont 2! Malheureusement, les voitures ne." ce qui n'aide pas le PO à comprendre pourquoi les voitures sont 4.