題:
如何手動打開.pkg文件?
Thilo
2011-06-09 19:23:27 UTC
view on stackexchange narkive permalink

某些應用程序位於.pkg文件中,並要求您提供管理員密碼,即使它們所做的只是將二進製文件複製到/ Applications中。

我希望將我的應用程序存儲在〜/ Applications中,並且我不喜歡授予非母職人員的管理權限。

是否可以手動打開.pkg文件並拉出應用程序?開發人員工具中有PackageMaker,但似乎沒有做到這一點(它確實產生了一些輸出,使我認為安裝程序中確實沒有腳本或其他組件,只有應用程序)。

嘗試[unpkg](http://www.timdoug.com/unpkg/)。
九 答案:
Mathew Hall
2011-06-09 20:55:21 UTC
view on stackexchange narkive permalink

如果右鍵單擊它,然後單擊顯示軟件包內容,您將在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 選項,您可以在生成它們時查看它們。這可能使您了解正在安裝的其他東西,如果您不信任該軟件包,至少可以得到更多的信息。

右鍵單擊菜單中沒有顯示“顯示包裝內容”。
@Thilo如果沒有獲得“顯示軟件包內容”的選項,則pkg文件將創建為平面文件。蘋果幾年前推出了平板式pkg
@username:那麼我怎麼打開那些?
[`pkgutil`](http://developer.apple.com/library/mac/#documentation/Darwin/Reference/ManPages/man1/pkgutil.1.html)會做到這一點。您可以使用`pkgutil --expand file.pkg path_to_expand`對其進行擴展,並將其轉換為目錄樣式包。
@username,“持平”甚至是什麼意思?
@MathewHall, pkgutil,unpkg,SuspiciousPackage和Pacifist是否都顯示相同的輸出?
令人困惑的是,通常“平面” pkg文件似乎包含“非平面” pkg文件。
注意:如果擁有https://stackoverflow.com/questions/41166805/how-to-extract-contents-from-payload-file-in-a-,請使用`--expand-full`提取“有效載荷”文件。蘋果macos更新包
Cajunluke
2011-06-09 21:28:22 UTC
view on stackexchange narkive permalink

除了Matthew Hall所說的之外,您還可以在Installer應用程序中點擊Cmd-I以查看安裝程序將安裝哪些文件以及安裝在何處。

+1。這樣,我可以快速驗證其中是否只有應用程序二進製文件,而沒有其他系統範圍的東西。
ghoppe
2011-06-09 19:34:45 UTC
view on stackexchange narkive permalink

如果您對安裝程序的信任程度不足以授予管理權限來安裝,那麼為什麼要信任/ Applications中的二進製文件?

Pacifist將允許您查看打包文件。這並不一定只是讓您“提取二進製文件”。

我也不相信二進製文件。我永遠不要授予它管理權限(無論如何它都不需要)。
只要您不從具有管理員權限的任何用戶運行該應用程序,您的信任關係就會得到維持。不要忘記,即使是用戶級別的應用程序也可以從管理員級別的流程發出請求,因此運行您實際上不信任的應用程序需要大量的工作。
@ghoppe,這是因為默認情況有時會針對用戶(而非應用程序創建者)進行優化。例如,我可以選擇只提取本質上的文件,而不是安裝默認提供的所有安裝垃圾。例如,當下載Mysql / Java / etc時
karmatic
2011-06-09 21:01:29 UTC
view on stackexchange narkive permalink

或者,您可以嘗試

  sudo安裝程序-pkg〜/ Downloads / packagename.pkg -target〜/ Applications /  

OR

 安裝程序-pkg〜/ Downloads / packagename.pkg -target〜/ Applications /  
不幸的是,這沒有奏效。它仍然堅持“在基本路徑/下安裝”,然後要求輸入管理員密碼。
可以將其安裝到使用諸如“ hdiutil create -size 200m -fs HFS + -volname Scratch scratch.dmg”之類的文件創建的磁盤映像,然後將文件複製到您喜歡的位置。不幸的是,您仍然需要sudo來運行安裝程序。
我收到錯誤“安裝程序:錯誤-無法在此計算機上安裝此版本的OS X 10.11。”
stargood
2011-08-13 18:09:13 UTC
view on stackexchange narkive permalink
  1. 成功打開軟件包後,查找前面提到的Archive.pax.gz文件。

  2. 創建一個新的空文件夾在桌面上隨意命名。我通常將它們命名為“ xxxx”或“ zzzz”等,以使以後的鍵入變得更容易。

  3. 選項-將Archive.pax.gz文件的副本拖到該新文件夾中

    如果文件位於只讀媒體中,則可以將其拖到“ xxxx”文件夾中,而無需使用Option鍵來創建副本。

    li>
  4. 現在打開Terminal.app並在命令行上導航到新的“ xxxx”目錄並列出目錄的內容以確認您的Archive.pax.gz文件在其中:

      cd〜/ Desktop / xxxxls -al  
  5. 現在有兩個簡單的命令可以輸入:

      gunzip -v Archive.pax.gz  

    Gzip會告訴您它已將“ Archive.pax.gz”替換為“ Archive.pax”。)現在再次列出目錄的內容以確認這一點。

      pax -r -f Archive.pax  

    (您必須將 -r -f ,因為 -rf 不起作用)

  6. 最後,用 l再次列出目錄的內容s -al 。除了Archive.pax文件之外,您現在還將看到一個目錄層次結構,該目錄層次結構可能包含一個或多個目錄。

    該目錄層次結構中的文件將向您說明OS X安裝程序將在系統上安裝文件的位置。就像您的“ xxxx”目錄是根目錄“ /”一樣。

  7. 然後,您可以根據需要手動將這些文件複製到目標位置。

  8. ol>
換句話說`cd〜/ Desktop; cp Package.pkg / Contents / Archive.pax.gz。; gunzip -v Archive.pax.gz; pax -r -f Archive.pax`。您無需以任何詳細程度描述所有內容。
Lri,我提供了這麼多的詳細信息,以便任何專業水平的用戶都可以遵循並取得成功。當然,您的隱秘版本將獲得相同的結果。但是,將來可能不熟悉命令行的其他用戶在閱讀本文時可能會毫無希望地迷路。
gregschlom
2017-12-20 10:14:27 UTC
view on stackexchange narkive permalink

pkgutil --expand 失敗,出現以下錯誤:

創建..時遇到錯誤。錯誤17:文件存在

但是我設法用 xar 提取了文件:

xar -xvf foo.pkg

這對我有用。但是很顯然,如果給pkgutil一個不存在的目錄作為目的地,這將使17錯誤消失。
它將其提取到哪裡?
Tony Williams
2017-12-20 13:14:05 UTC
view on stackexchange narkive permalink

檢查軟件包文件的最佳工具是可疑軟件包。它還允許您從文件包中復製文件。

它不僅會在應用程序中提供您所需的所有信息,還會安裝一個Quick Look插件,因此只需選擇軟件包文件並按空格鍵即可打開一個包含最基本信息的窗口。

Quinn Comendant
2013-11-16 02:37:35 UTC
view on stackexchange narkive permalink

取消存檔器可以做到這一點;它將與 pkgutil --expand 相同,但使用拖放操作。無論如何,它是Apple的Archive Utility.app的更好替代。

Blll
2016-06-13 00:23:32 UTC
view on stackexchange narkive permalink

UnArchiver達到了目的。

安裝UnArchiver,打開UnArchiver;打開時-雙擊該討厭的 MAMP_MAMP_3.5.pkg

按照步驟安裝MAMP。



該問答將自動從英語翻譯而來。原始內容可在stackexchange上找到,我們感謝它分發的cc by-sa 3.0許可。
Loading...