【问题标题】:First steps on nix: Doing configure/make the Nix way?nix 的第一步:配置/制作 Nix 方式?
【发布时间】:2021-11-09 19:10:10
【问题描述】:

我想看看使用非 nix-ready 软件包时的体验 - 我使用的大多数工具还不是 nixpkgs 的一部分,所以我想继续努力并尝试一些事情。为了真正看到我想要指定为依赖项的内容,我必须首先“以正常方式”构建和安装包。

例如:ObjFW

它的 repo 或其他地方没有 Nix 包规范(或者,用正确的术语来说,它没有派生词)。因此,要查看它是否按预期工作,我想知道经典 ./configure && make && make install 步骤的“nix 方式”是什么。我知道我可以使用nix-shell -p ... 来生成一个只包含我想要的包的shell,并使用$configureflags 和各种$NIX_[C|LD]FLAGS 来获得我需要的所有正确标志。但是我该如何将包实际安装到环境中呢?

我仍然对 Nix 有点迷茫,今天在 WSL2 中尝试了它(有一个提供图像的 Github 存储库),到目前为止,我对这个想法印象深刻!还有很多东西要学,学习如何适应 Nix 处理“大多数”包的方式基本上是我想做的第一件事。

【问题讨论】:

  • nixpkgs 提供了一个stdenv.mkDerivation,它默认尝试做正确的事情。一般来说,从那里开始,看看什么不起作用。
  • (Stack Overflow 最适合解决有关狭隘、具体的技术问题的问题;如果您想弄清楚从哪里开始,这可能不是最好的地方)
  • 也许以 GNU Hello 的派生为例?当你无法适应它时,回来询问具体的问题。

标签: nix nixos


【解决方案1】:

关于编写推导的“Nix Pills”可能是一个很好的起点:https://nixos.org/guides/nix-pills/our-first-derivation.html 我也是这样开始的。

请记住,这是从基础开始的,您不必手动执行此处显示的每个步骤。但是,通读所有这些有助于理解。

正如 Charles Duffy 已经提到的,Nixpkgs 带有 stdenv.mkDerivation 函数,它为您执行构建包/派生的许多常见步骤。

它还带有一个默认构建器,可以轻松处理任何使用./configure && make && make install 方法的东西。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-11-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-02-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多