nix-env和nix-shell具有不同版本的snap

时间:2018-07-27 13:21:17

标签: haskell nix nixos

我遵循reflex-platfrom project development上的指示,试图将servant-reflex作为子模块进行测试。

My project在这里。

在我的backend.cabal中,我有一个内置依赖项:  snap >= 1.1.1.0 && < 1.2

当我nix-shell -A shells.ghc --run "cabal new-build all"尝试安装heist-1.0.1.0和snap-1.0.0.2时,失败了,

Configuring heist-1.0.1.0...
Setup: Encountered missing dependencies:
aeson >=0.6 && <1.2

要查看我的nixos不稳定的内容,我:

`nix-channel --list`
nixos https://nixos.org/channels/nixos-unstable

`nix-env -f "<nixpkgs>" -qaP -A haskellPackages.aeson`
warning: Nix search path entry '/home/demo/.nix-defexpr/channels' does not exist, ignoring
haskellPackages.aeson  aeson-1.2.4.0

`nix-env -f "<nixpkgs>" -qaP -A haskellPackages.snap`
warning: Nix search path entry '/home/demo/.nix-defexpr/channels' does not exist, ignoring
haskellPackages.snap  snap-1.1.0.0

`nix-env -f "<nixpkgs>" -qaP -A haskellPackages.heist`
warning: Nix search path entry '/home/demo/.nix-defexpr/channels' does not exist, ignoring
haskellPackages.heist  heist-1.0.1.2

问:为什么nix-shell会安装heist-1.0.1.0和snap-1.0.0.2而不是heist-1.0.1.2和snap-1.1.0.0,而后者可能依赖于aeson-1.2.4.0?

1 个答案:

答案 0 :(得分:1)

在IRC #nixos上获得了elvishjerricco的答案。

  

void Main() { Mapper.Initialize(cfg=> { cfg.RecognizeDestinationPostfixes("k__BackingFieldField"); }); Mapper.AssertConfigurationIsValid(); Mapper.Map<ItemDto>(new Item { Name = "Name" }).Dump(); } public class Item { public string Name{get;set;} } public class ItemDto { public string Namek__BackingFieldField{get;set;} } 抢劫,您可以使用doJailbreak参数来   overrides

     

project仅用于声明要打开的目录   放入haskell软件包中;它会为您运行cabal2nix。 packages用于   对haskell软件包集进行派生更改。

default.nix

overrides