问题标签 [nix]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1340 浏览

scala - 在 macOS Sierra 上使用 Nix 安装 Scala

我想使用 Nix 安装 OpenJDK 8 或 Oracle JDK 8 以及 Scala。

我从直接安装 Oracle JDK 开始。然后我通过 Nix 通过运行nix-env -i scala. 这样就完成了。

但是,运行scalac失败:

我确实设置了 JAVA_HOME:

重申一下,我想通过 Nix 安装 Scala。我喜欢学习一种或多种方法来做到这一点。一些注意事项:

  • 如果需要,我很高兴了解有关 Nix 软件包如何工作的更多信息。
  • 关于如何在 macOS 上通过 Nix 安装 JDK,我还没有得到清晰、权威的解释。这似乎是故事的关键部分。
0 投票
0 回答
330 浏览

haskell - 一起使用堆栈、ghc-mod 和 NixOS

我在让所有这些工具协同工作时遇到了一些麻烦,我很想知道是否有人成功了。

我的主要问题如下:我有一些外部依赖项,在我stack.yaml看来是这样的:

显然是由 nix 系统提供的。当我ghc-mod type Main.hs 39 19在当前运行时,Main.hs我得到以下信息:

所以它似乎无法加载这些外部依赖项。

任何想法如何进行?

0 投票
2 回答
2323 浏览

package - 如何覆盖nixos中单个包的编译标志?

如何CFLAGS在 NixOS/Nix 环境中覆盖单个包的编译标志(如 中)?

这是我现在得到的:

在我的configuration.nix,虽然这失败了

0 投票
1 回答
130 浏览

haskell - 使用 nix 构建没有拆分目标文件的 haskell 项目

在Gabriel Gonzalez 的关于使用 nix 构建 haskell 项目的教程的项目 3中,他写道:

默认情况下,这些库使用 GHC 的-fsplit-objs标志编译以启用拆分目标文件,这会减小库大小但增加编译时间。这是我建议在开发期间使用 cabal 构建根项目的另一个原因,因为默认情况下,cabal 不会使用拆分对象进行编译,因此构建速度会更快。但是,-fsplit-objs当 Nix 构建项目时,这是一个很好的默认设置,因此您无需更改此设置。

没有提到的是如何让 nix 在没有-fsplit-objs. 就我而言,我有一个后端项目(使用 GHC 构建)、一个前端项目(使用 GHCJS 构建)和一个共享项目(两者都构建)。共享项目的重建有些常见,因此能够关闭-fsplit-objs将节省大量编译时间。

0 投票
1 回答
853 浏览

python - 如何使用 nix-shell 启用可选的构建依赖项?

我想在 nix-shell 中使用支持 gtk 的 opencv 和 python 3。

我可以使用以下命令启动非 gtk 启用的 python3/opencv 环境:

但是,打开窗口的命令会失败:

在 中的包定义中/nixpkgs/pkgs/development/libraries/opencv/3.x.nix,有函数参数enableGtk2,并且enableGtk3可以在构建中打开可选依赖项。

我通读了几个 nix 教程和该语言的整个语法定义。

打开可选依赖项是非常基础的,所以我希望它可以使用命令行工具来实现,即nix-shell. 有人知道它是怎么做的吗?

0 投票
1 回答
328 浏览

nix - 覆盖 python27Packages.bepasty-server

为了试验上游的变化,我想src=改变pkgs.python27Packages.bepasty-server.

通读https://nixos.org/nixpkgs/manual/#chap-functions没有示例如何执行此操作pythonPackages

所以我尝试了下面的东西,我在文档的一些 xml 代码中找到了这些东西。但它不起作用......这是我需要帮助的部分!

包覆盖

主意

结果是:

减少代码

结果是:

所以看起来这根本行不通,但为什么呢?

系统包

相反,这里似乎正在工作:

但是,我不需要 bepasty-server 二进制文件,interactive environment而是需要覆盖 pkgs 以便bepasty service使用它!

0 投票
1 回答
620 浏览

erlang - 更新 nix 包中的依赖项

目前使用 Mac OS X 上 nix 频道提供的 Elixir 版本。该包使用 Erlang 18 构建:

我想更新包以使用 Erlang 19。在 nix 中使用更新的依赖项重建包的最直接方法是什么?

0 投票
0 回答
254 浏览

haskell - 本地 nixpkgs 配置的 overridePackages 以添加新包

我正在寻找有关如何针对我的情况采取最佳方式的启示,如下所示:

  1. 我的项目中有一个 nixpkgs 文件夹,我从其他 repo 下载。它位于我的theproject/front-plat/default.nix然后代码看起来像这样。

    { nixpkgsFunc ? import ./nixpkgs }: let nixpkgs = nixpkgsFunc ({ config = { ... }; lib = {...}; etc.

  2. 在我的theproject/release.nix我想添加一个新的包,它将用于我使用 nixpkgs 的前端平台构建的。所以代码看起来像这样。

    { front-plat ? import ./deps/front-plat {}}: let nixpkgs = front-platform.nixpkgs; packageCompiler = front-plat.compiler; config = rec { ... packageOverrides = pkgs: rec { packageCompiler = pkgs.packageCompiler.override { overrides = self: super: rec { fronFrint = self.callPackage (import ./frontFrint { inherit front-plat; }); }; }; };

3 我假设,现在我正在使用来自前端平台的 nixpkgs,但我仍然不确定我的 nixpkgs 的 packageCompiler 是否已经包含 fronFrint 包。

问题是,如何将名为“frontFrint”的新包添加到 nixpkgs 的 packageCompiler。以便 packageCompiler 可以构建 fronFint。例如最后,代码将是 in { front = pkgs.packageCompiler.frontFrint; }

0 投票
4 回答
2757 浏览

nix - dockerhub 上 nix 映像的 Nix 配置位于何处?

根据https://chris-martin.org/2015/installing-nixos存在一个/etc/nixos/configuration.nix文件。

我正在使用来自https://hub.docker.com/r/nixos/nix/的 docker 容器并运行

在容器内不返回任何结果。

此配置位于何处?

0 投票
3 回答
643 浏览

python - 在 vim_configurable.customize 中用 python3 覆盖 python

我正在按照这个模板使用 Nix 配置我的自定义 vim。我vim-config/default.nix的如下:

尽管第 5 行有一个(pkgs // { python = pkgs.python3; })覆盖,python3 仍然没有使用(当我运行vim --version它时显示+python -python3)。我错过了什么吗?