全局安装软件包


10

这是可以/应该做的事情吗?例如,经常在用户帐户中使用emacs,有时在根帐户中使用emacs。使用软件包管理器(例如果酱或其他东西)时,是否需要为每个帐户分别安装相同的软件包?在我看来,它们已安装在您的主目录中。

Answers:


7

正如Nsukami指出的那样,package.el确实支持系统范围的软件包。但是,正如您随后的问题所指出的那样,以系统范围的方式安装软件包并没有提供任何特殊帮助。

您可以使用以下方法之一:

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

在您的根帐户的中~/.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版本中引入了此变量,或更改了其默认值。

另一个文件

除了package-user-dir之外,Emacs还在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
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.