Existe uma maneira de descobrir qual aplicativo / pacote possui ou cria um arquivo específico? Por exemplo, no Linux, esses comandos mostram o proprietário do pacote
apt-file /bin/progname
rpm -qf /bin/progname
yum whatprovides /bin/progname
No OS X, um arquivo pode fazer parte de um aplicativo OS X nativo ou instalado por Macports ou Homebrew. Estes são ambientes completamente diferentes. Existem comandos para cada ambiente para verificar qual aplicativo / pacote possui um arquivo específico?
pkgutil --file-info /Applications/TextEdit.app
e você verá que ele pertence a com.apple.pkg.Essentials, mas também informará quais atualizadores foram aplicados a ele (no meu 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).Isso não é realmente possível, pois não há gerenciamento de pacotes padronizado.
A menos que você tenha configurado o MacPorts ou o Homebrew de maneira diferente, sempre encontrará os executáveis em um local que ninguém mais usa. Como o MacPorts e o Homebrew não são executados em uma conta de usuário separada, os arquivos que eles criam sempre pertencem ao seu usuário ou
root
.O que resta é que você só pode tentar adivinhar com base no local do executável. Aqui estão algumas regras:
MacPorts usa
/opt/local/bin
e/opt/local/sbin
para executáveis, tudo prefixado em/opt/local
.O Homebrew usa
/usr/local/bin
para executáveis, tudo o resto/usr/local/
.Outros aplicativos devem criar seus próprios diretórios em algum lugar abaixo
/usr
, por exemplo,/usr/local/git/bin
para o instalador do Git OS X ou/usr/X11/bin
para o X11.Algumas estruturas de sistema fazem um link simbólico para
/usr/bin
, por exemplo,rake
apontam para/System/Library/Frameworks/Ruby.framework
Nenhum aplicativo deve usar
/bin
ou/sbin
. Nenhum aplicativo de terceiros (ou seja, qualquer coisa que não seja uma estrutura do OS X) também deve usar/usr/bin
.fonte
pkgutil
, e isso parece bastante útil.port provides FILE
Para coletá-los em um local para os outros dois gerenciadores de pacotes no OSX:
Para MacPorts (como mencionado por Neil nos comentários acima):
Para o Brew , não é tão simples, mas geralmente é possível encontrar o pacote usando:
O qual deve mostrar um softlink que contém o nome do pacote; caso contrário, pode-se usar outras sugestões de uma dessas perguntas .
fonte