Nixos
如何在 NixOS 中安裝一次性軟體包?
我有一個放在
nixos-16.03
頻道上的 NixOS 盒子。我希望機器保持在最穩定的狀態,所以我想避免切換到nixos-unstable
頻道。但是,我需要安裝比該頻道中可用的更新版本的軟體包(
nodejs-6_x
在本例中)。在手冊中,有一節描述了One-Click Installation,乍一看似乎正是我所需要的。但是,位於http://hydra.nixos.org的 Hydra 伺服器似乎沒有提供該部分中描述的工具.nixpkg
使用的任何文件。nix-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
。理想的做法是安裝這個,但如果我目前的頻道趕上來,沒有可能阻止它以後升級的配置。
你可以使用
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
這有什麼幫助!