14 votes

Comment savoir quel fichier appartient à quel paquet dans Mac OS X ?

Existe-t-il un moyen de savoir quelle application / paquet possède ou crée un fichier spécifique ? Par exemple, sous Linux, les commandes suivantes indiquent le propriétaire du paquetage

apt-file /bin/progname

rpm -qf /bin/progname

yum whatprovides /bin/progname

Sous OS X, un fichier peut faire partie d'une application OS X native, ou être installé par Macports ou Homebrew. Il s'agit d'environnements complètement différents. Existe-t-il des commandes pour chaque environnement permettant de vérifier quelle application / paquet possède un fichier spécifique ?

23voto

bhavin Points 346

C'est un peu tard, mais peut-être cela pourra-t-il aider d'autres personnes.

Vous pouvez utiliser le pkgutil commandement.

Par exemple, si vous voulez savoir à quel paquet appartient la commande "less", lancez-la :

pkgutil --file-info /usr/bin/less

Ce qui donnera quelque chose comme :

volume: /
path: /usr/bin/less

pkgid: com.apple.pkg.BaseSystemBinaries
pkg-version: 10.7.0.1.1.1309742044
install-time: 1310407891
uid: 0
gid: 0
mode: 755

Pour lister tous les fichiers contenus dans un paquet, com.apple.pkg.BaseSystemBinaries dans notre exemple, exécuter :

pkgutil --files com.apple.pkg.BaseSystemBinaries

Je sais que cet outil est présent depuis OS X 10.6.

8voto

slhck Points 209720

Ce n'est pas vraiment possible puisqu'il n'y a pas de gestion standardisée des paquets.

À moins que vous n'ayez configuré MacPorts ou Homebrew différemment, vous trouverez toujours leurs exécutables à un emplacement que personne d'autre n'utilise. Étant donné que MacPorts et Homebrew ne s'exécutent pas sous un compte utilisateur distinct, les fichiers qu'ils créent appartiendront toujours à votre utilisateur ou à root .

Ce qui reste, c'est que vous ne pouvez qu'essayer de deviner en vous basant sur l'emplacement de l'exécutable. Voici quelques règles :

  • MacPorts utilise /opt/local/bin y /opt/local/sbin pour les exécutables, tout ce qui est préfixé sous le nom de /opt/local .

  • Homebrew utilise /usr/local/bin pour les exécutables, tout le reste sous /usr/local/ .

  • Les autres applications doivent créer leurs propres répertoires quelque part sous le nom de /usr par exemple /usr/local/git/bin pour le programme d'installation de Git OS X ou /usr/X11/bin pour X11.

  • Certains cadres du système font des liens symboliques vers /usr/bin par exemple rake Les points suivants /System/Library/Frameworks/Ruby.framework

  • Aucune application ne devrait jamais utiliser /bin o /sbin . Aucune application tierce (c'est-à-dire tout ce qui n'est pas un framework OS X) ne doit utiliser /usr/bin soit.

5voto

Pierz Points 1579

Pour les rassembler en un seul endroit pour les deux autres gestionnaires de paquets sur OSX :

Para MacPorts (comme mentionné par Neil dans les commentaires ci-dessus) :

port provides /opt/local/bin/progname

Para Brew ce n'est pas si simple mais on peut généralement trouver le paquet en utilisant :

ls -la /usr/local/bin/progname

Ce qui devrait montrer un lien logiciel contenant le nom du paquet, ou bien on peut utiliser d'autres suggestions à partir de un de ces questions .

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X