首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >是什么原因导致“堆栈构建”每次都不注册本地依赖项?

是什么原因导致“堆栈构建”每次都不注册本地依赖项?
EN

Stack Overflow用户
提问于 2017-08-19 10:30:30
回答 3查看 420关注 0票数 6

我尝试过stack clean,也删除了.stack-work。但是,每次我运行build时,都会取消注册5(相同的)包。stack build --dry-run告诉我这个列表,但没有任何原因。

我最近也从1.4.1升级

此外,如果不是很简单如何解决这一点,我想回到使用1.4.1。有什么简单的方法把haskell-stack降级到那个版本吗?

编辑1

将评级下调至1.4.0并无帮助。大约有70个软件包未注册和重建,然后我进入了相同的5-注销循环。

所以我想,从昨天起,还有什么地方可以让我的州腐败呢?~/.stack!所以我已经(重新)移动了我的~/.stack文件夹,也移动了.stack-work文件夹,认为如果有什么可能出错的话,它就在这两个地方,现在我陷入了更糟糕的境地。现在,常量注销周期包含23个包(其中一些包相当重),而不仅仅是5个包。

代码语言:javascript
复制
Would unregister locally:
cairo-0.13.3.1 (missing dependencies: gtk2hs-buildtools)
dump-0.3.0 (missing dependencies: haskell-src-meta, interpolatedstring-perl6)
entropy-0.3.7
ghcjs-dom-0.2.4.0 (missing dependencies: glib, gtk3, webkitgtk3)
gio-0.13.3.1 (missing dependencies: glib, gtk2hs-buildtools)
glib-0.13.4.1 (missing dependencies: gtk2hs-buildtools)
gtk2hs-buildtools-0.13.2.2 (missing dependencies: happy)
gtk3-0.14.6 (missing dependencies: cairo, gio, glib, gtk2hs-buildtools, pango)
haskell-src-exts-1.17.1 (missing dependencies: happy)
haskell-src-meta-0.6.0.14 (missing dependencies: haskell-src-exts)
here-1.2.9 (missing dependencies: haskell-src-meta)
hs-di-0.4.0 (missing dependencies: haskell-src-meta, interpolate, interpolatedstring-perl6)
interpolate-0.1.0 (missing dependencies: haskell-src-meta)
interpolatedstring-perl6-1.0.0 (missing dependencies: haskell-src-meta)
pango-0.13.3.1 (missing dependencies: cairo, glib, gtk2hs-buildtools)
reflex-0.5.0 (missing dependencies: haskell-src-exts, haskell-src-meta)
reflex-dom-0.4 (missing dependencies: ghcjs-dom, glib, gtk3, reflex, webkitgtk3, webkitgtk3-javascriptcore)
threepenny-gui-0.7.1.0
uuid-1.3.13
webkitgtk3-0.14.2.1 (missing dependencies: cairo, glib, gtk2hs-buildtools, gtk3, pango)
webkitgtk3-javascriptcore-0.13.2.0 (missing dependencies: glib, gtk2hs-buildtools, gtk3, webkitgtk3)
websockets-0.9.8.2
websockets-snap-0.10.0.0

@ kind 2407038,什么样的信息可以帮助您开始诊断?从一开始,上面的内容有用吗?在什么情况下会出现这样的注销循环?

我还有一个可以尝试的想法:这个特定的项目取决于几个本地包,而afaik的.stack-work文件夹可能在这方面起作用。所以也许我也可以把它们移开。

还有更多的想法应该失败吗?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2017-08-22 15:16:05

长话短说:将resolver: lts-7.19改为resolver: lts-7.24 in stack.yaml似乎解决了我的错误。

我有一些猜测和预感,但我不完全确定背景中可能出了什么问题。

我从--dry-run标志中得到提示,它报告的一些缺少的包是构建时haskell包依赖项,如alexhappy等.

那么,也许旧的lts没有正确地安装这些?如果有人在这个问题上有更多的知识,我希望听到更多。

我也很难过,这件事破坏了我对堆栈可重复构建的承诺的一些信任,因为(AFAIK声称是安全的) stack upgrade (甚至随后降级)突然让我的一个项目无法构建几天。

无论如何,我很乐意

  1. 在对我的系统进行破坏性更改之前,stack会警告并询问我,特别是如果它导致了几个小时的重新编译。(这实际上意味着我的案子需要几天的时间,因为我尝试过的任何想法都需要等待相当长一段时间。)
  2. 它可以使用类似于nix的构建存储,而即使我更改了某些配置,也可以很容易地切换到以前的工作配置。
票数 3
EN

Stack Overflow用户

发布于 2017-08-19 15:57:06

作为部分解决方案,我发现我可以

代码语言:javascript
复制
stack upgrade --binary-version 1.4.0

很容易降低评级的:

代码语言:javascript
复制
Current Stack version: 1.5.1, available download version: 1.4.0
Forcing binary upgrade
Querying for archive location for platform: linux-x86_64-static
Downloading from: https://github.com/commercialhaskell/stack/releases/download/v1.4.0/stack
-1.4.0-linux-x86_64-static.tar.gz
Download complete, testing executable
Version 1.4.0, Git revision e714f1dd3fade19496d91bd6a017e435a96a6bcd (4640 commits) x86_64 
hpack-0.17.0
New stack executable available at /home/user/.local/bin/stack
票数 0
EN

Stack Overflow用户

发布于 2018-12-10 14:14:25

可能是因为您碰到了这个bug:SourceMap的更好计算,但是也没有足够的信息可以确定。考虑到这个问题很快就会得到解决,它应该不再是一个问题了,但是如果有人在自定义快照上寻找一个工作看起来很好。

自定义快照的要点是将extra-deps中的所有不可变包移到自定义快照中,以防止堆栈重新计算这些包的依赖关系。

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

https://stackoverflow.com/questions/45770444

复制
相关文章

相似问题

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