什么是你期望从一个软件包经理Emacs?[关闭]
-
19-08-2019 - |
题
虽然几千Emacs口齿不清的库存,GNU Emacs,直到的版本24.1没有一个(内部)包经理.
我猜大多数用户都会同意,这是目前相当不方便查找、安装和尤其是保持最新的Emacs口齿不清的图书馆。
网页,使生活更容易一点
对于版本的Emacs的年龄比24.1:
- Emacs口齿不清单 -问题:我看见死人(链接)。
- Emacswiki -问题:可能含有微量的坚果(恶意代码)。
- Emacsmirror -包装库我的工作。问题:没有包管理中心支持它本身。
一些软件包经理
这并不是说没有人尝试过。(一些这并不存在时,这个问题是问。)
- 自动安装
- 博格。el -吸收Emacs包令的子模块。
- el-得到的。el -支持许多来源。
- elinstall.el
- epackage aka DELPS-Debian包装概念应用Emacs口齿不清的软件包。
- epkg.el -这是现在只是一个工具,用于浏览Emacsmirror.
- 安装。el
- 安装工作基本是在封闭的情况下进行.el
- 正义与平等运动-包.el
- 包。el -于.似乎喜欢将它包括在Emacs24.
更新--包。el包括在GNU Emacs,开始版本24.1
包已经包括在Emacs的主干。epkg是尚未准备就绪和目前还不可用。至少安装的工作基本是在封闭的情况下进行,插和使用的包似乎没有积极维护了。
我已经创建了一个混帐 库 包含所有这些一揽子管理人员的子模块。
一些公用事业,可能是有用的
包管理人员可以使用这些工具和/或他们可能被用来维持一个镜的软件包。
- 日期计算。el 新的计算和分析程序。
- ell.el -浏览Emacs口齿不清单。
- 榆树。el, 埃尔切.el, xpkg.el -用来保持 Emacsmirror.
- genauto.el -可以帮助产生autoloads为你的工作基本是在封闭的情况下进行包装。
- 相反。el -需要特定的软件包的版本。
- loadhist.el,lib-需要。el、工作基本是在封闭的情况下进行-依赖的。el -命令列出Emacs口齿不清的图书馆依赖关系。
- 项目-扎根。el -定义的一个项目的根源,并采取行动的基础。
- strptime.el -部分实施POSIX日期和时间分析。
- wikirel.el -请访问相关网页上的Emacs Wiki。
讨论的主题手
这个问题(最后)
所以我想知道你什么你认为重要的/不重要的/补充等。在一个软件包经理Emacs。
一些想法
- 许多软件包(的 Emacsmirror 提供最大的可利用收集的包裹,但没有明确支持在任何包裹的经理)。
- 唯一的软件包已经过测试。
- 支持超过一个软件包的存档(因此人们可以选择之间的许多测试包)。
- 依赖基于计算所需的功能只。
- 依赖关系采取特别的版本纳入考虑。
- 只有使用版本已经发布的上游。
- 使用版本的版本控制系统,如果可用。
- 软件包进行分类。
- 软件包可以卸载和更新,不仅安装。
- 支持创建叉上版本的软件包。
- 支持出版这些叉。
- 支持选择一个叉。
- 安装后的包被激活。
- 产生自动加载文件。
- 融合与Emacswiki(见wikirel.el)。
- 用户可以标记、评论等。包和分享信息。
- 只有自由软件基金会的分配/GPL/自由和开放源码软件或是不关心的许可证。
- 包管理应该是综合的分布与Emacs。
- 支持为容易地接触提交人。
- 大量的元数据。
- 建议的替代品之前安装一个特定的软件包。
我希望对于这些类型的答案
- 指针指向更多的实现,讨论等。
- 冗长的描述的一套特点,使你的理想的包管理。
- 描述一个特定期望的/不需要的特征。觉得免费的详细说明我的想法上。
- 让我感到吃惊。
解决方案
其他提示
我仍然在学习软件,因此我还没有机会看到包的管理人员,但是一个伟大的功能,将通知用户的软件包可以如果他们尝试使用它但是它不在他们的系统。例如,我想到编辑PHP文件服务器上的一次,我尝试过
M-x php-mode
和Emacs是都喜欢
M-x php-mode [no match]
当它应该已经喜欢
php-mode available from ftp.gnu.org. install? (y/n)
然后它会安装和装起来php模对于我。那会使我的一天就在这里。
我希望大多数是, 的一切 有用的是,运作良好。这需要你(或者一个团队的维护者)积极追求打包一切,并做什么,涉及到—电子邮件发送的每一个作者的一个有用的软件包,等等。
例如,原因是Debian(及其衍生物:Ubuntu等)。 是那么好的是你可以愉快地使用系统而不具有以安装的东西之外的储存库,而这一切在也是彻底的测试。实际功能包的管理是重要的,但次要的管理,包自己。
简单结构的同步:我像许多人,使用Emacs在许多不同的计算机和服务器,他们中的一些我自己和一些不是。这会是惊人的,如果包的管理有一些文件,我可以传送到另一台计算机;然后,在后一种计算机,包的管理会带来我Emacs进入状态,我喜欢它-所有包装和配置的设置。结合能力能够很容易安装的站点范围(如果一个具有根本的权限的)或者作为一个单一的用户,我们可以同步的所有Emacsen无处不在。
我几乎积极的,最好的解决方案涉及提交更多的软件包对于并加入多源支助包。el。Emacs的维护者说他们会考虑包括软件包。el在的版本,24只要它指出,一个自由软件基金会仓库的默认。
当然,提出还需要一个过程的自动化;目前的方法对邮寄于维护者只能在一个小型规模。
无论如何做到这一点,最重要的事情在我的意见是,它应该是微不足道提交的软件包的存储库。同时,我们不想要这些软件包可以立即提供,以防止恶意代码(和由于授权问题)。除非有一个"信托"系统的地方,基于的加密签名。
也有用的:
- "metapackages",以安装几个包裹在一次。
- 在相同的方式,我们应该能够安装一套工作基本是在封闭的情况下进行的文件,用于维修性
- "破裂"包件不应允许破坏Emacs的启动。这是容易的,我把它落实在我自己的。emacs
- 能够安装的文件脚本。这是常常被忽视,但非常有用的。你可以,例如,船的图像,用于图标、工具栏等。
- 版本的包裹X需要包Y>1.0
- 测试:执行基本的完整性检查、测试用于冲突(键绑定、功能重新定义、职能,是预计将存在,但并不等)。
- 错误跟踪:我不能强调这一点的重要性不够的。有一个集中的地方报告,包装错误(和能够跟踪他们)是极其重要的是保证质量的软件包。
某种压缩后存档似乎是最佳做一些以上。
迄今为止,大大改善于似乎要走的路。
我曾经花了一些时间编写的一小包的管理Emacs。
http://gmarceau.qc.ca/plugin.el
我写道:
插件是我尝试建立一个 包管理Emacs。插件 将会自动下载Emacs 扩展、解开他们在一个 目录中,加入该目录的 载径,产生自动加载 注释和修改你的点emacs 文件。自动加载的注解是 鲜为人知的特征Emacs。一旦 它们产生的,Emacs的扩展 负载的迅速递增, 真不错如果你有很多 扩展安装了因为我做的。
我认为,黑客的iPhone得到了相当接近的我想要什么,并Ubuntu的"倾".
我喜欢能够:
- 添加
- 删除(包)
- 删除用户设置
- 查看文件
- 升级(在阅读之后的更改日志)
- 添加新的档案(又名增加储存库)
- 看到依赖关系
- 请参阅的版本
- 搜索名、关键字
- 通过浏览(加入日期、修改日期、姓名)
- 保存所有安装的的包裹和设置
- 载荷的组件和设置
我想主要集的事情,有很好地工作和建议的方式做什么。然后一个全球性的集这里的一切工作得到。然后有能力对于任何人到他们自己的档案。
这将是很好的如果这都是绑入git/svn/想让你可以安装的旧版本。让你自己修补程序通过分叉掉等等等等等等。
除了上面提到的,我期待的东西像是debian和其他仓库设定的稳定,experemental,未经测试的软件包。能力,增加我自己的储存库的-我用了很多的软件包,直接从风险,因此它可能有助于创造我自己的包裹
我认为,包经理应采取的很多灵感来自于 把.我还认为,它应该有一个这样的网站 Gemcutter.
中央储存库可能还是不错的(像 Emacsmirror).然而,这可能不是必需的如果这样一个网站Gemcutter存在,收集所有的软件包。
我觉得这些事情是重要的,这个工作。
- 中心位置的一些种类的,收集所有包
- 容易添加的包
- 易于维护的软件包
- 容易做出贡献的其他的包
- 易于安装、卸载和更新包
- 可能性,以增加包的依赖关系
- 常见的结构为所有的软件包
因此,一个软件包经理就像把一个这样的网站Gemcutter和中央储存库像Emacsmirror(最好是在审查,因为它的社会编码)会做Emacs真的很好。
所有的一切我认为,很多灵感应采取从轨道和轨道如何处理宝石。
我不知道怎么新鲜的这个问题是...
但是,该模型我想看到的是求助.我还不知道把但它听起来相似的求助.
支持是一个perl档案馆管理系统。当我需要写一perl程序,需要...FTP或肥皂函或XML或邮或者...等等,我可以运行的支持包管理中,选择的必要的包装载、查看和核实的依赖,然后安装一切。支持是镜像.."到处"。
支持奇妙的作品对我而言,类似的东西用emacs将是很好的。它还支持建立C/C++码的需求。
这就是我希望看到在emacs。
一些进一步的评论的要求。
- 显下载的软件包。没有自动安装。没有隐形下载。我想要问,为新的图书馆或新的功能。
- 我应当能够清单的姓名/版本/时间安装的软件包。
- 如果我的朋友给了我他的名单,我应该可以比较他emacs国对地雷。
- 检查更新的功能。什么更新?他们怎么解决?
- depedency检查、验证和下载。如果我安装c#模式,它需要5.0.28cc-模式,那么就应该确认我,我还必须载cc-模式。
- 应该有某种形式的社会排名,这些软件包,如排山洪上isohunt.我想看看如果一个包有3"顶"或3000人。
- "事务"的行为。如果一个安装进繁荣,就必须放松到最后-知道-好的状态。
- 故障保护装置如果我把自定义功能,在胡.el,它应当拒绝安装一个新的版本,在我改变,除非我明确地允许发生这种情况。它应当警告之前,我甚至开始。这样做有校验/md5是在现有安装。
- 有选择的运行一些包压缩档案,如邮政编文件。所以我永远不会有任何怀疑,我没有更新的任何embbedded工作基本是在封闭的情况下进行.
- 能够使用的镜像的主机软件包的分布。
- 所有这个功能应该是可以通过M-x库-manageemnt或东西。
最后,这将是很好有一种方法来分离或组织图书馆的功能。分层命名空间。Emacs'平名称空间是非常过时。这是一种独立的但互补的核心职能包管理。我是不是口齿不清的大师我不知道如何努力,这将;也许已存在的方式来做到这一点。
包管理人员不提供任何东西我值w。r.t.单一文件的工作基本是在封闭的情况下进行包装有简单的依赖:增加和删除 site-lisp
从来没有引起问题。这是包,取决于外部程序(例如,ispell)、多文件包(例如,auctex,组织结构模式),可能会非常棘手。不能认为任何单一文件的工作基本是在封闭的情况下进行包装与平凡的依赖,随便.
对于这些,短的一揽子管理器,我想emacs'工作基本是在封闭的情况下进行包获得测试其可以运行集体,和它们提供有用信息事件的依赖关系的失败。