尽管存在数千个 Emacs Lisp 库,但 GNU Emacs 直到 24.1 版都没有(内部)包管理器。
我想大多数用户都会同意,目前查找、安装和保持最新的 Emacs Lisp 库相当不方便。
让生活更轻松的页面
对于早于 24.1 的 Emacs 版本:
- Emacs Lisp 列表- 问题:我看到死人(链接)。
- Emacswiki - 问题:可能包含坚果的痕迹(恶意代码)。
- Emacsmirror - 我正在处理的包存储库。问题:还没有包管理器本身支持它。
一些包管理器
并不是没有人尝试过。(当被问到这个问题时,其中一些并不存在。)
- 自动安装
- borg.el - 使用 Git 子模块同化 Emacs 包。
- el-get.el - 支持许多来源。
- elinstall.el
- epackage aka DELPS - 应用于 Emacs Lisp 包的 Debian 打包概念。
- epkg.el - 这现在只是一个浏览 Emacsmirror 的工具。
- 安装.el
- 安装-elisp.el
- jem-pkg.el
- package.el - ELPA。似乎它将包含在 Emacs 24 中。
更新——package.el 包含在 GNU Emacs 中,从 24.1 版开始
- pases.el
- pelm - 命令行安装程序;使用 php。
- 插件.el
- Straight.el - 最近和实验性的,尚未达到 1.0 版本。
- 使用-package.el
- XEmacs 包管理器
软件包已包含在 Emacs 主干中。epkg 尚未准备好,目前也不可用。至少 install-elisp、plugin 和 use-package 似乎不再积极维护了。
我创建了一个 git存储库,其中包含所有这些包管理器作为子模块。
一些可能有用的实用程序
包管理器可以使用这些实用程序和/或它们可以用于维护包的镜像。
- date-calc.el - 日期计算和解析例程。
- ell.el - 浏览 Emacs Lisp 列表。
- elm.el、elx.el、xpkg.el - 用于维护Emacsmirror。
- genauto.el - 帮助为您的 elisp 包生成自动加载。
- inversion.el - 需要特定的包版本。
- loadhist.el、lib-requires.el、elisp-depend.el - 列出 Emacs Lisp 库依赖项的命令。
- project-root.el - 定义项目根并根据它采取行动。
- strptime.el - POSIX 日期和时间解析的部分实现。
- wikirel.el - 访问 Emacs Wiki 上的相关页面。
关于手头主题的讨论
问题(最后)
所以 - 我想从你那里知道你认为在 Emacs 的包管理器中什么是重要的/不重要的/补充的等等。
一些想法
- 许多包(Emacsmirror提供了最大的可用包集合,但在任何包管理器中还没有明确的支持)。
- 只有经过测试的包。
- 支持多个包存档(因此人们可以在许多/经过测试的包之间进行选择)。
- 仅基于所需功能计算的依赖关系。
- 依赖项会考虑特定版本。
- 仅使用已在上游发布的版本。
- 如果可用,请使用版本控制系统中的版本。
- 包是分类的。
- 软件包不仅可以安装,还可以卸载和更新。
- 支持创建上游版本包的分叉。
- 支持发布这些分叉。
- 支持选择分叉。
- 安装包激活后。
- 生成自动加载文件。
- 与 Emacswiki 集成(参见 wikirel.el)。
- 用户可以标记、评论等包并共享该信息。
- 仅 FSF 分配/GPL/FOSS 软件或不关心许可证。
- 包管理器应该与 Emacs 一起分发。
- 支持轻松联系作者。
- 大量元数据。
- 在安装特定软件包之前建议替代方案。
我希望得到这些答案
- 指向更多实现、讨论等的指针。
- 对构成理想包管理器的一组功能的冗长描述。
- 一个特定的期望/不期望的特征的描述。随意从上面详细说明我的想法。
- 让我大吃一惊。