Spec-Zone.ru › Elisp

Создание и поддержание архивов пакетов

Пользователи могут загружать пакеты из архивов пакетов через меню «Пакеты». Такие архивы задаются переменной package-archives, значение которой по умолчанию перечисляет архивы, размещённые на GNU ELPA и non-GNU ELPA. В этом разделе описывается, как настроить и поддерживать архив пакетов.

Параметр пользователя: package-archives

Значение этой переменной представляет собой список архивов пакетов, распознаваемых менеджером пакетов Emacs.

Каждый элемент списка соответствует одному архиву и должен иметь вид (id . location), где id — имя архива (строка), а location — его базовое расположение (строка).

Если базовое расположение начинается с ‘http:’ или ‘https:’, оно рассматривается как URL HTTP(S), и пакеты загружаются из этого архива через HTTP(S) (как в случае с архивом GNU по умолчанию).

В противном случае базовое расположение должно быть именем каталога. В этом случае Emacs извлекает пакеты из этого архива с помощью обычного доступа к файлам. Такие локальные архивы в основном полезны для тестирования.

Архив пакетов — это просто каталог, в котором хранятся файлы пакетов и связанные с ними файлы. Если вы хотите, чтобы архив был доступен через HTTP, этот каталог должен быть доступен веб-серверу; см. Веб-сервер архива.

Удобный способ настройки и обновления архива пакетов — с помощью библиотеки package-x. Она включена в Emacs, но по умолчанию не загружается; введите M-x load-library RET package-x RET, чтобы загрузить её, или добавьте (require 'package-x) в свой файл инициализации. См. Библиотеки Lisp в Справочнике по GNU Emacs.

После создания архива помните, что он недоступен в интерфейсе меню «Пакеты», если он не находится в package-archives.

Поддержание публичного архива пакетов влечёт за собой определённую ответственность. Когда пользователи Emacs устанавливают пакеты из вашего архива, эти пакеты могут заставить Emacs выполнить произвольный код с правами устанавливающего пользователя. (Это справедливо для кода Emacs вообще, а не только для пакетов.) Поэтому вы должны гарантировать, что ваш архив хорошо поддерживается и что система хостинга безопасна.

Один из способов повышения безопасности ваших пакетов — подписание их с помощью криптографического ключа. Если у вас есть пара открытый/закрытый ключей gpg, вы можете использовать gpg для подписания пакета следующим образом:

gpg -ba -o file.sig file

Для пакета из одного файла file — это файл Lisp пакета; для пакета из нескольких файлов — это архивный файл tar пакета. Вы также можете подписать файл содержимого архива таким же способом. Сделайте файлы .sig доступными в том же расположении, что и пакеты. Вам также следует сделать свой открытый ключ доступным для загрузки; например, загрузить его на сервер ключей, такой как https://pgp.mit.edu/. Когда люди устанавливают пакеты из вашего архива, они могут использовать ваш открытый ключ для проверки подписей.

Полное объяснение этих вопросов выходит за рамки этого руководства. Более подробную информацию о криптографических ключах и подписи см. в GnuPG в Справочнике по GNU Privacy Guard. Emacs поставляется с интерфейсом к GNU Privacy Guard, см. EasyPG в Справочнике помощника EasyPG Emacs.

Copyright © 1990-1996, 1998-2022 Free Software Foundation, Inc.
Licensed under the GNU GPL license.
https://www.gnu.org/software/emacs/manual/html_node/elisp/Package-Archives.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API