Wie deinstalliere ich eine Apple pkg-Paketdatei?

82353
dlamblin

Trotz gegenteiliger Meinungen werden nicht alle Pakete in nur einem Verzeichnis sauber installiert. Gibt es eine Möglichkeit, den Installationsvorgang einer pkg-Datei umzukehren, vorzugsweise mit dem Originalpaket (oder aus einem Repository mit Informationen zu installierten Paketen)?

Ich habe speziell das PowerPC MySQL 5.4.1-Paket auf einem Intel-MacBook installiert und möchte das sauber rückgängig machen. Die 5.1 x86-Installation, die ich sehe, ist zwar immer noch vorhanden, funktioniert aber jetzt nicht richtig.

46

6 Antworten auf die Frage

77
brablc

https://wincent.com/wiki/Uninstalling_packages_(.pkg_files)_on_Mac_OS_X beschreibt, wie Sie .pkg mit native deinstallieren pkgutil. Ich habe es erfolgreich verfolgt, um Midnight Commander zu deinstallieren.

Modifizierter Auszug

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

Nachdem Sie die Liste der Dateien visuell geprüft haben, können Sie Folgendes 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 -f $ pkgutil --only-dirs --files the-package-name.pkg | tail -r | tr '\n' '\0' | xargs -n 1 -0 sudo rmdir 

Es ist unnötig zu erwähnen, dass beim Entfernen von Dateien mit Root-Privilegien äußerste Vorsicht geboten ist. Beachten Sie insbesondere, dass einige Pakete gemeinsam genutzte Systemkomponenten aktualisieren können. Wenn Sie diese deinstallieren, kann Ihr System dadurch beschädigt werden, dass eine erforderliche Komponente entfernt wird.

Bei kleineren Paketen ist es wahrscheinlich sicherer, die Dateien manuell zu entfernen, nachdem sie die Paketdateiliste visuell geprüft haben.

Anscheinend war einmal eine --unlinkOption verfügbar pkgutil, aber seit Lion wird sie in der Manpage nicht erwähnt. Vielleicht wurde es entfernt, weil es zu gefährlich war.

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

$ sudo pkgutil --forget the-package-name.pkg 
Ich würde empfehlen, "rmdir" anstelle von "rm -r" zu verwenden. man könnte auch `tac` oder` tail -r` verwenden, um die Liste der Verzeichnisnamen umzukehren, so dass sie in der Reihenfolge _correct_ gelöscht werden Sam Mason vor 10 Jahren 1
LAUFEN SIE NICHT DAS sudo rm -ir TEIL. Die Liste enthält die übergeordneten Verzeichnisse! Wenn also das Paket etwas in / usr / installiert hat, werden Sie ALLE / usr / entfernen. FiloSottile vor 9 Jahren 14
Ich habe den Befehl zum Löschen von Verzeichnissen geändert, um `rmdir` zu verwenden (wodurch nicht leere Verzeichnisse nicht gelöscht werden) und` tail -r` verwendet, um sie in einer besseren Reihenfolge aufzulisten. brablc vor 9 Jahren 2
Ironischerweise fand ich bei der Verwendung von pgkutil ein uninstaller.pl, das ich verwenden konnte. Perfekt! cmroanirgo vor 9 Jahren 1
Was pkgs nicht zu verfolgen scheint, sind die von den pkgs erstellten symbolischen Links. Es ist möglich, dass durch das Aufräumen des Pakets von den obigen Anweisungen (oder einer der Methoden hier) gebrochene Symlinks zurückbleiben. James McMahon vor 7 Jahren 0
18
Chealion

Im System integriert gibt es keine Möglichkeit, die Dateien mit einem Deinstallationsprogramm zu deinstallieren. Sie können also entweder ein Deinstallationsprogramm selbst erstellen oder die Dateien manuell entfernen.

Die beste Methode, um festzustellen, welche Dateien installiert wurden, ist, .pkgwenn möglich, das Original zu erfassen. Ist dies nicht möglich, können Sie stattdessen auch die Quittungen verwenden /Library/Receipts. Ihr größtes Problem ist, wenn Sie es mit einer Datei zu tun haben, .mpkgdie mehrere .pkgDateien enthält, da Sie dann alle separaten .pkgDateien in diesem Ordner finden müssen (glücklicherweise nicht so schwierig, wenn Sie nach Datum sortiert sind).

