某些應用程序位於.pkg文件中,並要求您提供管理員密碼,即使它們所做的只是將二進製文件複製到/ Applications中。
我希望將我的應用程序存儲在〜/ Applications中,並且我不喜歡授予非母職人員的管理權限。
是否可以手動打開.pkg文件並拉出應用程序?開發人員工具中有PackageMaker,但似乎沒有做到這一點(它確實產生了一些輸出,使我認為安裝程序中確實沒有腳本或其他組件,只有應用程序)。
某些應用程序位於.pkg文件中,並要求您提供管理員密碼,即使它們所做的只是將二進製文件複製到/ Applications中。
我希望將我的應用程序存儲在〜/ Applications中,並且我不喜歡授予非母職人員的管理權限。
是否可以手動打開.pkg文件並拉出應用程序?開發人員工具中有PackageMaker,但似乎沒有做到這一點(它確實產生了一些輸出,使我認為安裝程序中確實沒有腳本或其他組件,只有應用程序)。
如果右鍵單擊它,然後單擊顯示軟件包內容,您將在Contents文件夾中找到一些文件。 (注意:如果沒有看到顯示軟件包內容,則需要打開Terminal.app並運行 pkgutil --expand mystubbornpackage.pkg path / to / expand
)
一個是BOM表文件(物料清單),該文件會轉換為收據,可用於卸載應用程序。該文件包含軟件包將安裝的所有內容以及安裝位置的清單。要讀取此文件,請使用 lsbom 命令。
大多數軟件包(我在這裡使用Office 2008)也都具有Archive.pax.gz文件,其中包含安裝程序將按照BOM文件中的說明移動到各個文件夾中的所有內容。大多數應用程序似乎都在該存檔中包含.app,儘管將其拖到/ Applications可能會使它沒有需要運行的框架;因此,您必須弄清楚還需要哪些其他文件以及在哪裡需要它們才能使它工作。
此外,如果您按 Cmd-L ,則所有軟件包都可以記錄消息。 strong>(或從 Window 菜單中選擇 Installer Log 選項,您可以在生成它們時查看它們。這可能使您了解正在安裝的其他東西,如果您不信任該軟件包,至少可以得到更多的信息。
除了Matthew Hall所說的之外,您還可以在Installer應用程序中點擊Cmd-I以查看安裝程序將安裝哪些文件以及安裝在何處。
如果您對安裝程序的信任程度不足以授予管理權限來安裝,那麼為什麼要信任/ Applications中的二進製文件?
Pacifist將允許您查看打包文件。這並不一定只是讓您“提取二進製文件”。
或者,您可以嘗試
sudo安裝程序-pkg〜/ Downloads / packagename.pkg -target〜/ Applications /
OR
安裝程序-pkg〜/ Downloads / packagename.pkg -target〜/ Applications /
成功打開軟件包後,查找前面提到的Archive.pax.gz文件。
創建一個新的空文件夾在桌面上隨意命名。我通常將它們命名為“ xxxx”或“ zzzz”等,以使以後的鍵入變得更容易。
選項-將Archive.pax.gz文件的副本拖到該新文件夾中
如果文件位於只讀媒體中,則可以將其拖到“ xxxx”文件夾中,而無需使用Option鍵來創建副本。
li>現在打開Terminal.app並在命令行上導航到新的“ xxxx”目錄並列出目錄的內容以確認您的Archive.pax.gz文件在其中:
cd〜/ Desktop / xxxxls -al
現在有兩個簡單的命令可以輸入:
gunzip -v Archive.pax.gz
Gzip會告訴您它已將“ Archive.pax.gz”替換為“ Archive.pax”。)現在再次列出目錄的內容以確認這一點。
pax -r -f Archive.pax
(您必須將 -r
和 -f
,因為 -rf
不起作用)
最後,用 l再次列出目錄的內容s -al
。除了Archive.pax文件之外,您現在還將看到一個目錄層次結構,該目錄層次結構可能包含一個或多個目錄。
該目錄層次結構中的文件將向您說明OS X安裝程序將在系統上安裝文件的位置。就像您的“ xxxx”目錄是根目錄“ /”一樣。
然後,您可以根據需要手動將這些文件複製到目標位置。
pkgutil --expand
失敗,出現以下錯誤:
創建..時遇到錯誤。錯誤17:文件存在
但是我設法用 xar
提取了文件:
xar -xvf foo.pkg
檢查軟件包文件的最佳工具是可疑軟件包。它還允許您從文件包中復製文件。
它不僅會在應用程序中提供您所需的所有信息,還會安裝一個Quick Look插件,因此只需選擇軟件包文件並按空格鍵即可打開一個包含最基本信息的窗口。
取消存檔器可以做到這一點;它將與 pkgutil --expand
相同,但使用拖放操作。無論如何,它是Apple的Archive Utility.app的更好替代。