Zawsze mnie to myliło, ponieważ ludzie mówią, że MELPA ma nowsze wersje pakietów, ale nie jest do końca jasne, czy GNU ELPA jest tylko podzbiorem MELPA, czy też potrzebuję obu?
Powodem, dla którego pytam, jest to, że dużo eksperymentuję z moimi pakietami i package-list-packages
zajmuje to sporo czasu. Jestem tego świadomy package-list-packages-no-fetch
, ale najczęściej chciałbym uzyskać najnowszą listę pakietów.
Pytanie brzmi: czy mogę po prostu użyć MELPA i uzyskać te same (i prawdopodobnie nowsze wersje) pakiety, jak gdybym używał zarówno MELPA, jak i GNU ELPA?
package
package-repositories
Jakub Arnold
źródło
źródło
Odpowiedzi:
Przede wszystkim ELPA to nazwa specyfikacji, Emacs Lisp Package Archive. Istnieją trzy powszechnie znane implementacje tej specyfikacji: GNU ELPA, Marmalade i MELPA.
GNU ELPA to oficjalne archiwum GNU Emacs, dostępne od razu po instalacji dla wystarczająco nowych instalacji Emacsa. Jest stosunkowo niewielki, a jego udział wymaga przypisania praw autorskich i współpracy z oficjalną listą mailingową. Jest to najbliższa rzecz, którą musimy zweryfikować, porównywalną do archiwum pakietu dystrybucyjnego Linuksa.
Marmolada to nieoficjalne archiwum z dużą ilością wersjonowanych pakietów. Autorzy i opiekunowie muszą ręcznie przesłać swoje wydania. Sprawdzanie odbywa się raz dla każdego nowego członka, zanim pozwoli mu mieć konto użytkownika, a po tym można je zwolnić według własnego uznania.
MELPA to kolejne nieoficjalne archiwum z największą liczbą pakietów. Każdy pakiet jest krótko sprawdzany pod kątem stylu kodu z prośbą o włączenie, po czym pakiety są automatycznie budowane ze źródeł (zwykle VCS). Odbudowy mogą się zdarzać co godzinę. Istnieje również stabilna wersja MELPA, która buduje tylko oznaczone wydania, ale ma o wiele mniej pakietów, mniej nawet niż Marmalade.
Jeśli chodzi o nakładanie się, GNU ELPA i Marmolada praktycznie nie pokrywają się, podobnie jak w przypadku GNU ELPA i MELPA. Marmolada i MELPA pokrywają się jednak w sporej wysokości. Oceniłbym, że większość Marmolady jest podzbiorem MELPA. Dlatego możesz wybrać MELPA dla większości pakietów, a może GNU ELPA dla kilku brakujących.
Aktualizacja : Według statystyk paczki malabarba MELPA Stable przewyższyła Marmalade pod względem liczby dostępnych pakietów. Wybrałbym to bardziej niż Marmoladę.
Aktualizacja : Marmolada jest zasadniczo martwa. Certyfikat wygasł i nie przesłano prawie żadnych nowych pakietów. Wynika to z jego dość nietypowego procesu, musisz zostać ręcznie dodany do użytkowników przez jego właściciela, a ponieważ zaginął, od 2016 r. Nie dodano żadnych nowych użytkowników.
źródło
package-archives
odpowiednio dostosuj i zaktualizuj indeks, na przykład za pomocąM-x package-refresh-contents
.M-x list-packages
powinien wyświetlić inną listę niż poprzednio.Nie, możesz nie potrzebować GNU ELPA ani żadnej ELPA.
Praktycznym powodem, aby nie używać GNU ELPA ani repozytorium strony trzeciej jest ochrona mojego Emacsa przed zamknięciem ELPA. Od czasu do czasu dochodziło do wyłączenia (patrz https://www.reddit.com/r/emacs/search/?q=elpa%20down&restrict_sr=1 )
Większość moich pakietów jest pobieranych z https // melpa.org, mogłem uniknąć GNU ELPA, tworząc małe lokalne odbicie lustrzane wybranych pakietów GNU ELPA.
Sprawdź moją konfigurację na
https://github.com/redguardtoo/emacs.d/blob/master/lisp/init-elpa.el
, GNU ELPA nie jest używane.Jeśli muszę użyć niektórych pakietów tylko GNU ELPA, wolałbym zamiast tego utworzyć własny lokalny ELPA (to tak proste, jak utworzenie pliku tekstowego
archive-contents
), sprawdź mój~/.emacs.d/localelpa
.Na przykład
seq-2.20.tar
istnieją tylko w GNU ELPA i potrzebuję tego. Więc dodaję ten pakiet do mojej lokalnej elpy pod adresemhttps://github.com/redguardtoo/emacs.d/tree/master/localelpa
Obecnie korzystam tylko z czterech pakietów GNU ELPA,
Te pakiety są umieszczone w moim,
localelpa
więc nie potrzebuję dostępu do GNU ELPA.Możesz również sprawdzić mój pakiet https://github.com/redguardtoo/elpa-mirror, który tworzy lokalne repozytorium z zainstalowanych pakietów. Tak więc nawet zdalne repozytorium (GNU ELPA, MELPA) jest teraz opcjonalne.
Możesz również użyć pakietu źródłowego zamiast pobranego. Sprawdź https://github.com/redguardtoo/emacs.d/tree/master/site-lisp .
rainbow-mode
, Musisz zrozumieć, co jestload-path
( http://emacswiki.org/emacs/LoadPath ), jeśli używasz źródła.Możesz także doradzić,
package--add-to-archive-contents
jak ulepszyć paczki, zanim zostaną wyświetlone w menedżerze pakietów. To rodzaj nieudokumentowanego włamania. Działa od Emacsa 23.4 do Emacsa 27. Zobaczinit-elpa.el
na przykład.źródło