Eu e um amigo queremos começar a escrever pacotes emacs específicos para uso em nossa empresa. (Confie em mim, nada do que escrevermos será de grande interesse para quem estiver de fora - é integração com ferramentas internas.)
Gostaríamos de tornar a instalação e manutenção de pacotes o mais fácil possível e achamos que isso significa integração com package.el
. O que precisamos fazer para configurar um repositório para esse uso?
package-repositories
Sean Allred
fonte
fonte
Respostas:
Eu configurei um arquivo de pacote local (Emacs 24.5) usando
package.el
primeiro criando dois diretórios,pkgs
elocal
. (Os nomes não importam.) Os arquivos que compõem seus pacotes entrampkgs
elocal
acabam mantendo seu arquivo morto. Se você deseja disponibilizar um arquivo morto para outras pessoas, é possível exporlocal
usando um servidor da Web, mas o processo é o mesmo que criar um arquivo local.Coloquei o seguinte no meu
init.el
arquivo:Coloquei meu arquivo no meu
.emacs.d
diretório (daíuser-emacs-directory
oexpand-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 nolocal
. Você verá três novos arquivos lá,archive-contents
,yourpackagename-version.el
, eyourpackagename-readme.txt
. Agora você deve poder fazerM-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
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.
fonte
M-x package-update-file
, coloca o.el
arquivo diretamente emlocal/
dir. Existe uma maneira de criar um subdiretório para cada pacote de modo que vamos acabar comlocal/pkg1/pkg1.el
,local/pkg2/pkg2.el
...?elpa
diretório é configurado da maneira que você descreve. Eu realmente não sei porquelocal
não é. Lembre-se de que esses arquivos são gerados automaticamente, para que ninguém realmente precise vê-los. Eu mantenho meus arquivos sob controle de versão com o git e coloco meulocal
diretório.gitignore
por esse motivo. Eu mantenho meupkgs
diretório bem organizado e sob controle de versão, maslocal
é o que é.local/
? Eu queria o arranjo hierárquico para poder especificar os metadados de URL do pacote como;; URL: http://yourdomain.com/path-to-local-dir/pkg1
e assim por diante para pacotes diferentes. Mas não é grande coisa. Estou mais empolgado em publicar meus pacotes em um elpa local. :)local
diretório de qualquer maneira. Aponte-os para a fonte original.Se você deseja hospedar algo como MELPA, pode encontrar instruções no wiki do MELPA sobre como hospedar sua própria instância MELPA:
https://github.com/melpa/melpa/wiki/Custom-Melpa-Archive
Essencialmente, tudo se resume a:
recipes/
diretóriomake
.fonte