バイナリファイルをNixOSにインストールするにはどうすればよいですか
Aug 24 2020
宣言的な方法を使用して、NixOS内に外部バイナリをインストールしようとしています。nix-pkgマニュアルの中で、NixOS内で外部バイナリを取得するそのような方法を見つけました
{ pkgs ? import <nixpkgs> {} }:
pkgs.stdenv.mkDerivation {
name = "goss";
src = pkgs.fetchurl {
url = "https://github.com/aelsabbahy/goss/releases/download/v0.3.13/goss-linux-amd64";
sha256 = "1q0kfdbifffszikcl0warzmqvsbx4bg19l9a3vv6yww2jvzj4dgb";
};
phases = ["installPhase"];
installPhase = ''
'';
しかしInstallPhase、このバイナリをシステム内にインストールするには、内部に何を追加すればよいのでしょうか。
回答
2 RobertHensing Aug 25 2020 at 00:16
これはオープンソースのGoアプリケーションのようです。そのため、代わりにNixpkgsのGoサポートを使用することをお勧めします。これは、バイナリにパッチを適用するよりも簡単な場合があります。
そうは言っても、パスinstallPhaseを作成する責任があり$outます。通常、または同様のコマンドがmkdir -p $out/bin続きます。cpmake install
つまり、実際にシステムにインストールするわけではありません。結局のところ、Nixの派生は副作用を持っているとは考えられていません。それをシステムに「インストール」するのは、ユーザーが構成したNixOSの派生物の責任です。
「インストール」とは、NixOS構成の変更と新しいNixOSへの切り替えの組み合わせであると言えます。私は構成の変更のみを考える傾向があります。nixos-rebuild通常は手動操作ですが、ビルドとスイッチは実装の詳細のように感じます。