Хотя существует несколько тысяч библиотек Emacs Lisp, GNU Emacs, до версии 24.1 не было (внутреннего) менеджера пакетов.
Я предполагаю, что большинство пользователей согласятся с тем, что в настоящее время довольно неудобно находить, устанавливать и особенно поддерживать современные библиотеки Emacs Lisp.
Страницы, которые облегчают жизнь
Для версий Emacs старше 24.1:
- Emacs Lisp Список - Проблема: я вижу мертвых людей (ссылки).
- Emacswiki - Проблема: Может содержать следы орехов (вредоносный код).
- Emacsmirror - Репозиторий пакетов, над которым я работаю. Проблема: пакетный менеджер еще не поддерживает его.
Некоторые менеджеры пакетов
Не то, чтобы никто еще не пытался. (Некоторые из них не существовали, когда задавался этот вопрос.)
- автоматическая установка
- borg.el - ассимилировать пакеты Emacs с использованием подмодулей Git.
- el-get.el - поддерживает множество источников.
- elinstall.el
- epackage aka DELPS - концепции упаковки Debian, применяемые к пакетам Emacs Lisp.
- epkg.el - теперь это просто инструмент для просмотра Emacsmirror.
- install.el
- install-elisp.el
- jem-pkg.el
- package.el - ELPA. Похоже, он будет включен в Emacs 24.
UPDATE - package.el входит в состав GNU Emacs, начиная с версии 24.1
- pases.el
- pelm - установщик командной строки; используя php.
- plugin.el
- straight.el - Недавние и экспериментальные, еще не достигли версии 1.0.
- use-package.el
- Диспетчер пакетов XEmacs
был включен в соединительную линию Emacs. epkg еще не готов, а также в настоящее время недоступен. По крайней мере, install-elisp, plugin и use-package больше не поддерживаются.
Я создал Git репозиторий, содержащий все эти менеджеры пакетов в качестве подмодулей.
Некоторые утилиты, которые могут быть полезны
Менеджеры пакетов могут использовать эти утилиты и/или могут использоваться для поддержки зеркального отображения пакетов.
- date-calc.el - Процедуры расчета даты и разбора.
- ell.el - Просмотрите список Emacs Lisp.
- elm.el, elx.el, xpkg.el - Используется для поддержки Emacsmirror.
- genauto.el - Помогает генерировать автозагрузки для ваших пакетов elisp.
- inversion.el - Требует определенных версий пакета.
- loadhist.el, lib-require.el, elisp-depend.el - Команды для отображения зависимостей библиотеки Emacs Lisp.
- project-root.el - Определите корень проекта и выполните действия на его основе.
- strptime.el - Частичная реализация парсинга даты и времени POSIX.
- wikirel.el - Посетите соответствующие страницы в Emacs Wiki.
Обсуждения по предмету под рукой
Вопрос (наконец)
Итак - я хотел бы узнать от вас, что вы считаете важным/неважным/дополнительным и т.д. в диспетчере пакетов для Emacs.
Некоторые идеи
- Многие пакеты (Emacsmirror предоставляют самую большую доступную коллекцию пакетов, но пока нет явной поддержки в любом диспетчере пакетов).
- Только те пакеты, которые были протестированы.
- Поддержка нескольких архивов пакетов (так что люди могут выбирать между многими/проверенными пакетами).
- Зависимость, рассчитанная только на основе необходимых функций.
- Зависимости учитывают конкретные версии.
- Используйте только версии, выпущенные выше по течению.
- Используйте версии из систем управления версиями, если они доступны.
- Пакеты классифицируются.
- Пакеты могут быть удалены и обновлены не только.
- Поддержка создания вилки восходящей версии пакетов.
- Поддержка публикации этих вилок.
- Поддержка выбора вилки.
- После установки пакетов установки.
- Создание файлов автозагрузки.
- Интеграция с Emacswiki (см. wikirel.el).
- Пользователи могут помечать, комментировать и т.д. пакеты и делиться этой информацией.
- Только FSF-присвоенное/GPL/FOSS программное обеспечение или не заботятся о лицензии.
- Менеджер пакетов должен быть интегрирован с Emacs.
- Поддержка быстрого доступа к автору.
- Множество метаданных.
- Предложите альтернативы перед установкой определенного пакета.
Я надеюсь на эти ответы
- Указатели на другие реализации, обсуждения и т.д.
- Длинные описания набора функций, которые составляют ваш идеальный менеджер пакетов.
- Описание одной конкретной желаемой/нежелательной функции. Не стесняйтесь подробно излагать мои идеи сверху.
- Удивите меня.