package.el패키지를 관리 하기 위해 + Quelpa 를 사용하는 데 오랜 시간이 걸렸지 만, 나는 총알을 깨고 내 자신의 패키지 관리자를 작성했습니다 . 거의 모든면 package.el에서 우수한 패키지 관리 환경을 제공 하여 완전히 교체하기위한 것입니다.
매우 광범위한 문서 를 읽고 모든 기능에 대해 배울 수 있지만이 질문과 관련이있는 것은 완벽한 재현성에straight.el 중점 을 두는 것입니다 . 즉, Emacs를 정상적으로 시작하든 새 컴퓨터에서 시작하든 상관없이 로컬 변경 사항은 버전으로 제어되며 정식 상태로 되돌릴 수 있습니다. 실제로 이것은 (1) 패키지를 Git 리포지토리로 복제하고 상태를 관리하기위한 자동화 된 도구를 제공합니다. (2) init-file을 다른 곳에 저장된 변경 가능한 데이터없이 패키지 관리 상태 의 유일한 진실 소스로 사용 ; (3) 옵션 버전 잠금 파일을 사용하여 모든 패키지의 정확한 Git 개정판과 레시피 저장소 및straight.el 그 자체.
시작하려면 부트 스트랩 스 니펫을 삽입 하면 설치 및 활성화됩니다 straight.el. 그런 다음 패키지가 설치되었는지 확인하려면 straight-use-packageinit 파일에 전화 하십시오.
(straight-use-package 'projectile)
예, 그렇게 간단합니다. package-refresh-contents그 쓰레기를 다루지 않습니다 . init 파일에서이 양식을 제거하고 Emacs를 다시 시작하면 (와는 달리 ) Projectile이 더 이상로드되지 않습니다package.el . 이는 실수로 선언되지 않은 패키지에 의존하기 때문에 구성에 대해 걱정할 필요가 없습니다.
init 파일 전체에 걸쳐 언제 어디서나 패키지를 설치할 수 있습니다 (단일 지점에서 패키지 목록을 선언 할 필요가 없음). 물론 당신은 또한 할 수 있습니다
(dolist (package '(ace-jump-mode ... zzz-to-char)) (straight-use-package package))
당신이 목록을 선호한다면. 그러나 use-package패키지 구성을 관리하는 데 사용 하는 것이 좋습니다 . 먼저 설치해야합니다 :
(straight-use-package 'use-package)
그런 다음 straight.el와의 통합 기능이 내장되어 use-package있으므로 다음과 같이 "작동합니다".
(use-package projectile
:straight t
:init (projectile-mode 1))
필요한 패키지를 설치하기 위해 init 파일을 작성한 후에 M-x straight-freeze-versions는 버전 잠금 파일을에 저장하십시오 ~/.emacs.d/straight/versions/default.el. 이 파일 straight.el은 새 컴퓨터에서 Emacs를 처음 시작할 때 모든 패키지의 올바른 버전을 체크 아웃 할 수 있도록 버전 제어 상태로 유지해야 합니다. (를 사용하여 잠금 파일에 지정된 버전으로 수동으로 되돌릴 수 있습니다 M-x straight-thaw-versions.)
내가에서 언급 한 기계 지역 dotfiles의 아이디어를 지원하기 위해 내 다른 대답을 , straight.el제공 프로파일 시스템 . 그래도 도트 init.el파일에 심볼릭 링크를 사용하는 것이 좋습니다 (이 경우 로컬 init 파일 (해당되는 경우), 버전 잠금 파일을 사용하려는 경우).
straight.el다른 패키지 관리자와 비교 하는 방법이 궁금하다면 광범위한 비교 섹션을 확인 하십시오 . 그러나 다른 모든 것에 대한 더 많은 문서가 있습니다.
init.el주위에 (예를 들어 자식을 사용),이 방법은 또한 (에 따라 작동합니다use-package:) lunaryorn.com/posts/...