【问题标题】:How can I install binary file into NixOS如何将二进制文件安装到 NixOS
【发布时间】:2020-12-13 04:58:24
【问题描述】:

我正在尝试使用声明性方式在 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 中添加什么,以使这个二进制文件安装在系统中?

【问题讨论】:

    标签: nixos nixpkgs


    【解决方案1】:

    这似乎是一个开源 Go 应用程序,因此最好使用 Nixpkgs 的 Go 支持,这可能比修补二进制文件更直接。

    也就是说,installPhase 负责创建$out 路径;通常是 mkdir -p $out/bin 后跟 cpmake install 或类似的命令。

    所以实际上并没有将它安装到系统中;毕竟 Nix 派生不应该有副作用。将它“安装”到系统中是 NixOS 派生的责任,由您配置。

    您可以说“安装”是修改 NixOS 配置 + 切换到新的 NixOS 的组合。我倾向于只考虑对配置的修改;构建和切换感觉像是实现细节,尽管 nixos-rebuild 通常是手动操作。

    【讨论】:

      猜你喜欢
      • 2015-08-05
      • 2013-08-12
      • 1970-01-01
      • 1970-01-01
      • 2013-05-30
      • 2021-07-26
      • 2018-08-17
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多