Estou usando o emacs 24.4. Eu adicionei um grande número de pacotes instalados por meio da diretiva list-packages Mx em cerca de um ano de uso. Gostaria de exportar minha lista de pacotes instalados para uso em outros lugares. Copiar meu .emacs me dá alguns erros na inicialização, o que faz com que minha memória instale certas coisas. Eu suspeito que eu poderia copiar o .emacs.d, mas isso parece talvez uma má idéia.
Existe um procedimento ou diretiva que eu possa emitir para despejar a lista de pacotes instalados em um arquivo que possa ser usado para obtê-los facilmente em máquinas estrangeiras?
.emacs.d
diretório (ou preferencialmente colocá-lo sob controle de versão) geralmente é uma boa idéia. (Ele também é sensato para mudar o nome~/.emacs
para~/.emacs.d/init.el
se você decidir fazer isso.)Respostas:
O diretório
~/.emacs.d/elpa
contém todos os pacotes instalados comlist-packages
. Você pode copiar este diretório.Eu provavelmente também executaria algo como
(byte-recompile-directory "~/.emacs.d/elpa" 0 t)
(0
significa não perguntar,t
significa forçar recompilação) para recompilar tudo, porque acredito que haja alguma incompatibilidade de arquivos compilados por byte entre as versões do Emacs.fonte
Eu dei uma olhada no
package.el
arquivo e encontrei a variávelpackage-alist
. Esta parece ser uma lista de todos os pacotes instalados, incluindo os pacotes exigidos pelos pacotes que você instalou.Se tudo o que você deseja é uma lista dos nomes dos pacotes instalados, o código a seguir gravará os nomes dos pacotes dessa lista no
*Messages*
buffer.Como não sou programador Lisp, tenho certeza de que alguém pode escrever uma versão muito melhor desse código.
Também comecei a usar o código do pacote de uso com a
:ensure t
opção para instalar todos os meus pacotes em um novo PC.fonte
Uma maneira de fazer isso pode ser instalar o pacote, se ainda não estiver instalado, você deve atualizar seu arquivo init e adicionar as seguintes linhas:
Modifique a
my-packages
variável e adicione / remova o pacote que você deseja instalar.M-x describe-variable package-activated-list
fornecerá a lista do seu pacote atualmente instalado.Depois disso, a única coisa a compartilhar é o seu arquivo init. Eu espero que isso ajude.
fonte