MELPA가있는 경우에도 GNU ELPA가 필요합니까?


31

사람들이 MELPA에 최신 버전의 패키지가 있다고 말하고 있기 때문에 항상 혼란 스럽습니다.하지만 GNU ELPA가 MELPA의 하위 집합인지 아니면 둘 다 필요한지 확실하지 않습니다.

내가 묻는 이유는 패키지를 많이 실험하고 있으며 package-list-packages시간이 오래 걸리기 때문입니다. 나는 알고 package-list-packages-no-fetch있지만 가장 최근의 패키지 목록을 원합니다.

문제는 MELPA를 사용하고 MELPA와 GNU ELPA를 모두 사용하는 것과 동일한 (그리고 아마도 최신 버전) 패키지를 얻을 수 있습니까?


5
예, 항상 GNU Elpa가 필요합니다.
Malabarba

답변:


45

우선, ELPA 는 사양의 이름 인 Emacs Lisp Package Archive입니다. 이 사양에는 GNU ELPA, Marmalade 및 MELPA라는 세 가지 널리 알려진 구현이 있습니다.

GNU ELPA 는 공식적인 GNU Emacs 아카이브이며, 충분히 새로운 Emacs 설치가 가능합니다. 비교적 작기 때문에 저작권을 할당하고 공식 메일 링리스트와 협력해야합니다. Linux 배포 패키지 아카이브에 필적하는 것은 가장 가까운 것입니다.

마멀레이드 는 버전이 많은 패키지가 포함 된 비공식 아카이브입니다. 작성자와 관리자는 릴리스를 수동으로 업로드해야합니다. 모든 신규 회원에 대해 한 번의 검토가 이루어지며 사용자 계정을 보유한 후에는 원하는대로 자유롭게 해제 할 수 있습니다.

MELPA 는 패키지가 가장 많은 비공식 아카이브입니다. 각 패키지는 (일반적으로 VCS) 소스에서 자동으로 빌드 된 후 풀 요청을 포함하여 코드 스타일에 대해 간단히 검사됩니다. 재건은 1 시간마다 발생할 수 있습니다. 또한 태그 된 릴리스 만 빌드하지만 Marmalade보다 패키지가 훨씬 적은 MELPA 가 있습니다 .

겹치는 부분은 GNU ELPA와 마멀레이드 사이에 실질적으로 겹치는 부분이 없으며 GNU ELPA와 MELPA의 경우도 마찬가지입니다. 그러나 마멀레이드와 MELPA는 공정한 금액과 겹칩니다. 나는 대부분의 Marmalade가 MELPA의 일부라고 추정합니다. 그렇기 때문에 대부분의 패키지에는 MELPA를, 누락 된 패키지에는 GNU ELPA를 사용할 수 있습니다.

업데이트 : malabarba의 패키지 통계 에 따르면 MELPA Stable은 사용 가능한 패키지 수에서 Marmalade를 능가했습니다. 이제 마멀레이드를 선택하겠습니다.

업데이트 : 마멀레이드는 기본적으로 죽었습니다. 인증서가 만료되어 새로운 패키지가 거의 업로드되지 않았습니다. 이것은 다소 특이한 프로세스로 인해 소유자가 사용자에게 수동으로 추가해야하며, 누락 된 것처럼 2016 년 이후로 새로운 사용자가 추가되지 않았습니다.


Melpa + Gnu Elpa와 같은 소리이며 Marmalade를 사용하지 않는 것이 좋습니다. 변환하는 쉬운 방법이 있습니까?
justingordon

package-archives를 사용하여와 같이 적절히 사용자 정의 하고 색인을 업데이트하십시오 M-x package-refresh-contents. M-x list-packages이전과 다른 목록을 표시해야합니다.
wasamasa

malarbaba의 패키지 통계는 2015 년 12 월에 멈춘 것 같습니다 ...
JeanPierre

Marmalade가 죽었을 때 업데이트를 하나 더 추가했습니다.
wasamasa

-5

아니요, GNU ELPA 또는 ELPA가 필요하지 않을 수 있습니다.

GNU ELPA 또는 타사 저장소를 사용하지 않는 실질적인 이유는 ELPA 종료로부터 내 Emacs를 보호하기위한 것입니다. 때때로 종료가 발생했습니다 ( https://www.reddit.com/r/emacs/search/?q=elpa%20down&restrict_sr=1 참조 )

내 패키지의 대부분은 https // melpa.org에서 다운로드되며 선택한 GNU ELPA 패키지의 작은 로컬 패키지 미러를 만들어 GNU ELPA를 피할 수 있습니다.

https://github.com/redguardtoo/emacs.d/blob/master/lisp/init-elpa.elGNU ELPA가 사용되지 않음 에서 설정을 확인하십시오 .

만약 GNU ELPA 전용 패키지를 사용해야한다면, 대신 자체 로컬 ELPA를 작성하고 싶습니다 (텍스트 파일을 작성하는 것만 큼 간단합니다 archive-contents) ~/.emacs.d/localelpa.

예를 들어 seq-2.20.tarGNU ELPA에만 존재하며 이것이 필요합니다. 이 패키지를 로컬 엘파에 추가합니다.https://github.com/redguardtoo/emacs.d/tree/master/localelpa

현재 저는 GNU ELPA의 패키지 4 개만 사용합니다.

gnu-elpa-keyring-update-2019.3.tar
let-alist-1.0.5.el
seq-2.20.tar
undo-tree-20170706.246.tar

이 패키지는 제 위치에 localelpa있으므로 GNU ELPA에 액세스 할 필요가 없습니다.

설치된 패키지에서 로컬 저장소를 만드는 내 패키지 https://github.com/redguardtoo/elpa-mirror 를 확인할 수도 있습니다 . 따라서 원격 저장소 (GNU ELPA, MELPA)조차도 이제 선택적입니다.

대신 다운로드 한 소스를 사용할 수도 있습니다. https://github.com/redguardtoo/emacs.d/tree/master/site-lisp를 확인 하십시오 . 소스를 사용하는 경우 ( http://emacswiki.org/emacs/LoadPath )에 rainbow-mode대해 이해해야 합니다.load-path

또한 조언은 할 수 package--add-to-archive-contents가 패키지 관리자에 표시되기 전에 패키지를 조정할 수 있습니다. 이것은 문서화되지 않은 해킹입니다. Emacs 23.4에서 Emacs 27까지 작동합니다 init-elpa.el. 예를 참조하십시오 .


7
또한 Auctex, seq.el, let-alist, rainbow-mode 등과 같은 패키지에는 GNU ELPA가 필요합니다. 따라서 더 많은 사람들이 Emacs 개발에 참여하고 그들의 소망을 위해 점점 더 중요 해지고 있다고 주장하지는 않습니다. 모든 사람이 쉽게 사용할 수있는 패키지.
wasamasa

이 문제에 대한 답변을 약간 업데이트했습니다.
chen bin

@wasamasa 왜 auctex와 같은 패키지에 gnu elpa가 필요한지 설명해 주시겠습니까?
toogley

1
@toogley GNU ELPA에서만 사용할 수 있기 때문입니다.
wasamasa
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.