2013-02-07 66 views
18

我想将全局Hackage数据库快照为我公司部署的冻结小型数据库。怎么能最容易地将一段Hackage拷贝到私人服务器上?如何制作Hackage的私人副本

+0

看看[yackage](http://hackage.haskell.org/package/yackage)这是一个简单的hackage像服务器。 [Hackage trac](http://hackage.haskell.org/trac/hackage)是指示复制所有hackage的指令,但目前它已关闭,我不记得如何进行部分镜像的明确方向。 – Davorak

+0

有一个链接可以在头版的Hackage上下载所有软件包最新版本的存档。够了吗? –

+1

我希望能够有效地获得我想在生产环境中使用的库的快照,以便开发人员和构建工具都可以从该源进行安装。 Yackage可能会起作用。 –

回答

4

这不是一个回答两个问题这个标题,但是是我解释OP希望达到什么的答案。

根据您希望生产圈的稳定水平,您可以通过多种方式来解决问题。

我已经将依赖关系分为两部分,我可以使用的东西在haskell平台中(保留生产中使用的每个平台),然后只在外部使用少量的包,不要让任何人包括你自己)仅仅因为懒惰(作为开发人员)而将更多的软件包添加到你的依赖关系树中。这些额外的软件包使用cabal fetch来使用某种脚本并从hackage中收集(锁定到版本)。保持安全。创建一个使用安全包的安装脚本,并且如果将新机器(开发人员)添加到您的团队中,请使用该脚本。

yackage是伟大的,但这一切都取决于你如何运送你的产品。如果您的产品版本较旧,则需要为每个版本设置一个yackage设置,并且在几年后可能会很烦人。

2

您可以使用Voker57的hackage-mirror.sh下载Hackage。你需要'卷曲'才能运行。如果您使用的是基于Debian的Linux发行版,则可以通过输入apt-get install curl来安装curl。