Я створив локальний архів пакунків (Emacs 24.5), використовуючи package.elспочатку створення двох каталогів, pkgsі local. (Імена не мають значення.) Файли, що містять ваші пакунки, надходять pkgsі localзберігають ваш архів. Якщо ви хочете зробити архів доступним для інших, ви можете експонувати localза допомогою веб-сервера, але процес такий же, як і створення локального архіву.
Я помістив у свій init.elфайл наступне :
(require 'package)
(setq package-enable-at-startup nil)
(require 'package-x)
(defvar local-archive
(expand-file-name "local/" user-emacs-directory)
"Location of the package archive.")
(setq package-archive-upload-base local-archive)
(add-to-list 'package-archives `("local" . ,local-archive) t)
(package-initialize)
Я розміщую свій архів у своєму .emacs.dкаталозі (звідси і user-emacs-directoryу expand-file-nameформі), але ви можете розмістити його де завгодно.
Після того, як це буде оцінено, виконайте M-x package-upload-fileі введіть ім'я файлу вашого пакета для встановлення. Це створить новий пакет в local. Ви побачите три нові файли там, archive-contents, yourpackagename-version.elі yourpackagename-readme.txt. Тепер ви маєте змогу це зробити M-x package-list-packagesі побачити ваш пакунок у списку. При удачі вони опиняться вгорі з позначкою "нові". Ви можете встановити пакунок як завжди, і ви побачите, що він відображається у вашому .emacs.d/elpaкаталозі, як і будь-який інший пакет.
Це повинно вийти з коробки для Emacs 24. Я не впевнений у попередніх версіях. Ваші користувачі можуть отримати доступ до вашого пакету звичайним способом, включивши їх
(require 'package)
(setq package-enable-at-startup nil)
(add-to-list 'package-archives
'("archive" . "http://yourdomain.com/path-to-local-dir/"))
(package-initialize)
у їхньому init.elфайлі.
Для отримання інформації про те, як написати пакет, див. Підготовка коду Lisp до розповсюдження в посібнику GNU Emacs Lisp.