首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从nixpkgs加载依赖项- nix-shell不稳定

从nixpkgs加载依赖项- nix-shell不稳定
EN

Stack Overflow用户
提问于 2016-11-10 16:42:00
回答 2查看 2.1K关注 0票数 10

我在NixOS 16.09上,我想使用目前只有nixpkgs-不稳定/nixos-不稳定的包。

使用nix-channel --add,我可以将nixpkgs--不稳定的--添加到我的(用户)通道中,并使用它安装一些带有nix-env的包的最新版本。

然而,我理解nix-env依赖于用户定义的通道,而nix-shell则依赖于NIX_PATH环境变量,在我的例子中:

代码语言:javascript
复制
$ echo $NIX_PATH 
nixpkgs=/nix/var/nix/profiles/per-user/root/channels/nixos/nixpkgs:nixos-config=/etc/nixos/configuration.nix:/nix/var/nix/profiles/per-user/root/channels

这清楚地说明了问题所在:nix-shell将使用系统范围的NixOS 16.09通道,而不是用户定义的nixpkgs-不稳定通道。

现在,我正在使用这个解决方法:

代码语言:javascript
复制
nix-shell -I nixpkgs=~/.nix-defexpr/channels/nixpkgs

在我看来不太漂亮。这样做的推荐方法是什么?

是否要添加这样的内容:

代码语言:javascript
复制
export NIX_PATH="nixpkgs=~/.nix-defexpr/channels/nixpkgs:nixos-config=/etc/nixos/configuration.nix:/nix/var/nix/profiles/per-user/root/channels"

我的.profile?它看起来也不太漂亮。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-11-11 04:48:57

欢迎来到长期与nix-envNIX_PATH混淆的地方.明确指出,nix-env不使用NIX_PATH,这使它成为唯一不尊重NIX_PATH的Nix工具。

所以,实际的问题在于这里的nix-env,而不是nix-shell。我将在Nix bug跟踪器上发布一系列有关这方面的问题:

现在,我用这个解决办法:

所以现在你可以看到,这不是一个解决办法。最好总是指定您希望使用的确切的Nixpkgs :根通道版本、通道版本、上游远程通道版本、本地git签出版本或固定git版本。

票数 8
EN

Stack Overflow用户

发布于 2017-01-03 13:49:53

为了完成另一个答案,下面是我刚刚找到的一个很好的参考,它解释了NIX_PATHnix-env不使用它的事实:http://lethalman.blogspot.fr/2014/09/nix-pill-15-nix-search-paths.html

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

https://stackoverflow.com/questions/40532798

复制
相关文章

相似问题

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