/ usr / sbin / uninstall? Qu'est-ce que c'est / que fait-il?

6

Il y a un /usr/sbin/uninstall commande sur mon système. Qu'est ce que ça fait? Il n'y a pas man page, et en cours d'exécution dit

  1. " You must be root to run this tool. ",
  2. et après sudo uninstall -h ) ça dit " URL is not uninstallable: -h ".

Si je viens de courir sudo uninstall, ça dit " uninstall file_urls ... "

Je suis curieux!

Hawken Rives
la source
idk ce que c'est, mais avoir un peu plus d'informations. La commande apparaît pour la première fois dans 10.7 Lion, et il existe également un framework et un démon dans / System / Library /PrivateFrameworks/Uninstall.framework/Versions/A/Resources/uninstalld et une plist correspondante dans / System / Library / LaunchDaemons/com.apple. .uninstalld.plist
chillin
J'imagine que c'est pour le Mac App Store (surtout avec un démon) ... mais je n'ai aucune preuve à l'appui.
0942v8653
C’était aussi ma supposition, mais App Store est apparu dans Snow Leopard avec quelques démons capables de le gérer, et la désinstallation n’apparaissait dans aucune mise à jour de Snow Leopard, qui utilise toujours App Store (à moins que vous ne fassiez comme moi et le désactiver ). Cela n’exclut pas la possibilité, et c’est toujours ma forte suspicion ... mais je n’ai aucune preuve.
chillin
@chillin Eh bien, peut-être faut-il globaliser le Launchpad, etc.?
0942v8653
@people j'ai essayé les URL com.apple. [etc] -style (c'est-à-dire de style Java), mais cela ne les a pas prises. Il ne prend pas non plus les liens Web iTunes, ni les liens du Mac App Store (l'URL de test que j'ai choisie: macappstores: //itunes.apple.com/us/app/caffeine/id411246225, pour Caffiene).
Hawken Rives

Réponses:

3

0942v8653 devinez est juste, /usr/sbin/uninstall est un programme de désinstallation en ligne de commande pour les applications du Mac App Store.

L'URL du fichier doit être spécifié en tant que paramètre. Dans mes tests, le chemin d'accès à l'application l'a fait:

$ sudo /usr/sbin/uninstall /Applications/Reeder.app
Preparing Uninstall...
Uninstall Began...
7%...
15%...
(...)
92%...
100%...
Uninstall Ended...

les applications non-Mac App Store ne peuvent pas être désinstallées:

$ sudo /usr/sbin/uninstall /Applications/Seashore.app 
URL is not uninstallable: /Applications/Seashore.app

Fait intéressant, bien que j'aie exécuté la commande avec sudo, il m'a quand même demandé des informations d'identification d'administrateur:

enter image description here

/usr/bin/uninstall utilise le framework privé Uninstall:

$ otool -L /usr/sbin/uninstall 
/usr/sbin/uninstall:
(...)
    /System/Library/PrivateFrameworks/Uninstall.framework/Versions/A/Uninstall (compatibility version 1.0.0, current version 202.0.0)
(...)

juste comme le Dock:

$ otool -L /System/Library/CoreServices/Dock.app/Contents/MacOS/Dock | grep Uninstall
    /System/Library/PrivateFrameworks/Uninstall.framework/Versions/A/Uninstall (compatibility version 1.0.0, current version 202.0.0)

Cela a du sens, car mes tests ont montré que lorsqu’une application est désinstallée dans Launchpad (en cliquant sur le bouton de suppression de l’application qui apparaît lorsque les icônes se déplacent). uninstall n'est pas utilisé, mais le quai.

jaume
la source
Intéressant! Merci pour l'enquête. (Je souhaite cependant que cela fonctionne pour les applications non-MAS.)
Hawken Rives