Я створив локальний архів пакунків (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.