Bedenken hinsichtlich der Deinstallation von Paketen

7

Um ein Paket von Emacs zu deinstallieren, habe ich gelesen, dass ich den bestimmten Ordner aus dem elpa-Ordner löschen muss. Da die .emacs-Datei bei der Installation eines Pakets von selbst geschrieben wird, bedeutet dies, dass sie sich auch selbst löscht, wenn ich ein Paket deinstalliere oder bestimmte Einträge selbst löschen muss. Außerdem habe ich ein Auto-Complete-Paket installiert und im elpa-Ordner einen Ordner mit dem Namen gefunden popup-20141002.320. Warum war dieser Ordner dort? Können Pakete andere Pakete installieren? Wenn ja, wenn ich das erste Paket deinstalliere, muss ich auch das selbst deinstallierte Paket deinstallieren?

Adam
quelle
Das Installieren von Paketen über package-install sollte Ihre Init-Datei nicht ändern. Und ja, der Paketmanager installiert Abhängigkeiten für die von Ihnen installierten Pakete. So popupist eine Abhängigkeit für auto-complete.
Nispio

Antworten:

10

Wenn Sie ein Paket deinstallieren, wird es für Sie gelöscht. Dies ist eigentlich die Gesamtheit des Deinstallationsvorgangs (siehe package-deleteFunktion). Das Löschen kann auch manuell erfolgen, indem es aus dem Installationsverzeichnis entfernt wird ( .emacs.d/elpa/standardmäßig für vom Benutzer installierte Pakete). Dieses manuelle Löschen wird nicht irgendwelche unerwünschten Nebenwirkungen auf das Paket-Management - System, das vereinfacht Erholung sollte etwas schief geht.

Pakete können von anderen Paketen abhängen, um ordnungsgemäß zu funktionieren. Diese Abhängigkeiten werden automatisch installiert, wenn Sie ein Paket über den integrierten Paketmanager ( package.el) installieren . Wenn Sie M-x package-list-packagesverfügbare Pakete anzeigen, können Sie durch Drücken REToder Klicken auf einen Paketnamen sehen, welche Pakete installiert werden (falls sie nicht vorhanden sind) .

Ein Paket über die Schnittstelle der Deinstallation nicht nicht entfernen Abhängigkeiten. Diese Informationen sind, soweit ich das beurteilen kann, nicht dokumentiert. Sie können sich selbst davon überzeugen, indem Sie die Funktionen package-menu-executeund package-deletedurchlesen oder ein Paket mit einer Abhängigkeit installieren, die Sie nicht installiert haben. Entfernen Sie dann das Hauptpaket und beobachten Sie den Status der Abhängigkeit.

Update Seit Emacs 25.1 gibt es einen Befehl zum package-autoremoveLöschen von nicht mehr benötigten Paketen, da diese nur als Abhängigkeit von gelöschten Paketen installiert wurden. Wenn Sie ein installiertes Paket aus der Paketliste löschen, zeigt emacs einen Vorschlag an, diesen Befehl gegebenenfalls auszuführen.

J David Smith
quelle
1
Außerdem würde ich nicht versuchen, die Abhängigkeitspakete zu löschen, da möglicherweise mehr als ein Paket von ihnen abhängt, nicht nur das, das Sie löschen möchten.
Kaushal Modi