Emacs. Управление пакетами. package
2025-01-25
·
2 мин. для прочтения
Emacs. Управление пакетами. package.
Содержание
1 Общая информация
- Документация: https://www.gnu.org/software/emacs/manual/html_node/emacs/Packages.html
- Встроенный пакет Emacs для управления пакетами.
2 Основные операции
- Обновить пакеты:
package-upgrade,package-upgrade-all. - Удалить пакеты:
package-delete.
3 Установка пакетов репозитория
- По умолчанию
package-installзагружает пакет из архива и устанавливает его файлы. - Можно установить и напрямую из репозитория.
- Можно установить, используя
package-vc-install. - Просто клонировать источник пакета, не добавляя его в список пакетов:
package-vc-checkout.
3.1 Указание источников пакетов
Чтобы установить пакет из исходного кода, Emacs должен знать, где взять исходный код пакета (например, репозиторий кода) и основные информация о структуре кода (например, основной файл в многофайловый пакет).
Emacs может автоматически загрузить спецификацию пакета из указанного архива, если первый аргумент у
package-vc-install— это символьное название пакета:;; Emacs will download BBDB's specification from GNU ELPA (package-vc-install 'bbdb)Основные ключи для описания пакета:
:url(строка) : URL-адрес, указывающий репозиторий, из которого следует получить исходный код пакета;:branch(строка) : версия кода для установки;:lisp-dir(строка) : относительное имя каталога для репозитория; по умолчанию загружаются файлы, которые находятся в корневом каталоге репозитория;- Поскольку указывается только строка (а не список строк), не понятно, как устанавливать пакеты, файлы которых находятся в нескольких каталогах.
- Пока использую straight или quelpa.
:main-file(строка) : основной файл проекта, из которого можно собрать метаданные пакета; если не указано, по умолчанию используется имя пакета;:doc(строка) : имя документации относительно репозитория;:vc-backend(символ) : бэкэнд для загрузки копии репозитория.
Пример:
;; Specifying information manually: (package-vc-install '(bbdb :url "https://git.savannah.nongnu.org/git/bbdb.git" :lisp-dir "lisp" :doc "doc/bbdb.texi"))