Installieren Sie Pakete global

10

Kann / sollte das getan werden? Beispielsweise verwende ich häufig Emacs in meinem Benutzerkonto und manchmal in meinem Root-Konto. Muss ich bei Verwendung des Paketmanagers (z. B. Marmelade oder ähnliches) die gleichen Pakete für jedes Konto separat installieren? Es scheint mir, dass sie in Ihrem Home-Verzeichnis installiert werden.

user2237076
quelle

Antworten:

7

Wie von Nsukami hervorgehoben, unterstützt package.el systemweite Pakete. Wie Ihre nachfolgende Frage zeigt, bietet es jedoch keine besondere Hilfe, um Pakete systemweit zu installieren .

Eine Möglichkeit, dies zu tun, besteht darin, Folgendes zu verwenden:

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

in Ihrem Root-Konto ~/.emacs. Dadurch werden die installierten Pakete des Root-Benutzers allen Benutzern zur Verfügung gestellt (da diese /usr/share/emacs/site-lisp/elpanormalerweise im Standardwert von angezeigt werden sollten package-directory-list).

Stefan
quelle
Ja das macht Sinn! Tolle Hilfe Jungs - danke.
user2237076
3

Laut Dokumentation:

Der Wert der Paketverzeichnisliste lautet
("/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 ")

Diese Variable kann riskant sein, wenn sie als dateilokale Variable verwendet wird.

Dokumentation: Liste zusätzlicher Verzeichnisse mit Emacs Lisp-Paketen. Jeder Verzeichnisname sollte absolut sein.

Diese Verzeichnisse enthalten Pakete, die systemweit vorgesehen sind. Im Gegensatz dazu enthält "package-user-dir" Pakete für den persönlichen Gebrauch.

Sie können diese Variable anpassen.

Diese Variable wurde in Version 24.1 von Emacs eingeführt oder ihr Standardwert wurde geändert.

Eine weitere Dokumentation :

Zusätzlich zu package-user-dir sucht Emacs in den in der package-directory-list aufgeführten Verzeichnissen nach installierten Paketen. Diese Verzeichnisse sind für Systemadministratoren gedacht, um Emacs-Pakete systemweit verfügbar zu machen. Emacs selbst installiert dort niemals Pakete.

Für die Site-weite Installation empfehle ich Ihnen, als Systemadministrator die Pakete manuell in / usr / local / share / emacs / site-lisp / elpa zu installieren. Oder Sie können auch tun, wie von @Stefan vorgeschlagen

Nsukami _
quelle
Danke für deine Antwort. Ich kann bei der Überprüfung des Wertes der Paketverzeichnisliste bestätigen, dass es sich um den von Ihnen beschriebenen Wert handelt, und tatsächlich ist package-user-dir der Ordner .emacs.d / elpa, in dem die Pakete derzeit installiert werden. Ich frage dann, ob ich das Paket-Benutzer-Verzeichnis überschreibe, um auf den globalen Speicherort zu verweisen, oder wie kann ich bei Verwendung von "Mx-Paket-Installation" angeben, dass ich eine standortweite Installation möchte?
user2237076