MELPA'ya sahipsem hâlâ GNU ELPA'ya ihtiyacım var mı?


31

Bu, her zaman kafamı karıştırdı, çünkü insanlar MELPA'nın daha yeni paket sürümleri olduğunu söylüyorlar, ancak GNU ELPA'nın sadece bir MELPA alt kümesi olması veya her ikisine de ihtiyacım olması durumunda net değil.

Sormamın nedeni paketlerimle ilgili çok fazla deney yapmak ve package-list-packagesbiraz zaman alıyor. Farkındayım package-list-packages-no-fetch, ancak çoğu zaman en son paket listesini almak istemem.

Öyleyse soru, MELPA'yı kullanabilir ve hem MELPA hem de GNU ELPA kullanıyormuşum gibi aynı (ve muhtemelen daha yeni sürümler) paketleri alabilir miyim?


5
Evet, her zaman GNU Elpa'ya ihtiyacınız olacak.
Malabarba

Yanıtlar:


45

Her şeyden önce, ELPA bir belirtimin adı olan Emacs Lisp Paket Arşivi'dir. Bu tarifnamenin bilinen üç uygulaması vardır: GNU ELPA, Marmalade ve MELPA.

GNU ELPA , yeterince yeni Emacs kurulumları için kutudan çıkarılmış resmi GNU Emacs arşividir. Nispeten küçüktür, katkıda bulunmak, telif hakkı tahsisi gerektirir ve resmi e-posta listesiyle işbirliği yapar. Bir Linux dağıtım paketi arşiviyle karşılaştırılabilir bir veterinere en yakın şey budur.

Marmelat , iyi paketlenmiş bir dizi paketi olan resmi olmayan bir arşivdir. Yazarların ve bakıcıların sürümlerini manuel olarak ona yüklemeleri gerekir. Her yeni üye için kullanıcı hesabı açılmadan önce bir kez oylama yapılır, bu işlem yapıldıktan sonra istedikleri şekilde serbest bırakılırlar.

MELPA en fazla miktarda paket içeren resmi olmayan bir arşivdir. Her paket, içerme için çekme isteğiyle kod stili için kısaca incelenir, ardından bu paketler otomatik olarak (genellikle VCS) kaynaklarından oluşturulur. Her saat başı yeniden oluşturma olabilir. Ayrıca, yalnızca etiketli sürümleri oluşturan, Marmelat'tan bile daha az paketi olan MELPA sabiti vardır.

Örtüşme gelince, GNU ELPA ve Marmelat arasında ve benzer şekilde GNU ELPA ve MELPA için örtüşme yoktur. Bununla birlikte, Marmelat ve MELPA adil bir miktar üst üste. Marmelat'ın çoğunun MELPA'nın bir alt kümesi olduğunu tahmin ediyorum. Bu nedenle çoğu paket için MELPA'ya ve birkaç tane eksik paket için GNU ELPA'ya gidebilirsiniz.

Güncelleme : malabarba'nın paket istatistiklerine göre MELPA Stable, mevcut paket sayısında Marmelade'i geçti. Şimdi Marmelat'ı seçerdim.

Güncelleme : Marmelat aslında öldü. Sertifikanın süresi doldu ve henüz yeni bir paket yüklenmedi. Bu alışılmadık bir işlem nedeniyle, kullanıcı tarafından sahibine elle eklenmesi gerekiyor ve o kaybolduğu için, 2016'dan bu yana hiçbir yeni kullanıcı eklenmedi.


Melpa + Gnu Elpa'ya benziyor ve Marmelat kullanmıyor olmanın yolu. Dönüştürmenin kolay bir yolu var mı?
justingordon

Sadece package-archivesbuna göre özelleştirin ve kullanmak gibi dizini güncelleyin M-x package-refresh-contents. M-x list-packagesöncekinden farklı bir liste göstermelidir.
wasamasa

... malarbaba paket istatistik Aralık 2015 sıkışmış gibi görünüyor
jeanpierre

Marmelat öldüğü için bir güncelleme daha ekledim
wasamasa

-5

Hayır, GNU ELPA veya herhangi bir ELPA'ya ihtiyacınız olmayabilir.

GNU ELPA veya herhangi bir üçüncü taraf deposunu kullanmamanın pratik nedeni, Emac'larımı ELPA kapanmasından korumaktır. Kapatma zaman zaman oldu (bkz. Https://www.reddit.com/r/emacs/search/?q=elpa%20down&restrict_sr=1 )

Paketlerimin çoğu https // melpa.org adresinden indirilir, GNU ELPA paketlerinden seçilmiş yerel bir paket ayna oluşturarak GNU ELPA'dan kaçınabilirim.

Benim ayarlarını kontrol edin https://github.com/redguardtoo/emacs.d/blob/master/lisp/init-elpa.el, GNU ELPA kullanılmaz.

Yalnızca bazı GNU ELPA paketlerini kullanmak zorunda kalırsam, bunun yerine kendi yerel ELPA'mı oluşturmayı tercih ederim (bir metin dosyası oluşturmak kadar basit archive-contents), Kontrol et ~/.emacs.d/localelpa.

Örneğin, seq-2.20.tarsadece GNU ELPA'da var ve buna ihtiyacım var. Bu yüzden bu paketi adresindeki yerel elpama ekledim.https://github.com/redguardtoo/emacs.d/tree/master/localelpa

Şu anda sadece GNU ELPA'dan dört paket kullanıyorum.

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

Bu paketler benim yerime yerleştirildiği için localelpaGNU ELPA'ya erişime ihtiyacım yok.

Ayrıca , yüklü paketlerden yerel bir veri havuzu oluşturan https://github.com/redguardtoo/elpa-mirror paketimi de kontrol edebilirsiniz . Bu yüzden uzak havuz (GNU ELPA, MELPA) bile artık isteğe bağlı.

İndirilen paketi yerine kaynak kullanabilirsiniz. Lütfen https://github.com/redguardtoo/emacs.d/tree/master/site-lisp adresini kontrol edin . rainbow-mode, Eğer kaynak kullanıyorsanız ne olduğunu load-path( http://emacswiki.org/emacs/LoadPath ) anlamanız gerekir .

Ayrıca package--add-to-archive-contentspaketleri paket yöneticisinde gösterilmeden önce çimdiklemenizi de tavsiye edebilirsiniz . Bu bir tür belgelenmemiş hack. Emacs 23.4'ten Emacs 27'ye çalışır init-elpa.el. Örneğin bakınız .


7
Ayrıca Auctex, seq.el, let-alist, rainbow-mode gibi paketler için GNU ELPA'ya ihtiyacınız var, bu yüzden eskiden çok daha fazla insan Emacs'ın gelişimine girerken ve bunun için dileklerini istediğinde öneminin arttığını iddia etmek istemiyorum. Paketler herkes için kolayca hazır olacak.
wasamasa

Bu konuda cevabımı biraz güncelledim.
chen bin

@ wasmamasa, lütfen neden auctex gibi paketler için gnu elpa'ya ihtiyacım olduğunu açıklayabilir misiniz?
toogley

1
@toogley Çünkü sadece GNU ELPA'da mevcut, bu yüzden.
wasamasa
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.