Answers:
如果右键单击它,然后单击“ 显示包内容”,将在“内容”文件夹中获得一些文件。(注意:如果看不到“ 显示软件包内容”,则需要打开Terminal.app并运行pkgutil --expand mystubbornpackage.pkg path/to/expand
)
其中一个是BOM表文件(物料清单),它变成一张收据,可用于卸载应用程序。该文件包含软件包将安装的所有内容以及安装位置的清单。要读取此文件,请使用lsbom命令。
大多数软件包(我在这里使用Office 2008)也都有一个Archive.pax.gz文件,该文件包含Installer将按照BOM文件的指示移动到各个文件夹中的所有内容。尽管将其拖到/ Applications可能会使它没有需要运行的框架,但大多数应用程序似乎都在该存档中包含.app。因此,您必须弄清楚还需要哪些其他文件以及需要它们在哪里进行工作。
此外,所有软件包都可以记录消息,如果您单击Cmd-L(或从“ 窗口”菜单中选择“ 安装程序日志”选项,则可以在生成消息时查看它们。这可能使您了解在安装过程中还安装了哪些其他东西)。如果您不信任该软件包,至少可以得到更多信息。
pkgutil
会做到的。您可以使用展开它,pkgutil --expand file.pkg path_to_expand
并将其转换为目录样式包。
如果您对安装程序的信任程度不足以授予安装管理权限,那么为什么要信任/ Applications中的二进制文件?
Pacifist将让您查看软件包文件。这并不一定只是让您“提取二进制文件”。
或者,您可以尝试,
sudo installer -pkg ~/Downloads/packagename.pkg -target ~/Applications/
要么
installer -pkg ~/Downloads/packagename.pkg -target ~/Applications/
hdiutil create -size 200m -fs HFS+ -volname Scratch scratch.dmg
,然后将文件复制到您喜欢的位置。不幸的是,您仍然需要sudo来运行安装程序。
成功打开程序包后,请查找前面提到的Archive.pax.gz文件。
在桌面上创建一个新的空文件夹,将其命名为任意名称。我通常将它们命名为“ xxxx”或“ zzzz”等,以使以后的输入更加容易。
按住Option键并将Archive.pax.gz文件的副本拖到桌面上的新文件夹“ xxxx”中。
如果文件位于只读媒体内部,则可以将其拖到“ xxxx”文件夹中,而无需使用Option键来创建副本。
现在打开Terminal.app并在命令行上导航到新的“ xxxx”目录并列出目录内容,以确认其中存在Archive.pax.gz文件:
cd ~/Desktop/xxxx
ls -al
现在有两个简单的命令可以输入:
gunzip -v Archive.pax.gz
Gzip会告诉您它已将“ Archive.pax.gz”替换为“ Archive.pax”。)现在再次列出目录的内容以确认这一点。
pax -r -f Archive.pax
(您必须将-r
和分开-f
,-rf
否则将不起作用)
最后,使用再次列出目录的内容ls -al
。除了Archive.pax文件,您现在还将看到目录层次结构,其中可能包含一个或多个目录。
该目录层次结构中的文件将向您说明OS X安装程序在系统上的文件安装位置,就好像您的“ xxxx”目录是根目录“ /”一样。
然后,您可以根据需要手动将这些文件复制到它们的目的地。
cd ~/Desktop; cp Package.pkg/Contents/Archive.pax.gz .; gunzip -v Archive.pax.gz; pax -r -f Archive.pax
。你不需要在描述的一切是详细程度。
检查软件包文件的最佳工具是Suspicious Package。它还允许您从文件中复制文件。
它不仅会在应用程序中提供您所需的所有信息,还会安装一个Quick Look插件,因此只需选择软件包文件并单击空格键,即可打开包含最基本信息的窗口。