1

Linux を実行し、さまざまなユーザー名を使用してさまざまなアクティビティをセグメント化しています。elpa を使用して、ユーザーに関係なくロードされるようにインストールしたいパッケージがいくつかあります。1 人のユーザーだけにロードしたいパッケージがあります。

たとえば、組織モードは、すべてのユーザーがロードしたいものです。ユーザー client1 には C++ 関連のパッケージが必要かもしれませんが、ruby パッケージは必要ありません。ユーザーclient2にはRuby関連のパッケージが必要かもしれませんが、C++パッケージは必要ありません。本格的な作業には含めたくないが、ユーザー実験を使用して試してみたい C++ プログラミング用の新しいパッケージがあるかもしれません。

以前は、グローバルなものを site lisp に入れ、ローカルなものを ~ のどこかに入れていましたが、elpa ではうまくいかないようです。

4

1 に答える 1

3

package.el は、package-directory-listパスに沿ってインストールされたパッケージを探します (さらにpackage-user-dir、パッケージがインストールされる場所です)。

したがって、「グローバル」ユーザーを用意することをお勧めします。そして、他のすべてのユーザーを含めるように変更します

(require 'package)
(push "/home/globaluser/.emacs.d/elpa" package-directory-list)

彼らの~/.emacs。このようにして、すべてのユーザーにインストールしたいパッケージは、 によってインストールする必要がありますglobaluser

ところで、ベクトルを攻撃する別の方法は、「インストール済み」と「有効」を区別することです。つまり、常にパッケージをグローバルにインストールしてpackage-load-listから、特定のパッケージを無効にするために各ユーザーに微調整してもらいます。

最後に、単なるインストールと有効化 (「有効化」とは、パッケージ自体の -autoloads.el をロードすることを意味します) が通常の作業に干渉するパッケージは (私の本では) バグであるため、さらに別の解決策は、すべてのパッケージをグローバルにインストールして有効にすることです。 . また、C++ を使用しているユーザーが Ruby 関連のパッケージに悩まされている場合は、Ruby 関連のパッケージのメンテナーにバグ レポートを提出してください。

于 2016-03-31T13:20:23.637 に答える