【问题标题】:Emacs packages, installing globally versus locally with elpaEmacs 软件包,全局安装与 elpa 本地安装
【发布时间】:2016-03-31 12:11:01
【问题描述】:

我运行 linux 并使用不同的用户名来划分不同的活动。 使用 elpa,我想安装一些包,以便无论用户是谁都可以加载它们,有些包我只想为一个用户加载。

例如,组织模式是我希望每个用户都加载的东西。 我可能想要用户 client1 的 C++ 相关包,但不是 ruby​​ 包。 我可能想要用户 client2 的 ruby​​ 相关包,而不是 C++ 包。 可能有一个用于 C++ 编程的新包,我不想在严肃的工作中包含它,但想通过用户实验来玩。

它曾经是你放在站点 lisp 中的全局内容和你放在某个地方的本地内容 ~,但这似乎不适用于 elpa。

【问题讨论】:

    标签: emacs elpa


    【解决方案1】:

    package.el 沿 package-directory-list 路径查找已安装的软件包(此外还有 package-user-dir,这是安装软件包的位置)。

    所以我建议您安排一个“全球”用户。然后将所有其他用户更改为包含

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

    在他们的~/.emacs。这样,您要为所有用户安装的任何软件包都应由globaluser 安装。

    顺便说一句,攻击向量的另一种方法是区分“已安装”和“启用”。 IE。始终全局安装您的软件包,然后让每个用户调整其package-load-list 以禁用特定软件包。

    最后,任何仅安装和启用(其中“启用”意味着加载包自己的 -autoloads.el)最终干扰正常工作的包都是一个错误(在我的书中),因此另一种解决方案是安装并启用全球所有软件包。如果 C++ 用户对某些与 ruby​​ 相关的软件包感到恼火,请向 ruby​​ 相关软件包的维护者提交错误报告。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-02-07
      • 2020-05-02
      • 1970-01-01
      • 2017-11-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多