¿Hay alguna manera de averiguar qué aplicación / paquete posee o crea un archivo específico? Por ejemplo, en Linux estos comandos mostrarán al propietario del paquete
apt-file /bin/progname
rpm -qf /bin/progname
yum whatprovides /bin/progname
En OS X, un archivo podría ser parte de una aplicación nativa de OS X, o instalado por Macports o Homebrew. Estos son ambientes completamente diferentes. ¿Hay comandos para cada entorno para verificar qué aplicación / paquete posee un archivo específico?
pkgutil --file-info /Applications/TextEdit.app
y verás que pertenece a com.apple.pkg.Essentials, pero también te dirá qué actualizaciones se le han aplicado (en mi caso, 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).Esto no es realmente posible ya que no hay una gestión de paquetes estandarizada.
A menos que haya configurado MacPorts o Homebrew de manera diferente, siempre encontrará sus ejecutables en una ubicación que nadie más usa. Dado que MacPorts y Homebrew no se ejecutan en una cuenta de usuario separada, los archivos que crean siempre serán propiedad de su usuario o
root
.Lo que queda es que solo puedes intentar adivinar en función de la ubicación ejecutable. Aquí hay algunas reglas:
MacPorts usa
/opt/local/bin
y/opt/local/sbin
para ejecutables, todo con el prefijo/opt/local
.Homebrew utiliza
/usr/local/bin
para ejecutables, todo lo demás debajo/usr/local/
.Otras aplicaciones deberían crear sus propios directorios en algún lugar
/usr
, por ejemplo,/usr/local/git/bin
para el instalador de Git OS X o/usr/X11/bin
para X11.Algunos enlaces del marco de sistema a
/usr/bin
, por ejemplo,rake
apunta a/System/Library/Frameworks/Ruby.framework
Ninguna aplicación debería usar
/bin
o/sbin
. Ninguna aplicación de terceros (es decir, algo que no sea un marco OS X) debería usar/usr/bin
tampoco.fuente
pkgutil
, y suena bastante útil.port provides FILE
Para recopilarlos en un lugar para los otros dos administradores de paquetes en OSX:
Para MacPorts (como lo menciona Neil en los comentarios anteriores):
Para Brew no es tan simple, pero generalmente se puede encontrar el paquete usando:
Que debería mostrar un enlace suave que contiene el nombre del paquete, o de lo contrario uno puede usar otras sugerencias de una de estas preguntas .
fuente