O GNU ELPA é o repositório oficial do pacote GNU Emacs. É o único ativado por padrão, o que significa que tem o maior alcance. Ao mesmo tempo, enviar um pacote é um pouco complicado e requer uma atribuição de direitos autorais da FSF, o que significa que ele possui uma seleção relativamente limitada de pacotes.
MELPA e Marmalade são repositórios de pacotes de terceiros. Eles não são oficialmente suportados pelo GNU, mas também têm seleções muito maiores de pacotes. A qualidade do pacote é um pouco mais variável, mas é muito mais provável que você encontre o que procura, especialmente se for um pouco obscuro.
Marmalade e MELPA têm modelos ligeiramente diferentes para uploaders de pacotes. Meu entendimento é que o MELPA rastreia um repositório de controle de versão diretamente (ou seja, via GitHub), permitindo que os autores do pacote atualizem pacotes apenas pressionando commits para uma ramificação. O Marmalade, por outro lado, faz com que as pessoas enviem pacotes para o repositório explicitamente.
Na prática, não vi muita diferença entre MELPA e Marmalade. Não há muita desvantagem em permitir que os dois tenham a maior seleção possível de pacotes instaláveis: estou usando os dois (e o GNU ELPA, é claro) há um tempo sem problemas significativos.
Uma possível preocupação (que eu ainda não encontrei) em ter os dois repositórios ativados, e que não encontrei em mim mesmo, é ter pacotes disponíveis em ambos em versões diferentes. Por padrão, o gerenciador de pacotes ( package.el
) não tem como resolver conflitos como este; no entanto, você pode resolver isso instalando o melpa
pacote que permite personalizar quais pacotes são fornecidos ou excluídos de quais repositórios. Você pode ver mais detalhes aqui ou na documentação do melpa
pacote.
Como o @Malabarba apontou, este problema foi resolvido no Emacs 24.4.
Se você está realmente preocupado com a segurança, evite o MELPA e o Marmalade porque eles permitem que qualquer pessoa faça o upload de pacotes e, até onde eu saiba, não tenha nenhum acordo de segurança proativo. O repositório GNU ELPA, por outro lado, é gerenciado pela FSF e assinou pacotes que devem ajudar. Obviamente, se a segurança é realmente importante, você pode revisar e instalar os pacotes elisp manualmente, em vez de usar o gerenciador de pacotes.
Na minha opinião, alguns repositórios têm mais sobrecarga no envio de pacotes do que outros; os repositórios com mais sobrecarga tendem a ter menos pacotes. Na ordem do mais ao menos sobrecarga:
Pessoalmente, acho que MELPA Stable ou Marmalade provavelmente vencerão a longo prazo para a maioria dos usuários - o MELPA propriamente dito é bastante instável e o ELPA é muito restritivo para ser realmente escalável para muitos pacotes. Mas isso é apenas uma opinião.
fonte
Existem vários repositórios de pacotes disponíveis.
Oficial
GNU ELPA é o repositório oficial de pacotes. É pequeno e requer a atribuição de direitos autorais (de todos os autores de um pacote) para a FSF para contribuir com ele.
Pacotes no GNU ELPA são realmente apenas um repositório git . A vantagem de ser hospedado aqui é que a equipe principal tenta atualizar pacotes se o próprio Emacs adicionar ou descontinuar recursos.
Construído a partir da fonte
MELPA é o maior e mais rápido repositório de pacotes. Ele lança uma nova versão toda vez que uma nova versão é enviada para um repositório ou uma página do EmacsWiki é atualizada.
É uma vantagem, mas funciona muito bem na prática. O MELPA é organizado para evitar pacotes duplicados e para garantir que a casa canônica do pacote seja registrada (em vez de um fork aleatório).
O MELPA tem o problema de que as versões são apenas timestamps, por exemplo
my-package-20131231.2359
. Isso significa que se você depende do meu pacote:então o Emacs pensará que qualquer versão do MELPA é nova o suficiente.
MELPA Estável é o mesmo que MELPA, mas, em vez de usar versões de data e hora, ele usa as versões nas tags git. Isso permite uma melhor resolução de dependência, mas tem problemas com a dependência dos pacotes wiki .
Uploads de usuários
Marmalade é muito mais como um repositório tradicional de outras linguagens de programação. O desenvolvedor do pacote faz o upload do pacote para o Marmalade quando ele faz um lançamento.
Em princípio, isso fornece aos pacotes um processo de liberação adequado (o Marmalade é anterior ao MELPA estável) e também evita o problema do número de versão gerado automaticamente. No entanto, não há verificação de identidade. Qualquer pessoa pode fazer upload de um pacote, mesmo que não o tenha escrito. Isso fica difícil se o mantenedor de
my-package
descobrir que outra pessoa envioumy-package
e não pode posteriormente carregar novas versões.O Marmalade costumava ser um aplicativo node.js. Agora está escrito em elisp. Ambas as versões tiveram problemas de tempo de atividade ocasionalmente.
Projeto específico
O ELPA em modo de organização é um repositório que apenas hospeda
org
eorg-plus-contrib
. O modo organizacional faz parte do núcleo do Emacs, mas é desenvolvido externamente e o código é sincronizado apenas com o tronco do Emacs periodicamente. Esse repositório permite que você tenha o modo organizacional de ponta.O User42 ELPA é um repositório para um único desenvolvedor de pacotes que lançou diversos pacotes do Emacs . Se você gosta de algum dos pacotes dele, pode adicionar este repositório.
O Sunrise Commander ELPA é um repositório de extensões para o Sunrise Commander (um pacote Emacs para navegação de arquivos, inspirado no comandante da meia-noite).
Aposentado
O ELPA da Tromey foi o primeiro repo criado. Ele foi oficialmente substituído pelo GNU ELPA, mas não tinha os mesmos requisitos de atribuição de direitos autorais. A partir de 2010, ele não é mais atualizado.
O arquivo de pacotes Elpy continha vários pacotes desenvolvidos por Jorgen Schaefer para 'Elpy, o Emacs Python Development Environment' , mas que foi migrado para o MELPA Stable.
fonte
no one has mentioned the risks involved in using github, a commercial provider of web based software, as a backend
: Mas eu tenho certeza que essas preocupações vão desaparecer agora que é Microsoft GitHub;-)
Algumas informações adicionais, para complementar as outras respostas aqui.
Algumas informações sobre MELPA e MELPA "estável" -
Comece examinando essa pergunta praticamente duplicada , no StackOverflow, incluindo os comentários da própria pergunta. Em particular, este comentário que publiquei, depois de trocar e-mails com Donald Curtis (mantenedor do MELPA e do MELPA estável):
Em resumo, não há nada inerentemente mais "estável" no conteúdo de "MELPA estável" . A numeração da versão e o método de alimentação podem ser diferentes; Isso é tudo. E se um mantenedor de pacote específico deseja distinguir versões "estáveis" de "desenvolvimento" e deseja fazer isso enviando-as para os dois sites diferentes, esse é o efeito - para esse pacote .
Uma diferença entre MELPA e Marmalade (e GNU ELPA) é que não é necessário que o código contribuído para MELPA seja originado de um repositório git. Em particular, ele pode ser extraído automaticamente da Área Elisp do Wiki do Emacs .
Isso significa, como alguns já disseram, que qualquer pessoa pode fazer upload de qualquer coisa, e você não tem como saber se o código é realmente do autor reivindicado, etc.? Sim e não. Em geral, sim: qualquer pessoa é livre para fazer o upload do código Elisp no Emacs Wiki. Como o topo da página Elisp-Area diz:
No entanto, só para você saber, eu sou um administrador do wiki e minhas próprias bibliotecas Lisp na área Elisp do wiki são páginas bloqueadas. Isso significa que apenas um administrador do wiki pode enviá-los. Portanto, nesse caso, você pode ter certeza de que as bibliotecas minhas que você baixa do MELPA ou do Emacs Wiki foram carregadas por mim. Como em tudo na Internet, no entanto, não há garantia garantida, assim como não há garantia no próprio código. Como diz a sinopse da GPL em todas as bibliotecas da GPL:
HTH. Feliz hacking.
fonte