Jak zaktualizować pakiety zainstalowane za pomocą pakietu use


24

Używam use-packagedo instalowania i konfigurowania pakietów (większość tych pakietów jest w Melpa). Czy istnieje czysty automatyczny sposób aktualizowania wszystkich tych pakietów?

Jeśli nie, jaki jest najlepszy przepływ pracy w tym przypadku?

Uwaga: Bardzo podobne pytanie tutaj z odpowiedzią, ale chciałem się wyjaśnień w sprawie „Będziesz nadal muszą radzić sobie z instalowaniem aktualizacji”. Nie mogłem skomentować odpowiedzi w celu wyjaśnienia, ponieważ nie mam wystarczającej reputacji.

Odpowiedzi:


17

Po prostu robię to ręcznie: list-packagesnaciśnij hit, Uaby zaznaczyć dostępne ulepszenia, a następnie sprawdź, czy są jakieś, których nie chcę odbierać. Następnie, xaby zaktualizować. Robię to dość regularnie i często sprawdzam, co nowego w tym samym czasie. Mam kilka poprawek, aby to uprościć (patrz poniżej).

Podejrzewam, że aktualizacja może być zautomatyzowana, ale chcesz wziąć pod uwagę przypadek, w którym aktualizacja coś psuje i musisz ją wycofać, a następnie uniemożliwić automatycznej aktualizacji przez ponowne zainstalowanie.

Niektóre poprawki menu pakietu:

(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)

Dzięki temu mogę s newzobaczyć, które pakiety są nowo dostępne. A po naciśnięciu, Uaby zaznaczyć ulepszenia, mogę znaleźć alistę buforów tych, które zostały oznaczone, na wypadek, gdyby chciałem zagłębić się w szczegóły tego, co się zmieniło itp.


Dzięki, na pytania udzielane są przede wszystkim odpowiedzi. apracował nad znalezieniem oznaczonych paczek. Jednak s installedkażdy z pozostałych trzech statusów zwraca pustą listę.
Jaagrit Sapana

Jakiej wersji Emacsa używasz?
glucas

Używam 24.5.1
Jaagrit Sapana

Ach ok. Sprawdziłem, a package-menu-filterpolecenie jest nowe w 25.1, więc to polecenie nie będzie dla ciebie działać.
glucas

Robię to w każdy poniedziałek rano
Ricky Nelson

10

Możesz użyć auto-package-updatedo automatycznej aktualizacji pakietów.

Skopiowano z mojego innego postu ( /emacs//a/31903/9972 )

(use-package auto-package-update
   :ensure t
   :config
   (setq auto-package-update-delete-old-versions t
         auto-package-update-interval 4)
   (auto-package-update-maybe))

Dzięki tej konfiguracji pakiety będą aktualizowane codziennie 4, a stare pakiety będą usuwane.



0

Istnieje wysoce zalecany pakiet o nazwie paradoks, który rozszerza polecenia zarządzania pakietami. Czytaj więcej na https://github.com/Malabarba/paradox

(use-package paradox
  :init
  (setq paradox-github-token t)
  (setq paradox-execute-asynchronously t)
  (setq paradox-automatically-star t))

Ta konfiguracja przekazuje statystyki użytkowania pakietu z powrotem do systemu za pomocą oddzielnie ustawionego tokena github i aktualizuje pakiety w tle, gdy ręcznie uruchomisz polecenie paradox-upgrade-packagespowiązane z wybranymi kluczami.

Przeczytaj dokumentację wbudowaną zmiennej, paradox-github-tokenw jaki sposób ją skonfigurować.


0

Wystarczy wpisać listę pakietów i nacisnąć SHIFT + U. Oznacze wszystkie zainstalowane pakiety do aktualizacji.


Prawdopodobnie nie jest w pełni automatyczny.
JeanPierre
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.