Installer les packages globalement

10

Est-ce quelque chose qui peut / devrait être fait? Par exemple, j'utilise souvent emacs dans mon compte utilisateur et parfois root. Lorsque j'utilise le gestionnaire de packages (c'est-à-dire marmelade ou autre), dois-je installer les mêmes packages séparément pour chaque compte? Il me semble qu'ils sont installés dans votre répertoire personnel.

user2237076
la source

Réponses:

7

Comme l'a souligné Nsukami, package.el prend en charge les packages à l'échelle du système. Mais comme le souligne votre question suivante, elle ne fournit aucune aide spéciale pour installer les packages à l'échelle du système.

Vous pouvez le faire en utilisant quelque chose comme:

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

dans votre compte root ~/.emacs. Cela rendra les packages installés de l'utilisateur root disponibles pour tous les utilisateurs (car /usr/share/emacs/site-lisp/elpadevrait normalement apparaître dans la valeur par défaut de package-directory-list).

Stefan
la source
Oui, cela a du sens! Grande aide les gars - merci.
user2237076
3

Selon la documentation:

La valeur de package-directory-list est
("/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 ")

Cette variable peut être risquée si elle est utilisée comme variable locale de fichier.

Documentation: Liste des répertoires supplémentaires contenant les packages Emacs Lisp. Chaque nom de répertoire doit être absolu.

Ces répertoires contiennent des packages destinés à l'ensemble du système; en revanche, `package-user-dir 'contient des packages pour un usage personnel.

Vous pouvez personnaliser cette variable.

Cette variable a été introduite ou sa valeur par défaut a été modifiée dans la version 24.1 d'Emacs.

Une autre documentation :

En plus de package-user-dir, Emacs recherche les packages installés dans les répertoires répertoriés dans package-directory-list. Ces répertoires sont destinés aux administrateurs système pour rendre les packages Emacs disponibles à l'échelle du système; Emacs lui-même n'y installe jamais de packages.

Donc, pour une installation à l'échelle du site, je vous suggère d'installer, en tant qu'administrateur système, manuellement les packages dans / usr / local / share / emacs / site-lisp / elpa. Ou vous pouvez également faire comme suggéré par @Stefan

Nsukami _
la source
Merci pour votre réponse. Je peux confirmer lors de l'inspection de la valeur de la liste de répertoires de packages que celle-ci est telle que vous l'avez décrite et, en fait, package-user-dir est le dossier .emacs.d / elpa - où les packages sont actuellement installés. Donc, je demande alors de remplacer le répertoire utilisateur-package pour pointer vers l'emplacement global, ou lorsque j'utilise par exemple 'Mx package-install', comment puis-je lui dire que je veux une installation à l'échelle du site?
user2237076