Sobald Sie die .pkgDatei (Receipt oder die vollständige Installationsdatei) erworben haben, können Sie das Deinstallationsprogramm mithilfe eines Dienstprogramms erstellen oder die Dateien suchen, um sie manuell zu entfernen:

deinstallierer

Absolute Software InstallEase ist ein kostenloses Programm, das Deinstallationsprogramme aus vorhandenen .pkg-Dateien erstellen kann. Erstellen Sie die Deinstallationsdatei .pkg(Hinweis: Sie benötigen die Entwicklertools von Apple, um die .pkgDatei erstellen zu können.)

Manuell

Mit einem Programm wie Pacifist oder einem QuickLook-Plugin wie Suspicious Package können Sie anzeigen, welche Dateien an welchem ​​Ort installiert werden. Mithilfe dieser Liste können Sie dann manuell zu diesen Ordnern navigieren und die Dateien entfernen. Ich habe diese Methode unzählige Male persönlich verwendet, bevor ich InstallEase entdeckte. Dies ist jedoch häufig noch schneller, wenn die Installation nicht auf viele Standorte verteilt ist.

Vielen Dank, während die regulären 5.1-MySQL-Pakete eine Quittung hinterlassen haben, die Beta-5.4-MySQL-Pakete nicht. Das ist etwas seltsam. dlamblin vor 15 Jahren 0
Wow, wenn ich das wüsste, hätte ich niemals das `.pkg` installiert. yu keine Programme und Funktionen OS X? NobleUplift vor 10 Jahren 4
9
user1259710

Sie können .pkg-Pakete auch mit UninstallPKG ( http://www.corecode.at/uninstallpkg/ ) deinstallieren.

[vollständige Offenlegung: Ja, ich bin der Autor]

Als Autor möchten Sie möglicherweise den Download-Link für Ihre Software korrigieren - `http://www.corecode.at/downloads/installpkg_1.0.6.zip` derzeit 404s ... fgp vor 10 Jahren 0
Nette Sachen. Danke für deine Arbeit. Viacheslav Kovalev vor 7 Jahren 0
Es ist erwähnenswert, dass es nicht kostenlos ist, aber eine kostenlose Testversion beinhaltet Ron E vor 6 Jahren 0
4
hewigOvens

Ich habe das gleiche Rad im letzten Monat erstellt. Es heißt Package Uninstaller, ist Open Source und wird auf github gehostet: https://github.com/hewigovens/PackageUninstaller ,

Sie können es von [hier] herunterladen und ausprobieren. ( http://sourceforge.net/projects/packageuninstaller/files/latest/download )

Bemerkenswert ist, dass es nur bei 10.7 oder höher läuft. Xavi López vor 10 Jahren 0
Seltsam, dass der Projektbesitzer die kompilierte Binärdatei entfernt hat Antony vor 8 Jahren 0
Der Download-Link auf SourceForge ist defekt und es gibt einige wichtige Probleme mit dem Paket: https://github.com/hewigovens/PackageUninstaller/issues RichVel vor 7 Jahren 0
1
alex

Sie können die Vorschläge auf dieser Website ausprobieren: http://www.entropy.ch/software/macosx/mysql/remove-old-mysql.html . Darüber hinaus gibt es auf der Support-Website von Adobe einen entsprechenden Artikel. Hier ist der Link: http://support.adobe.com/devsup/devsup.nsf/docs/52355.htm .

Außerdem haben die Apps, die normalerweise eine pkg- Datei in der dmg haben, auch ein anderes pkg, das zur Deinstallation verwendet wird. Ich bin nicht sicher, ob das hier stimmt, aber ich wollte Sie wissen lassen, dass die Original-DMG-Datei erhalten bleibt.

1
rToday Lin

Ich habe ein Shell-Script gemacht

du kannst es versuchen

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

Es zeigt eine .gif-Demo, Sie können den Quellcode sehen, wickeln Sie einfach die Befehlszeile von brablc ein . Sie können es ausführen, um Informationen zu suchen, Sie können auch apk entfernen. Es ist interaktiv.

was tut es? Pierre.Vriens vor 6 Jahren 0
Ich zeige eine .gif-Demo. Sie können den Quellcode sehen, indem Sie die Befehlszeile von [brablc] (https://superuser.com/users/97039/brablc) umschließen. Sie können es ausführen, um Informationen zu suchen, Sie können auch apk entfernen. es ist interaktiv. :) rToday Lin vor 6 Jahren 0