Как удалить файл пакета Apple pkg?

82127
dlamblin

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

В частности, я установил пакет PowerPC MySQL 5.4.1 на Intel MacBook и хотел бы полностью изменить это, восстановив установку 5.1 x86, которую я вижу, все еще там, но сейчас она не работает должным образом.

46

6 ответов на вопрос

77
brablc

https://wincent.com/wiki/Uninstall_packages_(.pkg_files)_on_Mac_OS_X описывает, как удалить .pkg, используя native pkgutil. Я успешно следил за этим, чтобы удалить Midnight Commander.

Измененный отрывок

$ pkgutil --pkgs # list all installed packages $ pkgutil --files the-package-name.pkg # list installed files 

После визуальной проверки списка файлов вы можете сделать что-то вроде:

$ pkgutil --pkg-info the-package-name.pkg # check the location $ cd / # assuming the package is rooted at /... $ pkgutil --only-files --files the-package-name.pkg | tr '\n' '\0' | xargs -n 1 -0 sudo rm -f $ pkgutil --only-dirs --files the-package-name.pkg | tail -r | tr '\n' '\0' | xargs -n 1 -0 sudo rmdir 

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

Для небольших пакетов, вероятно, безопаснее просто вручную удалить файлы после визуальной проверки списка файлов пакета.

Очевидно, когда-то была --unlinkдоступна опция pkgutil, но на Lion она не упоминалась на странице руководства. Возможно, он был удален, потому что считался слишком опасным.

После удаления файлов вы можете удалить квитанцию ​​с помощью:

$ sudo pkgutil --forget the-package-name.pkg 
Я бы рекомендовал использовать `rmdir` вместо` rm -r`; можно также использовать `tac` или` tail -r`, чтобы перевернуть список имен каталогов, чтобы они были удалены в порядке _correct_ Sam Mason 9 лет назад 1
Не запускайте часть sudo rm -ir. Список включает в себя родительские каталоги! Так что если pkg установил что-то в / usr / ... вы удалите ВСЕ / usr / FiloSottile 9 лет назад 14
Я изменил команду для удаления каталогов, чтобы использовать `rmdir` (которая не удаляет не-пустые каталоги) и использует` tail -r`, чтобы перечислять их в лучшем порядке. brablc 9 лет назад 2
по иронии судьбы, при использовании pgkutil я обнаружил, что uninstaller.pl спрятан, и я могу его использовать. Отлично! cmroanirgo 9 лет назад 1
Одна вещь, которую pkgs не отслеживает, это символические ссылки, созданные pkgs. Вполне возможно, что очистка пакета из приведенных выше инструкций (или любого из методов здесь) оставит неработающие символические ссылки. James McMahon 7 лет назад 0
18
Chealion

Встроенная в систему опция удаления файлов с помощью деинсталлятора отсутствует, поэтому вы можете сделать деинсталлятор самостоятельно или удалить файлы вручную.

Лучший способ определить, какие файлы были установлены, - это получить оригинал, .pkgесли это возможно. Если это невозможно, вы также можете использовать квитанции вместо /Library/Receipts. Ваша самая большая проблема - это когда вы имеете дело с файлом, .mpkgкоторый содержит несколько .pkgфайлов, так как вам нужно будет найти все отдельные .pkgфайлы в этой папке (к счастью, это не так сложно при сортировке по дате).

Когда у вас есть .pkgфайл (квитанция или файл полной установки), вы можете использовать утилиту для создания деинсталлятора или найти файлы, чтобы вы могли удалить их вручную:

Uninstaller

Absolute Software InstallEase - бесплатная программа, которая может создавать деинсталляторы из существующих файлов .pkg. Создайте .pkgфайл для удаления (примечание: для создания .pkgфайла вам понадобятся инструменты разработчика Apple )

Вручную

Используя такую ​​программу, как Pacifist или плагин QuickLook, такой как Suspicious Package, вы можете посмотреть, какие файлы установлены и в каком месте. Используя этот список, вы можете вручную перейти к этим папкам и удалить файлы. Я лично использовал этот метод бесчисленное количество раз, прежде чем обнаружил InstallEase, но он все еще часто быстрее, если установка не распространяется во многих местах.

Спасибо, в то время как обычные пакеты mysql 5.1 оставили квитанцию, пакеты beta 5.4 mysql этого не сделали. Это немного странно. dlamblin 14 лет назад 0
Ничего себе, если бы я знал это, я бы никогда не установил `.pkg` для начала. Ю нет программ и возможностей OS X? NobleUplift 9 лет назад 4
9
user1259710

you can also uninstall .pkg packages with UninstallPKG ( http://www.corecode.at/uninstallpkg/ )

[full disclosure: yes i am the author]

Как автор, вы можете исправить ссылку на скачивание вашего программного обеспечения - `http: // www.corecode.at / downloads / uninstallpkg_1.0.6.zip` в настоящее время 404s ... fgp 9 лет назад 0
Хорошие вещи. Спасибо за вашу работу. Viacheslav Kovalev 7 лет назад 0
Стоит отметить, что это не бесплатно, но включает в себя бесплатную пробную версию Ron E 6 лет назад 0
4
hewigOvens

В прошлом месяце я сделал то же колесо, оно называется Package Uninstaller, с открытым исходным кодом и размещено на github: https://github.com/hewigovens/PackageUninstaller ,

Вы можете скачать и попробовать его здесь [здесь]. ( http://sourceforge.net/projects/packageuninstaller/files/latest/download )

Стоит отметить, что он будет работать только на 10,7 или выше. Xavi López 10 лет назад 0
Странно, что владелец проекта удалил скомпилированный бинарный файл Antony 8 лет назад 0
Ссылка на скачивание на sourceforge не работает, и с пакетом есть некоторые существенные проблемы: https://github.com/hewigovens/PackageUninstaller/issues RichVel 7 лет назад 0
1
alex

Вы можете попробовать предложения с этого сайта: http://www.entropy.ch/software/macosx/mysql/remove-old-mysql.html . Кроме того, на сайте поддержки Adobe есть статья об этом; вот ссылка: http://support.adobe.com/devsup/devsup.nsf/docs/52355.htm .

Кроме того, приложения, которые обычно имеют файл pkg в dmg, обычно также имеют другой pkg, который используется для удаления. Я не уверен, верно ли это, но я хотел, чтобы вы сохранили исходный файл dmg.

1
rToday Lin

Я сделал снаряд

можешь попробовать

https://github.com/iamrToday/pkg-remove

Он показывает демо .gif, вы можете увидеть исходный код, просто оберните командную строку brablc . Вы можете запустить его для поиска информации, вы также можете удалить apk. Это интерактивно.

Что это делает? Pierre.Vriens 5 лет назад 0
Я показываю демоверсию .gif, вы можете увидеть исходный код, просто оберните командную строку [brablc] (https://superuser.com/users/97039/brablc). Вы можете запустить его для поиска информации, вы также можете удалить apk. это интерактивно. :) rToday Lin 5 лет назад 0

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