Ainda preciso do GNU ELPA se tiver o MELPA?


31

Isso sempre me confundiu, já que as pessoas estão dizendo que o MELPA tem versões mais recentes dos pacotes, mas não está claro se o GNU ELPA é apenas um subconjunto do MELPA, ou se eu preciso de ambos?

A razão pela qual estou perguntando é que estou experimentando muito meus pacotes e package-list-packagesleva um bom tempo. Estou ciente package-list-packages-no-fetch, mas na maioria das vezes eu gostaria de obter a lista de pacotes mais recente.

Portanto, a questão é: posso usar o MELPA e obter os mesmos pacotes (e possivelmente versões mais recentes) como se eu tivesse usado o MELPA e o GNU ELPA?


5
Sim, você sempre precisará do GNU Elpa.
Malabarba 04/04

Respostas:


45

Antes de tudo, ELPA é o nome de uma especificação, o Emacs Lisp Package Archive. Existem três implementações amplamente conhecidas dessa especificação, GNU ELPA, Marmalade e MELPA.

O GNU ELPA é o arquivo oficial do GNU Emacs, ativado imediatamente para instalações Emacs suficientemente novas. É comparativamente pequeno, contribuindo para isso requer atribuição de direitos autorais e cooperação com a lista de discussão oficial. É a coisa mais próxima que temos de uma verificação comparável a um arquivo de pacotes de distribuição Linux.

Marmalade é um arquivo não oficial com uma boa quantidade de pacotes com versão. Autores e mantenedores precisam fazer upload de seus lançamentos manualmente para ele. A verificação é feita uma vez para cada novo membro antes de permitir que eles tenham uma conta de usuário; depois disso, eles são livres para liberar como desejarem.

MELPA é outro arquivo não oficial com a maior quantidade de pacotes. Cada pacote é examinado brevemente para o estilo do código com sua solicitação de inclusão, depois que os pacotes são criados automaticamente a partir de suas fontes (geralmente VCS). As reconstruções podem acontecer a cada hora. Também existe o MELPA estável, que cria apenas lançamentos com tags, mas possui muito menos pacotes, menos ainda que o Marmalade.

Quanto à sobreposição, praticamente não há sobreposição entre GNU ELPA e Marmalade, e da mesma forma para GNU ELPA e MELPA. No entanto, a marmelada e o MELPA se sobrepõem a um valor justo. Eu estimaria que a maior parte do Marmalade é um subconjunto do MELPA. É por isso que você pode usar o MELPA para a maioria dos pacotes e talvez o GNU ELPA para alguns que estão faltando.

Atualização : De acordo com as estatísticas do pacote da malabarba, o MELPA Stable superou o Marmalade no número de pacotes disponíveis. Eu escolheria Marmalade agora.

Atualização : Marmelade está essencialmente morta. O certificado expirou e quase não há novos pacotes enviados. Isso se deve ao seu processo bastante incomum, você precisa ser adicionado manualmente aos usuários pelo proprietário e, como ele desapareceu, nenhum novo usuário foi adicionado desde 2016 ou mais.


Parece que Melpa + Gnu Elpa, e não usar Marmalade, é o caminho a percorrer. Alguma maneira fácil de converter?
justingordon

Basta personalizar de package-archivesacordo e atualizar o índice, como usando M-x package-refresh-contents. M-x list-packagesdeve exibir uma lista diferente da anterior.
Wasamasa

Parece que as estatísticas do pacote malarbaba estão bloqueadas em dezembro de 2015 ...
JeanPierre 1/08


-5

Não, você pode não precisar do GNU ELPA ou de qualquer ELPA.

O motivo prático para não usar o GNU ELPA ou qualquer repositório de terceiros é proteger meu Emacs do desligamento do ELPA. O desligamento acontecia de tempos em tempos (consulte https://www.reddit.com/r/emacs/search/?q=elpa%20down&restrict_sr=1 )

A maioria dos meus pacotes é baixada de https // melpa.org, eu poderia evitar o GNU ELPA criando um pequeno espelho de pacote local de pacotes selecionados do GNU ELPA.

Verifique minha configuração em https://github.com/redguardtoo/emacs.d/blob/master/lisp/init-elpa.el, GNU ELPA não é usado.

Se eu tiver que usar alguns pacotes apenas GNU ELPA, prefiro criar meu próprio ELPA local (é tão simples quanto criar um arquivo de texto archive-contents), Check my ~/.emacs.d/localelpa.

Por exemplo, seq-2.20.tarexiste apenas no GNU ELPA e eu preciso disso. Então, adiciono este pacote ao meu elpa local emhttps://github.com/redguardtoo/emacs.d/tree/master/localelpa

Atualmente, uso apenas quatro pacotes do GNU ELPA,

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

Esses pacotes são colocados no meu, localelpaentão eu não preciso acessar o GNU ELPA.

Você também pode verificar meu pacote https://github.com/redguardtoo/elpa-mirror, que cria um repositório local a partir dos pacotes instalados. Portanto, mesmo o repositório remoto (GNU ELPA, MELPA) é opcional agora.

Você também pode usar o pacote baixado de origem. Verifique https://github.com/redguardtoo/emacs.d/tree/master/site-lisp . rainbow-mode, Você precisa entender o que é load-path( http://emacswiki.org/emacs/LoadPath ) se você usar o source.

Você também pode aconselhar package--add-to-archive-contentsa ajustar os pacotes antes que eles sejam exibidos no gerenciador de pacotes. Este é um tipo de hack não documentado. Ele funciona do Emacs 23.4 para o Emacs 27. Veja, init-elpa.elpor exemplo.


7
Você também precisa do GNU ELPA para pacotes como Auctex, seq.el, letalist, rainbow-mode, etc., então eu dificilmente argumentaria que isso é obsoleto, e sim que sua importância está aumentando à medida que mais pessoas entram no desenvolvimento do Emacs e desejam seu pacotes estejam facilmente disponíveis para todos.
wasamasa

Atualizei minha resposta um pouco sobre esse assunto.
Chen bin

@wasamasa você pode explicar, por que exatamente eu precisaria do gnu elpa para pacotes como o auctex?
toogley 9/08/16

1
@toogley Como está disponível apenas no GNU ELPA, é por isso.
wasamasa
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.