Для автоматичного оновлення списку пакунків, лише якщо списку пакунків вже немає , використовуйте наступне:
(when (not package-archive-contents)
(package-refresh-contents))
Щоб оновити всі встановлені пакети, введіть package-list-packages
, який переведе вас до *Packages*
буфера (а також оновить список пакетів), а потім введіть U x.
package-refresh-contents
безумовно намагається завантажити список пакетів з усіх репостів, до яких ви додали package-archives
; package-archive-contents
не стоїть на нулі, якщо ви вже завантажили список пакунків.
ELPA - оригінал. Я не думаю, що це вже справді підтримується, але я не впевнений. Я не користуюся цим.
GNU є "офіційним". Він підтримується разом з Emacs, а це означає, що все має працювати завжди, але оновлення та нові пакунки не надто часто бувають.
Мармелад - це веб-сайт, на який ви можете завантажити повний пакет, і він буде доданий до репо-мармеладу. Ви не просто подаєте посилання на вихідний пакет, і це не зовсім автоматизує створення пакету. Я думаю, що це правильна річ, тому що вам не обов'язково хотіти відстежувати за течією. На жаль, воно деякий час не було збережене, але хтось нещодавно взяв його на озброєння, тому воно повинно повернутися і краще в якийсь момент.
Melpa бере URL-адресу, наприклад, EmacsWiki lisp area або github repo і автоматично створює пакет з нього. Таким чином, він, як правило, щодня не відстає від того, що він відстежує. Хоча це простежується вище за течією, у мене ніколи не було проблем на практиці, і саме звідси береться більшість моїх пакетів. Є також Melpa Stable , яка схожа на Melpa, але захоплює теги до версії репо за течією замість останньої редакції. Мельпа конюшня має менше пакетів, ніж Мельпа.
Режим Org має власне package.el
репо ( http://orgmode.org/elpa/ ).
Усі репост пакету працюють однаково, ви просто додаєте їх до своїх package-archives
.
Ось більш поглиблена публікація в блозі на цю тему, з якою я здебільшого згоден.
Я не впевнений, але я думаю, якщо пакет дублюється різними репостами, порядок, в якому вони з'являються, package-archives
визначає пріоритет. Я не знаю, чи вище пріоритет є на початку чи в кінці списку.
Оновлення: в Emacs 25 є змінна, package-archive-priorities
яку ви можете використовувати для визначення пріоритетності репост ваших пакетів (наприклад, віддайте перевагу ELPA перед MELPA).
package-archives
. Позбавтеся від архіву ELPA, який вже не підтримується, і архіву мармеладу, який є безладом застарілих та дублюваних пакетів без чітких рекомендацій та обслуговування. Використовуйте лише стандартний архів GNU, а MELPA>