Gibt es eine Möglichkeit herauszufinden, welche Anwendung / welches Paket eine bestimmte Datei besitzt oder erstellt? Unter Linux zeigen diese Befehle beispielsweise den Paketbesitzer an
apt-file /bin/progname
rpm -qf /bin/progname
yum whatprovides /bin/progname
In OS X kann eine Datei Teil einer nativen OS X-Anwendung sein oder von Macports oder Homebrew installiert werden. Dies sind völlig unterschiedliche Umgebungen. Gibt es Befehle für jede Umgebung, um zu überprüfen, welche Anwendung / welches Paket eine bestimmte Datei besitzt?
pkgutil --file-info /Applications/TextEdit.app
, und Sie werden feststellen, dass es zu com.apple.pkg.Essentials gehört, aber Sie erfahren auch, welche Updater darauf angewendet wurden (in meinem Fall com.apple.pkg.update.os.10.10.2.14C109) .patch, com.apple.pkg.update.os.10.10.3.14D131.delta, com.apple.pkg.update.os.10.9.2.13C64.combo).Dies ist nicht wirklich möglich, da es kein standardisiertes Paketmanagement gibt.
Sofern Sie MacPorts oder Homebrew nicht anders konfiguriert haben, finden Sie ihre ausführbaren Dateien immer an einem Ort, den niemand anderes verwendet. Da MacPorts und Homebrew nicht unter einem separaten Benutzerkonto ausgeführt werden, gehören die von ihnen erstellten Dateien immer Ihrem Benutzer oder
root
.Was bleibt, ist, dass Sie nur versuchen können, basierend auf dem ausführbaren Speicherort zu raten. Hier sind einige Regeln:
MacPorts verwendet
/opt/local/bin
und/opt/local/sbin
für ausführbare Dateien alles unter/opt/local
.Homebrew verwendet
/usr/local/bin
für ausführbare Dateien alles andere unter/usr/local/
.Andere Anwendungen sollten irgendwo darunter ihre eigenen Verzeichnisse erstellen
/usr
, z. B./usr/local/git/bin
für das Git OS X-Installationsprogramm oder/usr/X11/bin
für X11.Einige System-Frameworks verknüpfen mit
/usr/bin
, z. B.rake
verweist auf/System/Library/Frameworks/Ruby.framework
Keine Anwendung sollte jemals
/bin
oder verwenden/sbin
. Es sollte auch keine Drittanbieteranwendung (dh nichts anderes als ein OS X-Framework) verwendet/usr/bin
werden.quelle
pkgutil
und es klingt ziemlich praktisch.port provides FILE
So sammeln Sie sie an einem Ort für die beiden anderen Paketmanager unter OSX:
Für MacPorts (wie von Neil in den obigen Kommentaren erwähnt):
Für Brew ist es nicht so einfach, aber man kann das Paket normalerweise finden mit:
Welches sollte einen Softlink anzeigen, der den Paketnamen enthält, oder man kann andere Vorschläge aus einer dieser Fragen verwenden .
quelle