Używam stabilnej dla melpy jako dodatkowego repozytorium pakietów, ale jeden z pakietów, których lubię używać (sople), nie jest dostępny dla stabilnej dla melpy. Czy jest jakiś sposób, aby skonfigurować pakiet.el tak, aby normalnie używał stabilnej dla Melpy, ale używałby Melpy dla określonego podzbioru pakietów?
package
package-repositories
icicles
Timo Geusch
źródło
źródło
icicles
melpy.Odpowiedzi:
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: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.źródło
Tutaj masz dyskusję na temat korzystania z obu repozytoriów równolegle, więc powinno to być możliwe w 24.4; próbowałeś na przykład z defunsem zaktualizować listę repozytoriów , a następnie wymagać paradoksu i wreszcie wrócić do oryginalnej listy repozytoriów?
źródło