71 votes

Comment désinstaller n'importe quel fichier de package Apple pkg ?

Malgré les opinions contraires, tous les packages ne sont pas installés proprement dans un seul répertoire. Y a-t-il un moyen de inverser le processus d'installation d'un fichier pkg, de préférence avec le package d'origine (ou à partir d'un référentiel d'informations sur les packages installés) ?

Plus précisément, j'ai installé le package MySQL 5.4.1 PowerPC sur un MacBook Intel, et je voudrais inverser cela proprement, en récupérant l'installation x86 5.1 que je vois toujours présente, mais qui ne fonctionne pas correctement maintenant.

118voto

brablc Points 1310

https://wincent.com/wiki/Désinstallation_de_paquets_(.pkg_files)_sur_Mac_OS_X décrit comment désinstaller .pkg en utilisant le pkgutil natif.

Extrait modifié

$ pkgutil --pkgs # liste tous les paquets installés
$ pkgutil --files le-nom-du-paquet.pkg # lister les fichiers installés

Après avoir visuellement inspecté la liste des fichiers, vous pouvez faire quelque chose comme :

$ pkgutil --pkg-info le-nom-du-paquet.pkg # vérifie l'emplacement
$ cd / # en supposant que le paquet est enraciné à /...
$ pkgutil --only-files --files le-nom-du-paquet.pkg | tr '\n' '\0' | xargs -n 1 -0 sudo rm -f
$ pkgutil --only-dirs --files le-nom-du-paquet.pkg | tail -r | tr '\n' '\0' | xargs -n 1 -0 sudo rmdir

Il va sans dire qu'il convient de toujours faire preuve d'une extrême prudence lors de la suppression de fichiers avec des privilèges d'administration. En particulier, sachez que certains paquets peuvent mettre à jour des composants système partagés, donc les désinstaller peut réellement endommager votre système en supprimant un composant nécessaire.

Pour les petits paquets, il est probablement plus sûr de simplement supprimer manuellement les fichiers après avoir visuellement inspecté la liste des fichiers du paquet.

Apparemment, il y avait autrefois une option --unlink disponible dans pkgutil, mais à partir de Lion, elle n'est pas mentionnée dans la page de manuel. Peut-être a-t-elle été supprimée car elle était jugée trop dangereuse.

Une fois que vous avez désinstallé les fichiers, vous pouvez supprimer le reçu avec :

$ sudo pkgutil --forget le-nom-du-paquet.pkg

1 votes

Je recommanderais d'utiliser rmdir plutôt que rm -r; on pourrait aussi utiliser tac ou tail -r pour inverser la liste des noms de répertoires afin qu'ils soient supprimés dans le bon ordre.

26 votes

NE PAS EXÉCUTER LA PARTIE sudo rm -ir. La liste comprend les répertoires parents! Donc, si le paquet a installé quelque chose dans /usr/... vous supprimerez TOUS les /usr/

4 votes

J'ai changé la commande pour supprimer les répertoires à utiliser rmdir (qui ne supprime pas les répertoires non vides) et utilise tail -r pour les lister dans un meilleur ordre.

21voto

Kit Roed Points 1922

Intégré dans le système, il n'y a pas d'option pour désinstaller les fichiers à l'aide d'un désinstalleur, vous pouvez donc soit créer un désinstalleur vous-même, soit supprimer les fichiers manuellement.

La meilleure méthode pour déterminer quels fichiers ont été installés est d'obtenir l'original .pkg si possible. Si ce n'est pas possible, vous pouvez également utiliser les reçus trouvés à /Bibliothèque/Receipts. Votre plus gros problème survient lorsque vous travaillez avec un .mpkg qui contient plusieurs fichiers .pkg car vous devrez alors trouver tous les fichiers .pkg séparés dans ce dossier (heureusement pas si difficile lorsque triés par date).

Une fois que vous avez le fichier .pkg (Reçu ou le fichier d'installation complet), vous pouvez alors utiliser un utilitaire pour soit créer le désinstalleur, soit trouver les fichiers afin de les supprimer manuellement :

Désinstalleur

Absolute Software InstallEase est un programme gratuit qui peut créer des désinstalleurs à partir de fichiers .pkg existants. Faites le fichier de désinstallation .pkg (note : Vous aurez besoin d'installer les Outils de développement d'Apple pour créer réellement le fichier .pkg)

Manuellement

En utilisant un programme tel que Pacifist ou un plugin QuickLook comme Suspicious Package, vous pouvez voir quels fichiers sont installés et à quel emplacement. En utilisant cette liste, vous pouvez ensuite naviguer manuellement vers ces dossiers et supprimer les fichiers. J'ai utilisé cette méthode personnellement à de nombreuses reprises avant de découvrir InstallEase, mais elle est toujours souvent plus rapide si l'installation n'est pas étalée sur de nombreux emplacements.

0 votes

Merci, alors que les paquets mysql réguliers 5.1 ont laissé un reçu, les paquets mysql bêta 5.4 ne l'ont pas fait. C'est légèrement curieux.

5 votes

Wow, si je savais ça, je n'aurais jamais installé le .pkg pour commencer. y u no Programmes et fonctionnalités OS X?

10voto

user1259710 Points 238

Vous pouvez également désinstaller les packages .pkg avec UninstallPKG (http://www.corecode.at/uninstallpkg/)

[divulgation complète : oui, je suis l'auteur]

3 votes

Il convient de noter que ce n'est pas gratuit mais comprend une période d'essai gratuite

1 votes

Suggérer des "solutions" non gratuites pour les problèmes Unix est à mon avis une philosophie assez mauvaise. Je veux dire, nous parlons de désinstaller des packages...

0 votes

Il n'y a pas de connexion entre les packages et "Unix". C'est une technologie propriétaire d'Apple qui existe dans macOS et n'existe pas dans tout autre système, Unix ou autrement. De plus, SSDReporter a été rendu gratuit (sans frais) il y a longtemps.

2voto

rToday Lin Points 21

J'ai créé un script shell

vous pouvez l'essayer

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

Il montre une démo .gif, vous pouvez voir le code source, il vous suffit d'envelopper la ligne de commande de brablc. Vous pouvez l'exécuter pour rechercher des informations, vous pouvez également supprimer apk. Il est interactif.

0 votes

Que fait-il ?

0 votes

Je montre un .gif de démonstration, vous pouvez voir le code source, il suffit d'encadrer la ligne de commande de brablc. Vous pouvez l'exécuter pour rechercher des informations, vous pouvez également supprimer apk. C'est interactif. :)

1voto

user7375 Points 569

Vous pouvez essayer les suggestions de ce site : http://www.entropy.ch/software/macosx/mysql/remove-old-mysql.html. De plus, il y a un article à ce sujet sur le site de support d'Adobe ; voici le lien : http://support.adobe.com/devsup/devsup.nsf/docs/52355.htm.

Aussi, les applications qui ont généralement un fichier pkg dans le dmg ont généralement aussi un autre pkg utilisé pour la désinstallation. Je ne suis pas sûr si c'est le cas ici, mais je voulais vous informer de conserver le fichier dmg original.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X