Emacs. Управление пакетами. package

2025-01-25 · 2 мин. для прочтения

Emacs. Управление пакетами. package.

Содержание

1 Общая информация

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"))
    
Дмитрий Сергеевич Кулябов
Authors
Профессор кафедры теории вероятностей и кибербезопасности
Мои научные интересы включают физику, администрирование Unix и сетей.