パッケージをグローバルにインストールする


10

これはできる/すべきことですか?たとえば、ユーザーアカウントでemacsを使用することが多く、ルートアカウントで使用することもあります。パッケージマネージャー(マーマレードなど)を使用する場合、アカウントごとに同じパッケージを個別にインストールする必要がありますか?彼らはあなたのホームディレクトリにインストールされているようです。

回答:


7

Nsukamiが指摘したように、package.elはシステム全体のパッケージをサポートします。しかし、その後の質問で指摘されているように、システム全体の方法でパッケージをインストールするための特別な助けはありません。

これを行う1つの方法は、次のようなものを使用することです。

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

あなたのrootアカウントでの~/.emacs。これにより、rootユーザーのインストール済みパッケージがすべてのユーザーに利用可能になります(/usr/share/emacs/site-lisp/elpa通常、デフォルト値のに表示されるためpackage-directory-list)。


はい、これは理にかなっています!みんな助けてくれてありがとう。
user2237076

3

ドキュメントによると:

パッケージディレクトリリストの値は
( "/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 ")

この変数をファイルローカル変数として使用すると、危険な場合があります。

ドキュメント:Emacs Lispパッケージを含む追加のディレクトリのリスト。各ディレクトリ名は絶対名でなければなりません。

これらのディレクトリには、システム全体を対象としたパッケージが含まれています。対照的に、 `package-user-dir 'には個人用のパッケージが含まれています。

この変数はカスタマイズできます。

Emacsのバージョン24.1で、この変数が導入されたか、そのデフォルト値が変更されました。

別のドキュメント

Emacsはpackage-user-dirに加えて、package-directory-listにリストされているディレクトリでインストール済みパッケージを探します。これらのディレクトリは、システム管理者がEmacsパッケージをシステム全体で利用できるようにするためのものです。Emacs自体はそこにパッケージをインストールしません。

したがって、サイト全体のインストールの場合、システム管理者として、/ usr / local / share / emacs / site-lisp / elpa内に手動でパッケージをインストールすることをお勧めします。または、@ Stefanの提案に従って行うこともできます


お返事をありがとうございます。package-directory-list値の検査で確認できます。これは、あなたが説明したとおりであり、実際にpackage-user-dirは、パッケージが現在インストールされている.emacs.d / elpaフォルダーです。それで、グローバルな場所を指すようにpackage-user-dirをオーバーライドするか、たとえば「Mx package-install」を使用するときに、サイト全体のインストールが必要なことをどのように伝えることができますか?
user2237076
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.