首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >nix-env和nix-shell具有不同版本的快照

nix-env和nix-shell具有不同版本的快照
EN

Stack Overflow用户
提问于 2018-07-27 21:21:17
回答 1查看 303关注 0票数 1

我按照reflex-platfrom project development上的说明,尝试将servant-reflex作为一个子模块进行测试。

My project来了。

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

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

代码语言:javascript
复制
Configuring heist-1.0.1.0...
Setup: Encountered missing dependencies:
aeson >=0.6 && <1.2

要查看我的nixos-unstable中的内容,我:

代码语言:javascript
复制
`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?

EN

回答 1

Stack Overflow用户

发布于 2018-07-28 12:57:38

在IRC #nixos上得到了elvishjerricco的回答。

To doJailbreak heist,则可以对project使用overrides参数

haskell只用于声明您想要转换为packages包的目录;它将为您运行cabal2nix。overrides用于对haskell包集进行派生更改。

default.nix

代码语言:javascript
复制
(import ./reflex-platform {}).project ({ pkgs, ... }: {

  overrides = self: super: {
   heist = pkgs.haskell.lib.doJailbreak super.heist;
   map-syntax = pkgs.haskell.lib.doJailbreak super.map-syntax;
  };

  packages = {
    common = ./common;
    backend = ./backend;
    frontend = ./frontend;
    google-maps-reflex = ./google-maps-reflex;
  };

  shells = {
    ghc = ["common" "backend" "frontend" "heist"]; # "backend" "frontend"];
    ghcjs = ["common" "frontend"];
  };
})
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51558875

复制
相关文章

相似问题

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