use-package와 함께 설치된 패키지를 업데이트하는 방법


24

use-package패키지를 설치하고 구성 하는 데 사용하고 있습니다 (이 패키지는 대부분 melpa에 있습니다). 이러한 모든 패키지를 최신 상태로 유지하는 깔끔한 자동화 된 방법이 있습니까?

그렇지 않은 경우이 경우 가장 좋은 작업 흐름은 무엇입니까?

참고 : 여기 에 답변이있는 매우 유사한 질문 이지만 "업데이트 설치를 처리해야합니다"에 대한 설명을 원했습니다. 평판이 충분하지 않아 설명에 대한 답변에 대해 언급 할 수 없었습니다.

답변:


16

나는 이것을 수동으로 수행합니다 : 사용 가능한 업그레이드를 표시하기 위해 list-packages히트 U를 실행 한 다음 검토하고 싶지 않은 항목이 있는지 확인하십시오. 그런 다음 x업그레이드하십시오. 나는 이것을 꽤 정기적으로하고 종종 새로운 것을 동시에 확인합니다. 이것을 단순화하기 위해 몇 가지 조정이 있습니다 (아래 참조).

업그레이드가 자동화 된 것으로 생각되지만 업데이트로 인해 문제가 발생하는 경우를 고려하여 업데이트 한 후 자동화 된 업데이터가 다시 설치되지 않도록해야합니다.

일부 패키지 메뉴 조정 :

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

이를 통해 s new새로 사용할 수있는 패키지를 확인할 수 있습니다. 그리고 U업그레이드를 표시하기 위해 타격 을 한 후에 a나는 변경된 것들에 대한 세부 사항을 파고 싶을 때 표시 된 것들의 버퍼 목록을 칠 수 있습니다 .


감사합니다. 질문에 주로 답변합니다. a표시된 패키지를 찾기 위해 일했습니다. 그러나 s installed나머지 세 가지 상태 중 하나라도 빈 목록을 반환합니다.
Jaagrit Sapana

어떤 버전의 이맥스를 사용하고 있습니까?
glucas

24.5.1을 사용하고 있습니다
Jaagrit Sapana

그래. 확인하고 package-menu-filter명령이 25.1의 새로운 기능이므로 해당 명령이 작동하지 않습니다.
glucas

나는 매주 월요일 아침에 이것을한다
Ricky Nelson

10

auto-package-update패키지를 자동으로 업데이트 하는 데 사용할 수 있습니다 .

내 다른 게시물에서 복사했습니다 ( /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))

해당 설정을 사용하면 패키지가 매일 업데이트되고 4이전 패키지가 제거됩니다.


0

epm업데이트 프로세스를 깨끗하게 유지 하십시오 .

cf. https://github.com/xuchunyang/epm

일반적인 init.el 설정을로드하지 않고 emacs 배치 프로세스 내에서 업데이트 프로세스를 실행할 수 있습니다.


0

패키지 관리 명령을 확장하는 paradox라는 패키지를 강력히 권장합니다. https://github.com/Malabarba/paradox 에서 자세히 알아 보십시오.

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

이 설정은 별도로 설정된 github 토큰을 사용하여 패키지 사용 통계를 시스템에 다시 공급하고 paradox-upgrade-packages선택한 키에 바인딩 된 명령을 수동으로 실행할 때 백그라운드에서 패키지를 업데이트합니다 .

변수 paradox-github-token설정 방법 에 대한 변수의 인라인 문서를 읽으십시오 .


0

리스트 패키지와 SHIFT + U를 입력하십시오. 설치된 모든 패키지에 업데이트가 표시됩니다.


전자동이 아닐 수도 있습니다.
JeanPierre
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.