Como o páprica disse, o Emacs usa load-path
para pesquisar os elisp
arquivos disponíveis da lista ( .elc
, .el
)
O load-path
é procurado para o primeiro pacote que coincida quando ele está sendo exigido. Se várias cópias de um pacote estiverem instaladas, a primeira será carregada.
O gerenciador de pacotes de distribuição não pode instalar na mesma fonte que o package-install
faz, já que um é de todo o sistema e o outro é específico do usuário.
Fontes do pacote
Integrado e específico da distribuição
Distro Package Manager
Os gerenciadores de pacotes distro fornecem uma seleção de pacotes emacs que podem ser instalados. Na minha experiência, esses geralmente estão entre os pacotes mais populares / amplamente utilizados. Antes do desenvolvimento package.el
disso, era a maneira mais fácil de obter os pacotes. (Mais fácil por executar apenas do apt-get install <package>
que usar controle de versão ou download direto.
Os pacotes instalados por meio do gerenciador de pacotes de distribuição são instalados no /usr/local/share/emacs/site-lisp/
padrão load-path
e serão ocultados por load-path
adições específicas do usuário .
Package.el
package.el
foi incluído pela primeira vez Emacs 24
. Esta versão é compatível, Emacs 23
mas precisa ser instalada manualmente, os pacotes recuperados por ela podem ou não ser compatíveis Emacs 23
.
package.el
fornece um repositório de pacotes navegável para o Emacs. Por padrão, apenas o Elpa
repositório está configurado, mas o acesso ao MELPA e Marmelade pode ser adicionado:
(add-to-list 'package-archives '("melpa" . "http://melpa.milkbox.net/packages/"))
(add-to-list 'package-archives '("marmalade" . "http://marmalade-repo.org/packages/"))
Isso fornece acesso a um conjunto muito maior de pacotes.
Por padrão, package.el
instala pacotes para ~/.emacs.d/elpa
e quando (package-initialize)
é chamado esse diretório será colocado mais próximo da frente do load-path
arquivo, resultando em pacotes com precedência sobre os instalados pelo gerenciador de pacotes de distribuição.
Git / Bzr / hg / ... + EmacsWiki
Pacotes controlados por versão podem ser recuperados manualmente de seu repositório através da clonagem. Alguns também fornecem versões compactadas que podem ser baixadas diretamente.
Os arquivos EmacsWiki Elisp também podem ser baixados, embora geralmente sejam arquivos únicos, e não diretórios.
Depois que o pacote for recuperado, verifique se a pasta de destino está na sua load-path
e estará disponível para uso.
Gerenciamento de pacotes de terceiros
Essas ferramentas fornecem wrappers ou funcionalidades adicionais acima para centralizar o gerenciamento de pacotes. Eles foram projetados com a configuração compartilhada em mente para garantir que todas as suas máquinas tenham os mesmos pacotes disponíveis.
El-Get
El-Get mantém uma lista de receitas que lhe permitem obter os pacotes usando package.el
, git
, emacswiki
como fontes (entre outros). Ele também fornece funções para garantir que os pacotes estejam atualizados, gerenciar o carregamento (adiado ou imediato) e armazenar a personalização específica do pacote em arquivos carregados automaticamente quando o pacote está required
.
Barril
O Cask foi projetado para gerenciamento de projetos no / para Emacs. Ele usa um cask
arquivo para manter uma lista de dependências (outros pacotes) necessárias para usar o pacote e baixa os pacotes ausentes para garantir que tudo seja carregado com êxito.
Ele pode ser usado para gerenciar configurações de pacotes locais tratando o seu ~/.emacs.d
como um projeto e iniciando (cask-initialize)
a inicialização.
straight.el
straight.el
foi desenvolvido para pessoas que desejam fazer alterações locais em seus pacotes e, possivelmente, contribuir com essas alterações no upstream. Ele extrai receitas do MELPA , GNU ELPA e EmacsMirror , ou permite que você especifique suas próprias. Ele também suporta a criação de um arquivo de bloqueio de revisão para máxima reprodutibilidade, entre muitos outros recursos.
Pacote de uso
O Use-Package foi projetado principalmente como uma ferramenta de gerenciamento de configuração do emacs. Ele fará o download dos package.el
pacotes necessários , mas não possui mecanismos internos para acessar outras fontes. Permite carregamento diferido de pacotes e personalização adiada. Isso melhora a inicialização do emacs enquanto diminui o uso inicial dos pacotes (mas, se não os estiver usando em uma determinada sessão, haverá apenas um ganho líquido).
M-x report-emacs-bug
. As pessoas que responderem a essa pergunta aqui estariam melhor contribuindo com os documentos do Emacs, se as informações estiverem ausentes. NA MINHA HUMILDE OPINIÃO.