nixos-16.03
チャネルに保持しているNixOSボックスがあります。マシンをほぼ安定した状態に保ちたいので、nixos-unstable
チャネルへの切り替えを避けたいと思います。
ただし、そのチャネルで利用可能なものよりも新しいバージョンのパッケージをインストールする必要があります(この例ではnodejs-6_x
)。マニュアルには ワンクリックインストール を説明するセクションがあります。ただし、 http://hydra.nixos.org にあるHydraサーバーは、で説明されている.nixpkg
ツールで使用されるnix-install-package
ファイルを提供していないようです。そのセクション。
Wikiには、パッケージをカスタマイズするプロセスも記載されています(このページは Modifying Packages と呼ばれます)。これは、目的に使用できると思いますが、ツールと戦っているようですそれを使うというよりは.
これについてはIRCでも質問しました(私の無知な質問に辛抱強く答えてくれたM-Ralith
に感謝します!)が、それを適用する方法がよくわかりませんでした。アドバイスは「nixpkgs構成のsrcとバージョンをオーバーライドする」。これは、.nixpkgs/configuration.nix
にnix式を記述し、サブスクライブしたチャネル(nixos-16.03
)のパッケージのプロパティをオーバーライドできるようです。パッケージについて質問したときチャネルに存在しない場合、アドバイスは「srcとversionをオーバーライドするだけでなく、パッケージ全体を指定する」というものでした。つまり、関心のあるパッケージの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
それがどのように役立つか!