J'ai mis en place une archive de paquet local (Emacs 24.5) en utilisant package.el
d'abord la création de deux répertoires, pkgs
et local
. (Les noms n'ont pas d'importance.) Les fichiers qui composent vos packages entrent pkgs
et local
finiront par contenir vos archives. Si vous souhaitez mettre une archive à la disposition d'autres personnes, vous pouvez l'exposer à l' local
aide d'un serveur Web, mais le processus est identique à la création d'une archive locale.
Je mets ce qui suit dans mon init.el
dossier:
(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)
J'ai mis mes archives dans mon .emacs.d
répertoire (d'où le user-emacs-directory
dans le expand-file-name
formulaire) mais vous pouvez les mettre où bon vous semble.
Une fois cela évalué, exécutez M-x package-upload-file
et entrez le nom de fichier de votre package à installer. Cela va générer un nouveau package dans local
. Vous verrez trois nouveaux fichiers là - dedans, archive-contents
, yourpackagename-version.el
et yourpackagename-readme.txt
. Vous devriez maintenant pouvoir faire M-x package-list-packages
et voir votre paquet répertorié. Avec de la chance, ils seront en haut marqués "nouveau". Vous pouvez installer le package comme d'habitude, et vous le verrez apparaître dans votre .emacs.d/elpa
répertoire comme tout autre package.
Cela devrait fonctionner dès la sortie d'Emacs 24. Je ne suis pas sûr des versions antérieures. Vos utilisateurs peuvent accéder à votre package de la manière habituelle en incluant
(require 'package)
(setq package-enable-at-startup nil)
(add-to-list 'package-archives
'("archive" . "http://yourdomain.com/path-to-local-dir/"))
(package-initialize)
dans leur init.el
dossier.
Pour plus d'informations sur la façon d'écrire un paquet, voir Préparation du code Lisp pour la distribution dans le manuel GNU Emacs Lisp.