Skorzystaj z opcji, package-archive-priorities
która została stworzona do tego właśnie celu. Aby preferować stabilną wersję MELPA niż MELPA, dodaj następujące pliki do pliku init:
(setq package-archives
'(("GNU ELPA" . "https://elpa.gnu.org/packages/")
("MELPA Stable" . "https://stable.melpa.org/packages/")
("MELPA" . "https://melpa.org/packages/"))
package-archive-priorities
'(("MELPA Stable" . 10)
("GNU ELPA" . 5)
("MELPA" . 0)))
Im wyższy numer, tym wyższy priorytet archiwum pakietu. W przypadku każdego pakietu, który istnieje w wielu archiwach, menedżer pakietów Emacsa wybiera pakiet z archiwum o najwyższym priorytecie i ignoruje pakiety w innych archiwach, nawet jeśli numer wersji jest wyższy. Jeśli pakiet istnieje w dwóch archiwach o tym samym priorytecie, wyższy numer wersji wygrywa, a ostatecznie myślę, że kolejność w package-archives
.
Zalecam jawne przypisanie priorytetu wszystkim archiwom, w tym domyślnemu archiwum GNU ELPA, aby uniknąć niejasności. Chociaż archiwa, które nie package-archive-priorities
mają domyślnego priorytetu 0, zbyt łatwo o tym zapomnieć.
package-archive-priorities
został wprowadzony w Emacsie 25.1, dla wcześniejszych wydań zobacz starą odpowiedź poniżej:
W Emacsie 24 domyślnie nie jest możliwe ustawienie MELPA Stable i używanie MELPA tylko dla określonych pakietów w ogólny sposób. Bez żadnego pakietu dostosowywania. Domyślnie archiwum udostępnia najwyższą wersję , czyli MELPA. Nie ma interfejsu, aby to zmienić.
Jednak od Emacsa 24.4 nowa opcja package-pinned-packages
umożliwia przypinanie poszczególnych pakietów do archiwów, ale pozwala to na implementację odwrotności twojego wymagania: Domyślnie na MELPA i użycie MELPA Stabilny dla określonych pakietów.
Dlatego obecnie jedyną opcją jest wypełnienie package-pinned-packages
wszystkich pakietów, których chcesz użyć, ręcznie lub przy pomocy kodu Emacsa Lisp. Uwaga: package-pinned-packages
należy to ustawić przed wywołaniem, package-refresh-contents
ponieważ przypinanie jest oceniane podczas budowania indeksu pakietu , a nie podczas instalowania pakietów.
Długofalowym rozwiązaniem byłoby M-x report-emacs-bug
poproszenie programistów Emacsa o zaimplementowanie jakiejś funkcji „domyślnego archiwum” lub poproszenie opiekuna sopli o wykonanie odpowiednio oznakowanych wydań, aby MELPA Stable mógł zbudować dla niego stabilne pakiety. Żadne też nie może okazać się łatwe, ponieważ pierwszy wymaga większych zmian w package.el, a drugi, że sople są przenoszone z EmacsWiki do odpowiedniego repozytorium VCS z tagami, co, jak sądzę, jego opiekun nie jest skłonny zrobić, ponieważ gdyby byli, zrobiliby to dawno temu.