2014-09-19 34 views
14

Wie können Sie Mac OS X vollständig deinstallieren (Dateien entfernen, die zu einem bestimmten Paket gehören)? Kann dies mit einem Befehl im Terminal gemacht werden?Pakete in Mac OS X deinstallieren

Ich habe ein .pkg-Paket auf meinem Mac installiert und frage mich, wie ich das gesamte Paket deinstallieren kann, ohne eine Drittanbieteranwendung wie UninstallPKG zu verwenden?

Ich frage mich, ob die Deinstallation von .dmg-Dateien auch Anwendungen von Drittanbietern erfordern oder ist es möglich, sie zu deinstallieren, indem Sie einen Befehl im Terminal eingeben?

+4

Diese Frage scheint off-topic zu sein, weil es nicht um Programmierung geht. Versuchen Sie http://apple.stackexchange.com – Droppy

+1

Insbesondere ist dies die gleiche Frage wie http://superuser.com/questions/36567/how-do-i-uninstall-any-apple-pkg-package-file. Ich habe empfohlen, diese Frage zu schließen, da sie für StackOverflow nicht verfügbar ist. –

Antwort

5

Das Konzept der PKG-Deinstallation ist nicht in OS X enthalten. Ein PKG/MPKG kann bestimmte Skripte für die Vor- und Nachinstallation haben, die damit verbunden sind. Was in PKG-Skripten gemacht wird, ist immer der PKG-Ersteller. Als Laie können wir nicht weitermachen und eine PKG deinstallieren.

Aber zur gleichen Zeit gibt es Befehlszeilen, die eine komplette Reverse Engineering auf PKG-Dateien tun können. Es kann die Skripte und andere verwandte Informationen extrahieren. Die unten angegebenen Links geben Ihnen einige Informationen

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

Es gibt nur wenige uninstall/Reiniger verfügbaren Anwendungen auf OS X. Die meisten von ihnen in bekannten Verzeichnisse eine Suche (wie/Library/Preferences,/Library/Anwendungsunterstützung usw.) mit dem App-Namen/-Pkg-Namen oder der Paket-ID. Dies ist eine Möglichkeit, eine vollständige Entfernung durchzuführen.

DMG sind keine Installationsdateien. Sie sind Disk Image-Dateien. Es kann wieder haben .apps, pkg, mpkgs, andere Dateien usw. Was installiert wird, ist die Installationsprogramme in DMG. DMG muss mount sein, um den Inhalt zu lesen und die Deinstallation zu beenden.

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

Dieser Link gibt Informationen darüber, wie ein DMG

9

Verwenden Sie diesen Befehl im Terminal für die Prüfung der Liste des Pakets montieren und deinstalliert Ihrer Dateien.

$ pkgutil --pkgs # list all installed packages 

Nachdem Sie die Dateien deinstalliert haben, können Sie den Empfang mit entfernen:

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

Nach Sichtprüfung der Liste der Dateien, die Sie so etwas wie tun:

$ 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 vorsichtig mit diesem letzten Schritt. Die Liste der von pkgutil --files ausgegebenen Verzeichnisse kann wichtige freigegebene Verzeichnisse wie usr enthalten, die Sie nicht entfernen möchten.

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

Kopiert von here

+0

Ich habe den obigen Befehl versucht, Dateien aus einem Paket zu entfernen, aber es hat nicht funktioniert. 'rm -i' fordert den Benutzer zur Bestätigung auf, aber stdin kommt von'/dev/null' dank xargs (http://man7.org/linux/man-pages/man1/xargs.1.html), also Sie können nichts bestätigen. Sie erhalten nur eine Reihe von Eingabeaufforderungen und keine Dateien entfernt. Hatte noch jemand Erfolg? – LarsH

+0

Wie deinstalliere ich die Dateien/Woher weißt du, welche Dateien in welchen Verzeichnissen zu einem bestimmten Paket gehören? – JedatKinports

4

ich @ Karthikeyan Antwort zu modifizieren, die nicht für mich arbeiten.

in einer Befehlszeile, verwenden Sie die folgenden die gewünschten Paketnamen zu finden:

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

where {keyword} eine Zeichenfolge, die Sie in dem Paketnamen erwarten ist.

Um den Speicherort des Pakets (das Root-Verzeichnis, das alle Inserate Datei wird relativ sein) zu finden, verwenden

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

verwenden das Paket installierten Dateien aufzulisten:

$ pkgutil --files package-name.pkg 

Nach visuelle Inspektion die Liste der Dateien, die Sie so etwas tun können, um sie zu entfernen:

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

Seien Sie vorsichtig des nächsten (letzten) Schritts, der Verzeichnisse entfernt. Die Liste der von pkgutil --files ausgegebenen Verzeichnisse kann wichtige freigegebene Verzeichnisse wie usr enthalten, die Sie nicht entfernen möchten. -p bewirkt, dass xargs zur Bestätigung auffordert, aber nicht auslöserfreudig wird. (Sie sollten mit rmdir zu sicher sein, weil es nur leere Verzeichnisse entfernt werden. Aber einige Leute müssen die Befehlszeile optimieren, so ist es besser klar zu sein!)

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

Nachdem Sie die Dateien deinstalliert haben

$ sudo pkgutil --forget package-name.pkg 

Quellen:: pkgutil man page und this post, können Sie den Systemdatensatz des Pakets entfernen.

+1

Die Erweiterung '.pkg' wird nicht benötigt, zumindest nicht im Schritt pkg-info. –

+0

Vermutlich, wenn der Info-Schritt 'location: Applications/xxx.app' anzeigt und der' --files'-Schritt nichts außerhalb 'Contents /' zeigt, kann ich ziemlich sicher sein, dass das Ziehen der App in den Papierkorb alles entfernt hat? –