Використовуйте варіант, package-archive-priorities
який був зроблений саме для цієї мети. Щоб віддати перевагу MELPA Stable перед MELPA, додайте у свій файл 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)))
Чим вище число, тим вище пріоритет архіву пакетів. Для будь-якого пакету, який існує в декількох архівах, менеджер пакунків Emacs вибирає пакет з архіву з найвищим пріоритетом і ігнорує пакети в інших архівах, навіть якщо номер версії вище. Якщо пакет існує в двох архівах з однаковим пріоритетом, вища кількість версій виграє, і в кінцевому рахунку я думаю, що порядок в package-archives
.
Я рекомендую чітко призначити пріоритет для всіх архівів, включаючи архів GNU ELPA за замовчуванням, щоб уникнути будь-яких неясностей. Хоча архіви, у яких немає, package-archive-priorities
мають пріоритет за замовчуванням 0, це все занадто просто забути.
package-archive-priorities
була представлена в Emacs 25.1, про більш ранні випуски див. стару відповідь нижче:
У програмі Emacs 24 за замовчуванням MELPA Stable неможливо та використовувати MELPA лише для конкретних пакетів загальним способом. Без будь- якого пакета налаштування.el за замовчуванням до архіву, що забезпечує найвищу версію , MELPA. Немає інтерфейсу, щоб це змінити.
Однак, як і в Emacs 24.4, нова опція package-pinned-packages
дозволяє закріплювати окремі пакети до архівів, але це дозволяє лише реалізувати зворотну вимогу: за замовчуванням до MELPA та використовувати MELPA Stable для конкретних пакетів.
Отже, на даний момент ваш єдиний варіант - заповнити package-pinned-packages
всі пакунки, які ви хочете використовувати, вручну або частиною коду Emacs Lisp. Зауважте, що його package-pinned-packages
потрібно встановити перед викликом, package-refresh-contents
тому що закріплення оцінюється під час створення індексу пакету , а не при встановленні пакетів.
Довгостроковим рішенням було б M-x report-emacs-bug
попросити розробників Emacs впровадити якусь функцію «архіву за замовчуванням» або попросити керівника бурульок зробити належним чином теги випусків, щоб MELPA Stable могла створювати для нього стабільні пакети. Це не може виявитись простим, оскільки перший вимагає великих змін у package.el, а другий, що бурульки переміщуються з EmacsWiki в якесь правильне сховище VCS з тегами, яке, я вважаю, його підтримувач не бажає робити, для якби вони були, вони це зробили б давно.