Eu configurei um arquivo de pacote local (Emacs 24.5) usando package.el
primeiro criando dois diretórios, pkgs
e local
. (Os nomes não importam.) Os arquivos que compõem seus pacotes entram pkgs
e local
acabam mantendo seu arquivo morto. Se você deseja disponibilizar um arquivo morto para outras pessoas, é possível expor local
usando um servidor da Web, mas o processo é o mesmo que criar um arquivo local.
Coloquei o seguinte no meu init.el
arquivo:
(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)
Coloquei meu arquivo no meu .emacs.d
diretório (daí user-emacs-directory
o expand-file-name
formulário), mas você pode colocá-lo onde quiser.
Depois que isso for avaliado, execute M-x package-upload-file
e digite o nome do arquivo do seu pacote a ser instalado. Isso irá gerar um novo pacote no local
. Você verá três novos arquivos lá, archive-contents
, yourpackagename-version.el
, e yourpackagename-readme.txt
. Agora você deve poder fazer M-x package-list-packages
e ver seu pacote listado. Com sorte, eles estarão no topo marcado como "novo". Você pode instalar o pacote como de costume, e ele será exibido em seu .emacs.d/elpa
diretório como em qualquer outro pacote.
Isso deve funcionar imediatamente para o Emacs 24. Não tenho certeza das versões anteriores. Seus usuários podem acessar seu pacote da maneira usual, incluindo
(require 'package)
(setq package-enable-at-startup nil)
(add-to-list 'package-archives
'("archive" . "http://yourdomain.com/path-to-local-dir/"))
(package-initialize)
no init.el
arquivo deles .
Para obter informações sobre como escrever um pacote, consulte Preparando o código Lisp para distribuição no manual GNU Emacs Lisp.