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"))