Apakah ada cara untuk mengetahui Aplikasi / paket mana yang memiliki atau membuat file tertentu? Sebagai contoh, di Linux perintah ini akan menampilkan pemilik paket
apt-file /bin/progname
rpm -qf /bin/progname
yum whatprovides /bin/progname
Di OS X, file bisa menjadi bagian dari aplikasi OS X asli, atau diinstal oleh Macports atau Homebrew. Ini adalah lingkungan yang sangat berbeda. Apakah ada perintah untuk setiap lingkungan untuk memeriksa aplikasi / paket mana yang memiliki file tertentu?
pkgutil --file-info /Applications/TextEdit.app
, dan Anda akan mendapatkan bahwa itu milik com.apple.pkg.Essentials, tetapi juga akan memberi tahu Anda siapa pembaru yang telah menerapkannya (dalam kasus saya, 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).Ini tidak benar-benar mungkin karena tidak ada manajemen paket standar.
Kecuali Anda mengonfigurasi MacPorts atau Homebrew secara berbeda, Anda akan selalu menemukan executable mereka di lokasi yang tidak digunakan orang lain. Karena MacPorts dan Homebrew tidak berjalan di bawah akun pengguna yang terpisah, file yang mereka buat akan selalu dimiliki oleh pengguna atau
root
.Yang tersisa adalah Anda hanya bisa mencoba menebak berdasarkan lokasi yang dapat dieksekusi. Berikut ini beberapa aturan:
MacPorts menggunakan
/opt/local/bin
dan/opt/local/sbin
untuk executable, semuanya diawali di bawah/opt/local
.Homebrew menggunakan
/usr/local/bin
untuk executable, semua lainnya di bawah/usr/local/
.Aplikasi lain harus membuat direktori mereka sendiri di suatu tempat di bawah
/usr
, misalnya/usr/local/git/bin
untuk installer Git OS X atau/usr/X11/bin
untuk X11.Beberapa kerangka kerja sistem berhubungan dengan
/usr/bin
, misalnyarake
menunjuk/System/Library/Frameworks/Ruby.framework
Tidak boleh ada aplikasi yang menggunakan
/bin
atau/sbin
. Tidak ada aplikasi pihak ketiga (yaitu apa pun yang bukan kerangka OS X) yang boleh digunakan/usr/bin
.sumber
pkgutil
, dan kedengarannya cukup praktis.port provides FILE
Untuk mengumpulkannya di satu tempat untuk dua manajer paket lain di OSX:
Untuk MacPorts (sebagaimana disebutkan oleh Neil dalam komentar di atas):
Untuk Brew itu tidak begitu sederhana tetapi orang biasanya dapat menemukan paket menggunakan:
Yang harus menunjukkan softlink yang berisi nama paket, atau orang dapat menggunakan saran lain dari salah satu pertanyaan ini .
sumber