Instalar paquetes globalmente

10

¿Es esto algo que se puede / se debe hacer? Por ejemplo, a menudo uso emacs en mi cuenta de usuario y, a veces, en la cuenta raíz. Cuando uso el administrador de paquetes (es decir, mermelada o algo), ¿tengo que instalar los mismos paquetes por separado para cada cuenta? Me parece que se instalan en su directorio de inicio.

usuario2237076
fuente

Respuestas:

7

Como señaló Nsukami, package.el admite paquetes de todo el sistema. Pero como su pregunta posterior señala, no proporciona ninguna ayuda especial para instalar paquetes de una manera que abarque todo el sistema.

Una forma de hacerlo es usando algo como:

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

en su cuenta raíz ~/.emacs. Esto hará que los paquetes instalados del usuario raíz estén disponibles para todos los usuarios (ya /usr/share/emacs/site-lisp/elpaque normalmente deberían aparecer en el valor predeterminado de package-directory-list).

Stefan
fuente
Sí, esto tiene sentido! Gran ayuda chicos, gracias.
user2237076
3

De acuerdo con la documentación:

El valor del paquete-directorio-lista es
("/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 ")

Esta variable puede ser arriesgada si se usa como una variable local de archivo.

Documentación: Lista de directorios adicionales que contienen paquetes Emacs Lisp. Cada nombre de directorio debe ser absoluto.

Estos directorios contienen paquetes destinados a todo el sistema; en contraste, 'package-user-dir' contiene paquetes para uso personal.

Puedes personalizar esta variable.

Esta variable se introdujo o se modificó su valor predeterminado en la versión 24.1 de Emacs.

Otra documentación :

Además de package-user-dir, Emacs busca paquetes instalados en los directorios listados en package-directory-list. Estos directorios están destinados a los administradores del sistema para que los paquetes de Emacs estén disponibles en todo el sistema; Emacs nunca instala paquetes allí.

Por lo tanto, para la instalación en todo el sitio, le sugiero que, como administrador del sistema, instale manualmente los paquetes dentro de / usr / local / share / emacs / site-lisp / elpa. O también puede hacer lo sugerido por @Stefan

Nsukami _
fuente
Gracias por su respuesta. Puedo confirmar que, al inspeccionar el valor de la lista de directorios del paquete, es como lo ha descrito y, de hecho, package-user-dir es la carpeta .emacs.d / elpa, donde se están instalando actualmente los paquetes. Entonces, pregunto si anulo el directorio de usuario del paquete para apuntar a la ubicación global, o cuando uso, por ejemplo, 'Mx package-install', ¿cómo puedo decirle que quiero una instalación en todo el sitio?
user2237076