2014-09-19 8 views
14

Как вы можете полностью удалить (удалить файлы, принадлежащие определенному пакету) в Mac OS X? Можно ли это сделать с помощью команды в терминале?Удаление пакетов в Mac OS X

Я установил пакет .pkg на свой Mac, и мне интересно, как я могу удалить весь пакет без использования стороннего приложения, такого как UninstallPKG?

Мне интересно, нужны ли для деинсталляции файлы .dmg сторонние приложения или можно удалить их, введя команду в терминал?

+4

Этот вопрос не соответствует теме, потому что речь идет не о программировании. Попробуйте http://apple.stackexchange.com – Droppy

+1

В частности, это тот же вопрос, что и http://superuser.com/questions/36567/how-do-i-uninstall-any-apple-pkg-package-file. Я рекомендую закрыть этот вопрос, поскольку он не отвечает за StackOverflow. –

ответ

5

Концепция удаления PKG отсутствует в OS X. PKG/MPKG может иметь определенные сценарии предварительной установки и пост-установки, связанные с этим. То, что делается в сценариях PKG, всегда зависит от создателя PKG. Как непрофессионал мы не можем пойти и удалить PKG.

Но в то же время есть командные строки, которые могут выполнять полную обратную разработку в файлах PKG. Он может извлекать скрипты и другую соответствующую информацию. Ссылки, приведенные ниже, даст вам некоторую информацию

http://s.sudre.free.fr/Stuff/Ivanhoe/FLAT.html http://www.mactech.com/articles/mactech/Vol.26/26.02/TheFlatPackage/index.html

Есть несколько деинсталлировать/очиститель приложений, доступных на OS X. Большинство из них поиск в известных каталогах (как/Library/Preferences/Library,/Application Support и т. Д.) С именем или именем приложения/pkg. Это один из способов сделать полное удаление.

DMG не являются установочными файлами. Это файлы образа диска. У него могут быть: .apps, pkg, mpkgs, другие файлы и т. Д. То, что устанавливается, - это инсталляторы внутри DMG. DMG должен монтироваться, чтобы читать содержимое и удалять его, когда это делается.

http://osxdaily.com/2011/12/17/mount-a-dmg-from-the-command-line-in-mac-os-x/

Эта ссылка дает информацию о том, как монтировать DMG

9

Используйте эту команду в терминале для проверки списка пакета и удалены файлы.

$ pkgutil --pkgs # list all installed packages 

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

$ sudo pkgutil --forget the-package-name.pkg 

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

$ 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 -i 

Be соблюдайте этот последний шаг. Список каталогов, выводимых по pkgutil --files, может включать в себя важные общие каталоги, такие как usr, которые вы не хотите удалять.

$ pkgutil --only-dirs --files the-package-name.pkg | tr '\n' '\0' | xargs -n 1 -0 sudo rm -ir 

Скопировано из here

+0

Я попробовал вышеуказанную команду, чтобы удалить файлы из пакета, но это не сработало. 'rm -i' запрашивает у пользователя подтверждение, но stdin исходит из'/dev/null' благодаря xargs (http://man7.org/linux/man-pages/man1/xargs.1.html), поэтому вы ничего не можете подтвердить. Вы просто получаете серию из нескольких подсказок, и файлы не удаляются. Кто-нибудь еще имел успех? – LarsH

+0

Как удалить файлы/как вы знаете, какие файлы, в которых каталоги связаны с определенным пакетом? – JedatKinports

4

Я модифицирования ответ @ Картикеян, которая не работает для меня.

В командной строке, используйте следующее, чтобы найти нужное имя пакета:

$ pkgutil --pkgs | grep -i {keyword} | less 

где {ключевое слово} является строка, которую вы ожидаете увидеть в имени пакета.

Чтобы найти местоположение пакета (корневой каталог всех файлов объявлений будет относительно), используйте

$ pkgutil --pkg-info package-name.pkg 

Используйте это список установленных файлов программ пакета:

$ pkgutil --files package-name.pkg 

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

$ cd/# assuming the package location is/
$ pkgutil --only-files --files package-name.pkg | tr '\n' '\0' | xargs -n 1 -0 -p sudo rm 

Будьте осторожны следующего (окончательного) шага, который удаляет каталоги. Список каталогов, выводимых по pkgutil --files, может включать в себя важные общие каталоги, такие как usr, которые вы не хотите удалять. -p вызывает xargs, чтобы запросить подтверждение, но не получить триггер-счастливый. (Вы должны быть безопасными с rmdir тоже, потому что это будет только удалить пустые каталоги. Но некоторые люди должны настроить командную строку, так что лучше быть понятно!)

$ pkgutil --only-dirs --files package-name.pkg | tr '\n' '\0' | xargs -n 1 -0 -p sudo rmdir 

После того, как вы удалили файлы , вы можете удалить системную запись этого пакета:

$ sudo pkgutil --forget package-name.pkg 

Источники: pkgutil man page и this post.

+1

Расширение '.pkg' не требуется, по крайней мере, на шаге pkg-info. –

+0

Предположительно, если на информационном шаге указано «location: Applications/xxx.app», а шаг «--files» ничего не показывает ничего за пределами «Содержание /». Я уверен, что просто перетащить приложение в корзину удалило все? –