首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将--reinstall标志与阴谋开发一起使用

将--reinstall标志与阴谋开发一起使用
EN

Stack Overflow用户
提问于 2011-09-16 23:19:11
回答 2查看 590关注 0票数 3

我正在开发wxHaskell库,并且希望将我的开发工作与稳定的wxHaskell和黑客分开,我使用cabal-dev的方式如下:

  1. 我从darcs获得了wxHaskell的来源;
  2. 因为wxHaskell是由三个部分组成,所以我使用cabal-dev add-source来添加每一个(wxwxcorewxdirect);
  3. 然后,通过执行cabal-dev install wx,我能够安装到沙箱本地包库中,就像预期的那样,检测到了依赖项,并构建和安装了所有东西。
  4. 最后,通过使用ghc -package-conf指定沙箱包数据库的位置,我成功地运行了测试代码。

当我对wxHaskell源代码进行修改时,问题就出现了。为了构建和安装更新的代码,我必须使用cabal-dev install --reinstall,这是有意义的,因为我没有增加版本号;构建发生了,我看到“在.中安装库”。和“注册.”但是,我在代码中所做的更改并不存在于重新编译的沙箱库中。

我目前的工作是删除cabal-dev库,并在每次我想重建的时候重复这个过程。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-09-19 22:31:10

更新:阴谋安装>= 1.18支持沙箱,并将比未来的阴谋开发更好地维护。阴谋安装也有更好的支持使用附加源与沙箱。下面是对阴谋安装中新的沙箱特性的描述:http://coldwa.st/e/blog/2013-07-30-Cabal-sandbox.html

旧答案:

正如您所发现的,“添加源”并不意味着用于积极变化的项目。我也不确定是否有一个好的解决方案--很难跟踪添加源的项目的位置(至少没有现有的基础设施),而且我也不确定这总是正确的。

另一个工作流可能为您提供更好的服务--只需使用cabal-dev install,指向您希望用于未来开发的沙箱。最近版本的阴谋工具链(我指的是阴谋集团、阴谋安装和阴谋开发)允许这样做:

代码语言:javascript
复制
$ ls 
wx        wxcore          wxdirect
$ cabal-dev install --sandbox=<path-to-some-sandbox> ./wx ./wxcore ./wxdirect
...

(注意:我还没有用WX测试过这个--可能会出现我不知道的扭结!)

假设一切按预期进行,这将从本地子目录将三个包安装到指定的沙箱中。更新源只意味着为更改的项目重新发出一个cabal install命令。

请记住,您必须自己按正确的顺序发出重复的cabal安装命令,或者必须使用上面的批处理命令并相应地更新版本号。

我不认为这是理想的;但我认为这比每次删除沙箱要好。

票数 2
EN

Stack Overflow用户

发布于 2011-09-19 22:07:18

经过一些调查后,我可以证实,这是我对add-source用法的误解造成的,详见自述的“使用沙箱-本地黑客”部分( strong是由我自己添加的,并指出了我误解的原因):

Cabal还允许您使用未发布的包,就像它们正在与cabal-dev add-source一起进行黑客攻击一样。

例如,linux-ptraceposix-waitpid包只是最近才上传到hackage。以前,cabal-dev用于构建依赖于这两个包的应用程序:

代码语言:javascript
复制
$ ls
linux-ptrace/  myProject/  posix-waitpid/
$ cd myProject
$ cabal-dev add-source ../linux-ptrace ../posix-waitpid
$ cabal-dev install

注意,cabal-dev add-source接受一个源位置列表。

但是,请注意,因为已经添加的包不再绑定到原始源位置。上述示例中对linux-ptrace myProject 源的更改将不会被myProject使用,除非用户发出指向 linux-ptrace 源代码的路径的 cabal-dev add-source 。这类似于您现在可能执行的使项目能够使用对依赖项的更改的cabal install步骤。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7451296

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档