Entladen Sie ein ganzes Paket oder einen Bibliotheksbaum


9

Manchmal möchte ich anrufen unload-feature, um eine Bibliothek zu entladen ... und eine Bibliothek hängt davon ab ... und eine andere Bibliothek hängt von dieser Bibliothek ab ...

Wie kann ich eine Bibliothek und alle davon abhängigen Bibliotheken entladen, ohne den Abhängigkeitsbaum manuell zu durchlaufen?

Ein häufiger Anwendungsfall ist das Entladen aller Bibliotheken eines Pakets (z. B. beim Aktualisieren oder Deinstallieren). Wenn dies möglich ist, ist dies ausreichend.

Antworten:


2

Es gibt keine eingebaute Möglichkeit, dies zu tun - siehe Entladen im Elisp-Handbuch.

unload-featurenimmt ein forceArgument an, das das gewaltsame Entladen ermöglicht, Pselbst wenn andere Pakete davon abhängen P; reicht das für deine bedürfnisse aus?

Wenn nicht, können Sie versuchen, eine rekursive Version von Folgendes zu erstellen unload-feature:

(let* ((file (feature-file feature))
       (dependents (delete file (copy-sequence (file-dependents file))))) 
  (when dependents
    (mapc #'unload-feature-recursive (mapcan #'file-provides dependents))))

Danke, ich habe den Fehler in der Frage behoben. Das Schreiben einer rekursiven Version von unload-featurewar der Punkt der Frage.
Gilles 'SO - hör auf böse zu sein'
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.