Как я могу открыть файл .pkg вручную?

Некоторые приложения входят в файлы .pkg и запрашивают у вас пароль администратора, даже если все, что они делают, копирует двоичный файл в /Applications.

Мне нравится иметь свои приложения в ~ /Applications, и я не люблю давать административные разрешения на все, что не принадлежит материнству.

Есть ли способ открыть файл .pkg вручную и вытащить приложение? В Инструментах разработчика есть PackageMaker, но это, похоже, не делает этого (он выдал некоторый результат, который заставляет меня думать, что на самом деле нет никаких сценариев или других частей в установщике, просто приложение).

59 голосов | спросил Thilo 9 J0000006Europe/Moscow 2011, 18:23:27

9 ответов


62

Если вы щелкните по нему правой кнопкой мыши и нажмите Показать содержимое пакета , вы получите несколько файлов в папке «Содержание». (Примечание: если вы не видите Показать содержимое пакета , вам нужно будет открыть Terminal.app и запустить pkgutil --expand mystubbornpackage.pkg path/to/expand)

Один - это спецификационный файл (спецификация материалов), который превращается в квитанцию, которую вы можете использовать для удаления приложения. Этот файл содержит манифест всего, что будет устанавливать пакет и где; для чтения этого файла используйте lsbom .

В большинстве пакетов (я использую Office 2008 здесь) также есть файл Archive.pax.gz, это содержит все, что установщик будет перемещать в различные папки, как указано в файле спецификации. В большинстве приложений, похоже, есть .app в этом архиве, хотя перетаскивание этого файла в /Applications может оставить его без фреймворков, которые ему нужно запустить; поэтому вам нужно будет выяснить, какие другие файлы ему нужны и где им нужны, чтобы заставить его работать.

Кроме того, все пакеты могут регистрировать сообщения, если вы нажмете Cmd-L (или выберите Журнал установщика в меню Окно вы можете просмотреть их по мере их создания. Это может дать вам представление о том, какие дополнительные вещи он устанавливает, по крайней мере, это дополнительная информация, если вы не доверяете этому пакету.

ответил Mathew Hall 9 J0000006Europe/Moscow 2011, 19:55:21
33

В дополнение к тому, что сказал Мэтью Холл, вы также можете нажать Cmd-I в приложении Installer, чтобы посмотреть, какие файлы установщик установит и где.

ответил CajunLuke 9 J0000006Europe/Moscow 2011, 20:28:21
7

Если вы не доверяете установщику достаточно предоставить административные разрешения для установки, то почему вы доверяете двоичному файлу в /Приложения?

Pacifist позволит вам просматривать файлы пакетов. Это не обязательно позволяет вам «вытащить двоичный файл».

ответил ghoppe 9 J0000006Europe/Moscow 2011, 18:34:44
4

В качестве альтернативы вы можете попробовать,

sudo installer -pkg ~/Downloads/packagename.pkg -target ~/Applications/

ИЛИ

installer -pkg ~/Downloads/packagename.pkg -target ~/Applications/
ответил karmatic 9 J0000006Europe/Moscow 2011, 20:01:29
2
  1. После успешного открытия пакета найдите файл Archive.pax.gz, о котором было сказано ранее.

  2. Создайте новую пустую папку на рабочем столе, назовите ее, как хотите. Я обычно называю их «xxxx» или «zzzz» и т. Д., Чтобы упростить ввод текста.

  3. Опция перетащите копию файла Archive.pax.gz в эту новую папку «xxxx» на рабочем столе.

    Если файл находится внутри носителя только для чтения, вы можете просто перетащить его в папку «xxxx» без клавиши «Option», чтобы создать копию.

  4. Теперь откройте Terminal.app и в командной строке перейдите к вашему новому каталогу «xxxx» и перечислите содержимое каталога, чтобы подтвердить наличие файла Archive.pax.gz:

    cd ~/Desktop/xxxx
    ls -al
    
  5. Теперь есть две простые команды:

    gunzip -v Archive.pax.gz
    

    Gzip скажет вам, что он заменил «Archive.pax.gz» на «Archive.pax»). Теперь перечислите содержимое каталога, чтобы подтвердить это.

    pax -r -f Archive.pax
    

    (Вы должны отделить -r и -f, так как -rf не будет работать)

  6. Наконец, снова перечислите содержимое каталога с помощью ls -al. В дополнение к вашему файлу Archive.pax вы увидите иерархию каталогов, которая, вероятно, содержит одну или несколько каталогов.

    Файлы в этой иерархии каталогов будут иллюстрировать вам, где установщик OS X будет устанавливать файлы в вашей системе, как если бы ваш каталог «xxxx» был корневым каталогом «/".

  7. Затем вы можете вручную скопировать эти файлы в свои адресаты, если хотите.

ответил stargood 13 PM00000050000001331 2011, 17:09:13
1

pkgutil --expand терпел неудачу для меня со следующей ошибкой:

Error encountered while creating .. Error 17: File exists

Но мне удалось извлечь файлы с помощью xar:

xar -xvf foo.pkg

ответил gregschlom 20 WedEurope/Moscow2017-12-20T07:14:26+03:00Europe/Moscow12bEurope/MoscowWed, 20 Dec 2017 07:14:26 +0300 2017, 07:14:26
0

Unarchiver может это сделать; он будет делать то же самое, что и pkgutil --expand, но используя drag-and-drop. Это лучше заменить архив Apple Utility.app в любом случае.

ответил Quinn Comendant 16 62013vEurope/Moscow11bEurope/MoscowSat, 16 Nov 2013 00:37:34 +0400 2013, 00:37:34
0

UnArchiver сделал трюк.

Установите UnArchiver, откройте UnArchiver; в то время как он открыт - дважды щелкните по этому надоедливому MAMP_MAMP_3.5.pkg

Следуйте инструкциям по установке MAMP.

ответил Blll 12 J0000006Europe/Moscow 2016, 22:23:31
0

Лучшим инструментом для проверки файлов пакета является Подозрительный пакет . Он также позволяет копировать файлы из пакета.

Он не только предоставит всю необходимую информацию в приложении, но также установит подключаемый модуль Quick Look, поэтому просто выберите файл пакета и нажмите пробел, откроется окно с наиболее важной информацией.

ответил Tony Williams 20 WedEurope/Moscow2017-12-20T10:14:05+03:00Europe/Moscow12bEurope/MoscowWed, 20 Dec 2017 10:14:05 +0300 2017, 10:14:05

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132