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-packages
leva 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?
package
package-repositories
Jakub Arnold
fonte
fonte
Respostas:
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.
fonte
package-archives
acordo e atualizar o índice, como usandoM-x package-refresh-contents
.M-x list-packages
deve exibir uma lista diferente da anterior.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.tar
existe 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,
Esses pacotes são colocados no meu,
localelpa
entã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-contents
a 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.el
por exemplo.fonte