https://wincent.com/wiki/Uninstall_packages_(.pkg_files)_on_Mac_OS_X описывает, как удалить .pkg, используя native pkgutil
.
Модифицированная выдержка
$ 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
перевернуть список имен каталогов, чтобы они были удалены в правильном порядке