Ho ancora bisogno di GNU ELPA se ho MELPA?


31

Questo mi ha sempre confuso, dal momento che la gente dice che MELPA ha versioni più recenti di pacchetti, ma non è davvero chiaro se GNU ELPA è solo un sottoinsieme di MELPA o se ho bisogno di entrambi?

Il motivo per cui lo sto chiedendo è che sto sperimentando molto con i miei pacchetti, e package-list-packagesrichiede parecchio tempo. Sono a conoscenza package-list-packages-no-fetch, ma il più delle volte mi piacerebbe ottenere l'elenco dei pacchetti più recente.

Quindi la domanda è: posso semplicemente usare MELPA e ottenere gli stessi (e possibilmente versioni più recenti) pacchetti come se avessi usato sia MELPA che GNU ELPA?


5
Sì, avrai sempre bisogno di GNU Elpa.
Malabarba,

Risposte:


45

Innanzitutto, ELPA è il nome di una specifica, l'Emacs Lisp Package Archive. Ci sono tre implementazioni ampiamente conosciute di quella specifica, GNU ELPA, Marmalade e MELPA.

GNU ELPA è l'archivio Emacs GNU ufficiale, abilitato per le installazioni Emacs sufficientemente nuove. È relativamente piccolo, il suo contributo richiede l'assegnazione del copyright e la collaborazione con la mailing list ufficiale. È la cosa più vicina a un controllo comparabile a un archivio di pacchetti di distribuzione Linux.

Marmalade è un archivio non ufficiale con una buona quantità di pacchetti con versione. Gli autori e i manutentori devono caricare manualmente le loro versioni. La verifica viene effettuata una volta per ogni nuovo membro prima di consentire loro di avere un account utente, dopodiché sono liberi di rilasciare come desiderano.

MELPA è un altro archivio non ufficiale con il maggior numero di pacchetti. Ogni pacchetto viene brevemente controllato per lo stile del codice con la sua richiesta pull per l'inclusione, dopo che i pacchetti vengono automaticamente compilati dalle loro fonti (di solito VCS). Le ricostruzioni possono avvenire ogni ora. C'è anche MELPA stabile che costruisce solo versioni con tag, ma ha molti meno pacchetti, meno persino di Marmalade.

Per quanto riguarda la sovrapposizione, non vi è praticamente alcuna sovrapposizione tra GNU ELPA e Marmalade, e allo stesso modo per GNU ELPA e MELPA. Marmalade e MELPA si sovrappongono tuttavia in modo discreto. Stimerei che gran parte di Marmalade sia un sottoinsieme di MELPA. Ecco perché puoi scegliere MELPA per la maggior parte dei pacchetti e forse GNU ELPA per alcuni dei pacchetti mancanti.

Aggiornamento : Secondo le statistiche sui pacchetti di malabarba, MELPA Stable ha superato Marmalade nel numero di pacchetti disponibili. Lo prenderei su Marmalade ora.

Aggiornamento : Marmalade è essenzialmente morto. Il certificato è scaduto e non ci sono quasi nuovi pacchetti caricati. Ciò è dovuto al suo processo piuttosto insolito, devi essere aggiunto manualmente agli utenti dal suo proprietario e poiché è scomparso, dal 2016 non sono stati aggiunti nuovi utenti.


Sembra che Melpa + Gnu Elpa, e non usando Marmalade, sia la strada da percorrere. Qualche modo semplice per convertire?
justingordon,

Personalizza di package-archivesconseguenza e aggiorna l'indice, come usando M-x package-refresh-contents. M-x list-packagesdovrebbe visualizzare un elenco diverso rispetto a prima.
Wasamasa,

Sembra che le statistiche del pacchetto di Malarbaba siano bloccate a dicembre 2015 ...
JeanPierre il

Ho aggiunto un altro aggiornamento perché Marmalade è morta
wasamasa,

-5

No, potrebbe non essere necessario ELPA GNU o ELPA.

Il motivo pratico per non utilizzare GNU ELPA o repository di terze parti è proteggere i miei Emacs dalla chiusura di ELPA. Di tanto in tanto l'arresto è avvenuto (vedi https://www.reddit.com/r/emacs/search/?q=elpa%20down&restrict_sr=1 )

La maggior parte dei miei pacchetti sono scaricati da https // melpa.org, potrei evitare GNU ELPA creando un piccolo mirror locale di pacchetti GNU ELPA selezionati.

Controlla la mia configurazione su https://github.com/redguardtoo/emacs.d/blob/master/lisp/init-elpa.el, GNU ELPA non viene utilizzato.

Se devo usare alcuni pacchetti ELPA solo per GNU, preferirei invece creare il mio ELPA locale (è semplice come creare un file di testo archive-contents), Controlla il mio ~/.emacs.d/localelpa.

Ad esempio, seq-2.20.taresiste solo presso GNU ELPA e ne ho bisogno. Quindi aggiungo questo pacchetto nel mio elpa locale all'indirizzohttps://github.com/redguardtoo/emacs.d/tree/master/localelpa

Attualmente utilizzo solo quattro pacchetti di GNU ELPA,

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

Questi pacchetti sono inseriti nel mio, localelpaquindi non ho bisogno di accedere a GNU ELPA.

Puoi anche controllare il mio pacchetto https://github.com/redguardtoo/elpa-mirror che crea un repository locale dai pacchetti installati. Quindi anche il repository remoto (GNU ELPA, MELPA) è opzionale ora.

Puoi anche usare il pacchetto sorgente invece scaricato. Si prega di controllare https://github.com/redguardtoo/emacs.d/tree/master/site-lisp . rainbow-mode, È necessario comprendere cosa load-path( http://emacswiki.org/emacs/LoadPath ) se si utilizza source.

Puoi anche consigliare package--add-to-archive-contentsdi modificare i pacchetti prima che vengano visualizzati in Gestione pacchetti. Questo è un tipo di hack non documentato. Funziona da Emacs 23.4 a Emacs 27. Vedi init-elpa.elad esempio.


7
Hai anche bisogno di GNU ELPA per pacchetti come Auctex, seq.el, let-alist, modalità arcobaleno, ecc. Quindi difficilmente sostengo che sia obsoleto, piuttosto che la sua importanza sta aumentando mentre più persone entrano nello sviluppo di Emacs e desiderano il loro pacchetti per essere facilmente disponibili per tutti.
Wasamasa,

Ho aggiornato un po 'la mia risposta su questo problema.
chen bin,

@wasamasa puoi spiegarmi, perché esattamente avrei bisogno di gnu elpa per pacchetti come auctex?
toogley,

1
@toogley Perché è disponibile solo su GNU ELPA, ecco perché.
wasamasa,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.