我试过stack clean
,并同时删除 .stack-work
.
但是,每次我运行 build 时,它都会取消注册 5 个(相同的)包。stack build --dry-run
告诉我名单,但没有任何理由。
我最近也从 1.4.1 升级
另外,如果解决这个问题不是很简单,我想重新使用 1.4.1。任何简单的降级方法haskell-stack
到那个版本?
编辑 1
降级到 1.4.0 没有帮助。大约 70 个包被取消注册和重建,然后我进入了相同的 5-unregister-loop。
所以我想,从昨天开始,我的地方州还能在哪里被破坏? ~/.stack
!所以我(重新)移动了我的~/.stack
文件夹,还有 .stack-work
文件夹,想如果有什么地方出了问题,那就是这两个地方,现在我的情况更糟了。现在,恒定的注销周期包括 23 个包(其中一些包很重),而不仅仅是 5 个。
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
@user2407038,什么样的信息可能有助于开始诊断?以上对开始有帮助吗?在什么情况下会出现这样的注销循环?
我还有一个可以尝试的想法:这个特定的项目依赖于一些本地包,并且 afaik 他们的
.stack-work
文件夹可能在其中发挥作用。所以也许我也可以(重新)移动它们。如果上述想法失败了,还有什么想法吗?
最佳答案
长话短说:改变 resolver: lts-7.19
至resolver: lts-7.24
在 stack.yaml
似乎已经为我修复了错误。
我有一些猜测和预感,背景中可能出了什么问题,但我并不完全确定。
我从 --dry-run
得到了一个线索标记它报告的一些缺失包是构建时的 haskell 包依赖项,例如 alex
, happy
, ETC...
所以也许是较旧的lts
没有正确安装那些?如果有人对此主题了解更多,我很乐意听到更多。
而且我也很遗憾,这一事件破坏了我对堆栈可重现构建 promise 的一些信任,作为(AFAIK 声称是安全的)stack upgrade
(甚至随后降级)突然让我的一个项目几天都无法构建。
无论如何,如果
stack
在对我的系统进行破坏性更改之前会警告并询问我,特别是如果它会导致数小时的重新编译。 (这实际上对我来说意味着几天的头疼,因为我尝试过任何想法都必须等待相当长的时间。)关于haskell - 什么会导致 `stack build` 每次都取消注册本地依赖项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45770444/