Comment mettre à jour les packages installés avec use-package
24
J'utilise use-packagepour installer et configurer des packages (la plupart de ces packages sont dans melpa). Existe-t-il un moyen propre et automatisé de maintenir tous ces packages à jour?
Sinon, quel est le meilleur flux de travail dans ce cas?
Remarque: Une question très similaire ici avec une réponse, mais je voulais une clarification sur "Vous devrez toujours gérer l'installation des mises à jour". Je n'ai pas pu commenter la réponse pour des éclaircissements car je n'ai pas assez de réputation.
Je fais juste cela manuellement: exécutez list-packageshit Upour marquer les mises à niveau disponibles, puis examinez pour décider s'il y en a que je ne veux pas ramasser. Ensuite, xpour mettre à niveau. Je le fais assez régulièrement et vérifie souvent les nouveautés en même temps. J'ai quelques réglages pour simplifier cela (voir ci-dessous).
Je soupçonne que la mise à niveau pourrait être automatisée, mais vous voulez considérer le cas où une mise à jour casse quelque chose et vous devez la annuler, puis empêcher votre programme de mise à jour automatisé de simplement l'installer à nouveau.
Quelques ajustements du menu du package:
(defun package-menu-find-marks ()
"Find packages marked for action in *Packages*."
(interactive)
(occur "^[A-Z]"))
;; Only in Emacs 25.1+
(defun package-menu-filter-by-status (status)
"Filter the *Packages* buffer by status."
(interactive
(list (completing-read
"Status: " '("new" "installed" "dependency" "obsolete"))))
(package-menu-filter (concat "status:" status)))
(define-key package-menu-mode-map "s" #'package-menu-filter-by-status)
(define-key package-menu-mode-map "a" #'package-menu-find-marks)
Avec cela, je peux utiliser s newpour voir quels packages sont nouvellement disponibles. Et après avoir frappé Upour marquer les mises à niveau, je peux arechercher une liste de tampons de celles qui ont été marquées, au cas où je voudrais creuser les détails de ce qui a changé, etc.
Merci, les questions sont principalement répondues. atravaillé pour trouver des paquets marqués. Cependant, s installedou l'un des trois autres statuts restants renvoie une liste vide.
Jaagrit Sapana
Quelle version d'Emacs utilisez-vous?
glucas
J'utilise 24.5.1
Jaagrit Sapana
Ah ok. J'ai vérifié et la package-menu-filtercommande est nouvelle dans 25.1, donc cette commande ne fonctionnera pas pour vous.
glucas
Je fais cela tous les lundis matin
Ricky Nelson
10
Vous pouvez utiliser auto-package-updatepour mettre à jour automatiquement les packages.
Il existe un package hautement recommandé appelé paradoxe qui étend les commandes de gestion des packages. En savoir plus sur https://github.com/Malabarba/paradox
Cette configuration renvoie les statistiques d'utilisation des packages au système à l'aide d'un jeton github défini séparément et met à jour les packages en arrière-plan lorsque vous exécutez manuellement la commande paradox-upgrade-packagesliée à vos clés de choix.
Lisez la documentation en ligne de la variable paradox-github-tokensur la façon de la configurer.
a
travaillé pour trouver des paquets marqués. Cependant,s installed
ou l'un des trois autres statuts restants renvoie une liste vide.package-menu-filter
commande est nouvelle dans 25.1, donc cette commande ne fonctionnera pas pour vous.Vous pouvez utiliser
auto-package-update
pour mettre à jour automatiquement les packages.Copié de mon autre article ( /emacs//a/31903/9972 )
Avec cette configuration, les packages seront mis à jour tous les
4
jours et les anciens packages seront supprimés.la source
Essayez
epm
de garder le processus de mise à jour propre.cf. https://github.com/xuchunyang/epm
Il peut exécuter le processus de mise à jour dans le processus batch emacs, sans charger les paramètres init.el normaux.
la source
Il existe un package hautement recommandé appelé paradoxe qui étend les commandes de gestion des packages. En savoir plus sur https://github.com/Malabarba/paradox
Cette configuration renvoie les statistiques d'utilisation des packages au système à l'aide d'un jeton github défini séparément et met à jour les packages en arrière-plan lorsque vous exécutez manuellement la commande paradox-upgrade-packagesliée à vos clés de choix.
Lisez la documentation en ligne de la variable paradox-github-tokensur la façon de la configurer.
la source
Entrez simplement les packages de liste et pressez SHIFT + U. Il marquera tous les packages installés pour une mise à jour.
la source