Is there any way to list all .pkg packages that I have installed? [duplicate]

Just wondering if there is any Terminal command to do this, because I think my OSX was already messed up with some incompatible .pkg installations. Thanks.


The package management system used by OS X is rudimentary when compared to Linux counterparts like RPM or DEB. Fortunately, basic operations like listing packages and its contents are possible:

Everytime a .pkg file is installed a BOM file is stored in /private/var/db/receipts/. You can either do ls in that directory or use pkgutil to list installed packages:

$ pkgutil --packages
(...)
com.apple.pkg.HP_Scan
com.apple.pkg.HP_Scan3
com.apple.pkg.HP_SmartX
com.apple.pkg.InstallMacOSX
com.apple.pkg.JavaEssentials
com.apple.pkg.JavaForMacOSX107
com.apple.pkg.JavaMDNS
com.apple.pkg.JavaSecurity
com.apple.pkg.JavaTools
com.apple.pkg.MBP91
com.apple.pkg.MediaFiles
com.apple.pkg.MobileDevice
com.apple.pkg.MobileDeviceDevelopment
com.apple.pkg.OxfordDictionaries
(...)

To query the .pkg file's contents use pkgutil:

$ pkgutil --files com.apple.pkg.Pages4 | less
Applications
Applications/Pages.app
Applications/Pages.app/Contents
Applications/Pages.app/Contents/CodeResources
Applications/Pages.app/Contents/Frameworks
Applications/Pages.app/Contents/Frameworks/Inventor.framework
Applications/Pages.app/Contents/Frameworks/Inventor.framework/Inventor

or lsbom:

$ lsbom /private/var/db/receipts/com.apple.pkg.Pages4.bom | less
.   40775   0/0
./Applications  40775   0/80
./Applications/Pages.app    40755   0/0
./Applications/Pages.app/Contents   40755   0/0
./Applications/Pages.app/Contents/CodeResources 120755  0/0 28  2941952436  _CodeSignature/CodeResources
./Applications/Pages.app/Contents/Frameworks    40755   0/0
./Applications/Pages.app/Contents/Frameworks/Inventor.framework 40755   0/0
(...)

See man pkgutil and man lsbom for other options.