D语言是否有一个包管理器?

10

我找到了SCons,看起来很有用,但它并不完全符合我的需求。我真正想要的不是一个构建工具,而是一个包管理器。

其他语言也有类似的工具:

  • Python- easy_install或ppp
  • JavaScript/NodeJS- npm
  • Go- goinstall

我希望有一个开源D项目的单一数据库,可以通过只输入几个命令(假设dpack是该命令)将其集成到更大的应用程序中:

# get source from database, run build script if there is one
dpack install some_package

# builds current package, grabbing dependencies as necessary
dpack build

# removes source (build will fail without it)
dpack remove

有没有类似这样的东西可以用于D语言? 如果没有,我可能会自己动手写。

4个回答

8
我发现这个网站:http://code.dlang.org/about,它分发一种叫做DUB包的东西。
DUB是一个用于D语言项目的构建工具,支持自动检索依赖项并将其集成到构建过程中。设计强调对简单项目的最大简化,同时提供必要时自定义的机会。

这绝对是默认设置了。看起来 Dub 也将在接下来的版本中与主编译器代码合并。 - Cedric Meury

4

更新:请参阅关于Dub的最佳答案。它现在是D语言的事实标准包管理器,并将很快成为官方包管理器,将与D编译器一起发布。

有很多人尝试过,也进行了很多讨论。 我所知道的唯一正在积极开发的是Jacob Carlborg的Orbit


我不知道。我自己一直在想他的进展如何。 - eco
1
无论其确切状态如何,没有人为其生成软件包,并且没有D软件包的通用存储库可供使用,因此它还不能按照您的要求执行。在这一点上,它是官方软件包管理器最有可能的候选者,但很有可能需要一段时间才能完成并被D社区实际使用。 - Jonathan M Davis
那我猜我就自己开始工作了。无论如何,这将是一个很好的项目来熟悉这种语言。 - beatgammit
@he_the_great - 我理想的软件包管理器应该类似于Node的NPM,这似乎不是Orbit正在使用的风格。 - beatgammit

1

我认为它并没有被积极开发,但你可以看看DSSS。

DSSS,即D共享软件系统,基于rebuild构建,并旨在创建一个标准化的系统,用于构建、安装、配置、获取和使用D软件,以MIT许可证的形式作为自由和开源软件发布: http://www.opensource.org/licenses/mit-license.php。其中一个值得注意的组件是其net模块,为D编程语言提供了类似于Perl的CPAN或Ruby的Gems的功能。

http://www.dsource.org/projects/dsss


1
我确实看到了那个,让我感到非常兴奋,但是我发现最后修改的日期是2007年左右。 - beatgammit

0

原始问题(和答案)发布以后已经过了一段时间,但是在2021年底,DUBhttps://github.com/dlang/dub已与DMD(参考编译器)预安装,并且有一个可用的中央软件包存储库https://code.dlang.org/

如果使用其他编译器(GDC、LDC等),您可能仍需要手动安装DUB,并使用例如dub --compiler=gdc ...


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接