如何在NixOS中安装一次性软件包?


9

我的nixos-16.03频道上有一个NixOS盒子。我希望机器保持在最稳定的状态,所以我想避免切换到nixos-unstable通道。

但是,我需要安装一个比该渠道(nodejs-6_x在本例中)可用的更新版本的软件包。手册中有描述“ 一键安装”的部分,乍一看似乎完全符合我的需要。但是,http://hydra.nixos.org上的Hydra服务器似乎没有提供该部分中描述.nixpkgnix-install-package工具使用的任何文件。

Wiki还记录了一个过程,通过该过程可以自定义程序包(该页面称为Modifying Packages),我认为这可以用于我的目的,尽管似乎我是在与该工具而不是使用它作斗争。

我也在IRC中问过这个问题(感谢M-Ralith您耐心地回答我的无知问题!),但我不太了解如何应用它。建议是“在您的nixpkgs配置中覆盖src和版本”,这听起来像我可以在其中写入nix表达式.nixpkgs/configuration.nix并在我的订阅频道(nixos-16.03)中覆盖包的那些属性。当我问到通道中不存在的软件包时,建议是“指定整个软件包,而不是覆盖src和版本”,这意味着我需要为该软件包复制整个nix表达式。我感兴趣的是。nix-env

对于要安装在另一个渠道中但仍保留在当前渠道中的软件包,是否有更好的方法?它几乎感觉就像我应该可以做这样的事情nix-build <url> | nix-env -i。理想的情况是先关闭此设备,但如果我的当前频道赶上来,则没有可以阻止它稍后升级的配置。

Answers:


8

你可以使用nix-env工具

% nix-env -f https://github.com/NixOS/nixpkgs-channels/archive/nixos-unstable.tar.gz -iA tig

或使用nix-build工具

% nix-build -I nixpkgs=https://github.com/NixOS/nixpkgs-channels/archive/nixos-unstable.tar.gz -A tig

这有什么帮助!

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.