Instale pacotes globalmente

10

Isso é algo que pode / deve ser feito? Por exemplo, muitas vezes eu uso o emacs na minha conta de usuário e, às vezes, na conta root. Ao usar o gerenciador de pacotes (ou seja, marmelada ou algo assim), tenho que instalar os mesmos pacotes separadamente para cada conta? Parece-me que eles são instalados no seu diretório pessoal.

user2237076
fonte

Respostas:

7

Como apontado por Nsukami, o package.el suporta pacotes para todo o sistema. Mas, como sua pergunta subseqüente aponta, ela não fornece nenhuma ajuda especial para instalar pacotes de uma maneira geral.

Uma maneira de fazer isso é usando algo como:

(setq package-user-dir "/usr/share/emacs/site-lisp/elpa")

na sua conta root ~/.emacs. Isso tornará os pacotes instalados do usuário raiz disponíveis para todos os usuários (pois /usr/share/emacs/site-lisp/elpanormalmente devem aparecer no valor padrão de package-directory-list).

Stefan
fonte
Sim, isso faz sentido! Grande ajuda pessoal - obrigado.
user2237076
3

De acordo com a documentação:

O valor da lista de diretórios do pacote é
("/usr/local/share/emacs/24.4/site-lisp/elpa" "/ usr / local / share / emacs / site-lisp / elpa" "/ usr / share / emacs / 24.4 / site-lisp / elpa "" / usr / share / emacs / site-lisp / elpa ")

Essa variável pode ser arriscada se usada como uma variável local do arquivo.

Documentação: Lista de diretórios adicionais contendo pacotes Emacs Lisp. Cada nome de diretório deve ser absoluto.

Esses diretórios contêm pacotes destinados a todo o sistema; por outro lado, `package-user-dir 'contém pacotes para uso pessoal.

Você pode personalizar essa variável.

Essa variável foi introduzida ou seu valor padrão foi alterado na versão 24.1 do Emacs.

Outra documentação :

Além do package-user-dir, o Emacs procura pacotes instalados nos diretórios listados em package-directory-list. Esses diretórios são destinados aos administradores de sistema para disponibilizar os pacotes Emacs em todo o sistema; O Emacs em si nunca instala pacotes lá.

Portanto, para a instalação em todo o site, sugiro que, como administrador do sistema, instale manualmente os pacotes dentro de / usr / local / share / emacs / site-lisp / elpa. Ou você também pode fazer o que é sugerido por @Stefan

Nsukami _
fonte
Obrigado pela sua resposta. Posso confirmar na inspeção do valor da lista de diretórios do pacote que está como você descreveu e, na verdade, package-user-dir é a pasta .emacs.d / elpa - na qual os pacotes estão sendo instalados no momento. Então, pergunto e substituo o package-user-dir para apontar para o local global ou, ao usar, por exemplo, 'Mx package-install', como posso dizer que quero uma instalação em todo o site?
usar o seguinte comando