Ich habe ein lokales Paketarchiv (Emacs 24.5) eingerichtet, package.elindem ich zuerst zwei Verzeichnisse erstellt habe, pkgsund local. (Die Namen spielen keine Rolle.) Die Dateien, aus denen Ihre Pakete bestehen, gehen ein pkgsund localwerden Ihr Archiv enthalten. Wenn Sie ein Archiv für andere verfügbar machen möchten, können Sie es localüber einen Webserver verfügbar machen. Der Vorgang entspricht jedoch dem Erstellen eines lokalen Archivs.
Ich habe Folgendes in meine init.elAkte aufgenommen:
(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)
Ich habe mein Archiv in mein .emacs.dVerzeichnis gestellt (daher user-emacs-directoryin das expand-file-nameFormular), aber Sie können es an einer beliebigen Stelle ablegen.
Sobald dies ausgewertet ist, führen Sie aus M-x package-upload-fileund geben Sie den Dateinamen Ihres zu installierenden Pakets ein. Dadurch wird ein neues Paket in generiert local. Sie werden in drei neue Dateien sehen, archive-contents, yourpackagename-version.el, und yourpackagename-readme.txt. Jetzt sollten Sie in der Lage sein, M-x package-list-packagesIhr Paket aufzulisten und zu sehen. Mit etwas Glück sind sie oben mit "neu" markiert. Sie können das Paket wie gewohnt installieren und es wird .emacs.d/elpawie jedes andere Paket in Ihrem Verzeichnis angezeigt.
Dies sollte für Emacs 24 sofort funktionieren. Bei früheren Versionen bin ich mir nicht sicher. Ihre Benutzer können wie gewohnt auf Ihr Paket zugreifen, indem Sie Folgendes einfügen
(require 'package)
(setq package-enable-at-startup nil)
(add-to-list 'package-archives
'("archive" . "http://yourdomain.com/path-to-local-dir/"))
(package-initialize)
in ihrer init.elAkte.
Informationen zum Schreiben eines Pakets finden Sie unter Vorbereiten von Lisp-Code für die Verteilung im GNU Emacs Lisp-Handbuch.