Ich habe ein lokales Paketarchiv (Emacs 24.5) eingerichtet, package.el
indem ich zuerst zwei Verzeichnisse erstellt habe, pkgs
und local
. (Die Namen spielen keine Rolle.) Die Dateien, aus denen Ihre Pakete bestehen, gehen ein pkgs
und local
werden 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.el
Akte 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.d
Verzeichnis gestellt (daher user-emacs-directory
in das expand-file-name
Formular), aber Sie können es an einer beliebigen Stelle ablegen.
Sobald dies ausgewertet ist, führen Sie aus M-x package-upload-file
und 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-packages
Ihr 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/elpa
wie 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.el
Akte.
Informationen zum Schreiben eines Pakets finden Sie unter Vorbereiten von Lisp-Code für die Verteilung im GNU Emacs Lisp-Handbuch.