Skonfigurowałem lokalne archiwum pakietów (Emacs 24.5) przy użyciu package.el, najpierw tworząc dwa katalogi pkgsi local. (Nazwy nie mają znaczenia.) Pliki wchodzące w skład twoich pakietów wchodzą pkgsi localkończą się przechowywaniem twojego archiwum. Jeśli chcesz udostępnić archiwum innym osobom, możesz udostępnić je localza pomocą serwera WWW, ale proces jest taki sam jak w przypadku tworzenia lokalnego archiwum.
W moim init.elpliku umieszczam:
(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)
Umieszczam moje archiwum w moim .emacs.dkatalogu (stąd user-emacs-directoryw expand-file-nameformularzu), ale możesz je umieścić w dowolnym miejscu.
Po dokonaniu oceny, uruchom M-x package-upload-filei wprowadź nazwę pliku pakietu, który chcesz zainstalować. Spowoduje to wygenerowanie nowego pakietu w local. Będzie można zobaczyć trzy nowe pliki w tam archive-contents, yourpackagename-version.eli yourpackagename-readme.txt. Teraz powinieneś być w stanie to zrobić M-x package-list-packagesi zobaczyć swój pakiet na liście. Przy odrobinie szczęścia znajdą się na górze z oznaczeniem „nowy”. Możesz zainstalować pakiet jak zwykle, a zobaczysz, że pojawia się on w twoim .emacs.d/elpakatalogu, tak jak każdy inny pakiet.
Powinno to działać od razu z Emacsem 24. Nie jestem pewien co do wcześniejszych wersji. Użytkownicy mogą uzyskać dostęp do pakietu w zwykły sposób, włączając
(require 'package)
(setq package-enable-at-startup nil)
(add-to-list 'package-archives
'("archive" . "http://yourdomain.com/path-to-local-dir/"))
(package-initialize)
w ich init.elaktach.
Aby uzyskać informacje na temat pisania pakietu, patrz Przygotowanie kodu Lisp do dystrybucji w podręczniku GNU Emacs Lisp.