问题标签 [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 回答
312 浏览

haskell - 使用 Hydra 测试多个 Haskell 依赖版本

我想使用持续集成来测试我的 Haskell 库及其依赖项的不同版本。有没有一种简单的方法可以用 Hydra ( http://nixos.org/hydra ) 来完成这个任务?

一种解决方案是覆盖感兴趣的依赖项的版本,并将 Nixpkgs 版本用于其他依赖项。但是,我无法弄清楚如何覆盖一个 Haskell 包版本,同时确保使用覆盖的包调用所有其他 Haskell 包。

这是我尝试在release.nix. 引用的 Nix 表达式是使用 cabal2nix 创建的。构建依赖json-assertions,依赖aeson,依赖mtl。由于不使用覆盖的 mtl 调用 aeson,因此表达式指定了 mtl 的两个版本。两个版本的 mtl 导致构建失败。

另一种解决方案是使用公开可用的 Nix 表达式来兼容除 Nixpkgs 中的 Haskell 包集。不过,我还没有找到任何东西。

是否有任何在线项目使用 Hydra 来针对多个版本的依赖项测试 Haskell 包,我可以将其用作示例?

0 投票
1 回答
5198 浏览

haskell - 如何让 cabal 和 nix 一起工作

据我了解,Nixcabal sandbox的替代品。我终于设法安装了 Nix,但我仍然不明白它如何取代沙箱。

我知道您不需要使用 Nix 和 GHC 的包装版本的 cabal;但是,如果您想发布一个包,您有时需要使用 cabal 对其进行打包。因此,您需要能够在 NIX 中编写和测试您的 cabal 配置。你是怎样做的?

理想情况下,我想要一个类似于 cabal 沙盒但“包含”在 NIX 中的环境,这可能吗?事实上,我真正想要的是嵌套沙箱的等价物——因为我通常从事由多个包组成的项目。

更新我当前的工作流程

目前,我从事 2 或 3 个独立项目(P1、P2、P3),每个项目由 2 或 3 个 cabal 模块/包组成,假设 P1:L11、L12(库)和 E11(可执行文件)。E11 依赖于 L12,而 L12 又依赖于 L11。我主要从库中拆分可执行文件,因为它们是私有的并且保存在私有 git 存储库中。

理论上,每个项目都可以拥有自己的沙箱(在其子模块之间共享)。我试过了(L11 L12 和 E11 有一个公共沙箱),但它很快就很烦人,因为如果你修改 L11,你不能重建它,因为 E11 依赖它,所以我必须先卸载 E11 才能重新编译 L11。可能并非完全如此,但我遇到了类似的问题。如果我偶尔修改 L11,这会很好,但实际上,我对它的修改比 E11 更多。

由于共享沙箱不起作用,所以我为每个包解决方案返回了一个沙箱。它正在工作,但并不理想。主要问题是如果我修改 L11,我需要编译两次(一次在 L11 中,然后再次在 E11 中)。此外,众所周知,每次我开始一个新的沙箱时,我都需要等待一段时间才能下载并重新编译所有包。

因此,通过使用 Nix,我希望能够为每个项目设置单独的阴谋集团“环境”,从而解决上述所有问题。

希望这更清楚。

0 投票
2 回答
1187 浏览

nix - Nix Php 准备好了吗?

我是 Nix 的新手,对此感到非常兴奋(到目前为止,我一直在为 Haskell 使用它)。我打算用它来部署 PHP 应用程序。但是,Nix 如何处理 Php 包(正常安装或使用 pear 安装)。

0 投票
2 回答
1150 浏览

nixos - 如何复制 nix 配置文件

是否可以将 Nix 用户配置文件或配置复制到其他用户或主机?

我的意思是,假设我使用nix-env -i. 我怎样才能复制这个环境并在其他地方使用它?NixOs 配置的同样问题。我可以通过修改来创建新配置/etc/nixos/configurtion.nix。但是,如果我使用nix-env -i. 我可以生成与这个新环境相对应的配置(或等效配置)吗?

0 投票
1 回答
1424 浏览

haskell - Nix & Haskell - 使用来自 cabal2nix 的 default.nix 和一个通用的 shell.nix

从一个非常基本的 cabal 文件

然后是一个shell.nix

在 nix-shell 中运行 cabal 配置时,它会抱怨缺少诸如文本之类的包。

如果我将文本包显式放入 shell.nix 中,例如

cabal 配置很好,但我希望 hs.thispackage.propagatedNativeBuildInputs 提供这些包。

可以在以下位置看到非常基本的 haskell 项目

https://github.com/fatlazycat/haskell-nix-helloworld

假设您可以以这种方式工作,我错了吗?

谢谢

0 投票
2 回答
2205 浏览

nixos - 如何在 NixOs 中启用 php

我正在尝试使用 NixOs 设置 LAMP 环境。我设法让 mysql 和 apache 运行,但我找不到启用 php 的方法。目前,apache 将php 文件作为文本提供,而不是执行它。

我已经看到文件中有一个enablePHP选项,appache-httpd/default.nix但它似乎不可见(当我这样做时它不会出现,man configuration.nix如果我尝试将其设置为 true,则会收到错误消息)。

0 投票
1 回答
810 浏览

haskell - 通过 Nix 安装 Haskell 包

具体来说,我正在尝试通过nix.

我可以在 中看到一个hasteCompiler条目nixpkgs/pkgs/top-level/haskell-packages.nix,并在其中看到相应的.nix文件,nixpkgs/pkgs/development/libraries/haskell/haste-compiler/但我不确定如何安装它。具体来说,没有一个

做我想做的事,并且nix-env -qa不将包含子字符串的任何内容haste列为可用包。

有什么想法吗?

0 投票
1 回答
2842 浏览

haskell - 如何在 NixOS 上使用新的 haskell-ng 基础架构?

如何使用新的 haskell-ng 基础架构在 NixOS 上设置简单的 Haskell 开发环境?

0 投票
1 回答
2602 浏览

git - 如何修改 nixos 包配置

我正在一个只能通过网络代理访问外部世界的网络中构建一个 nixos 系统。nixos grub 配置尝试通过一个git://在我的网络上显然不起作用的 URL 访问 grub 存储库。

因此,我想用git://相应的http://URL 替换 url。(savannah 支持两者。)相应的nix 文档显示了如何做到这一点。

我创建了一个~/.nixpkgs/config.nix包含以下内容的文件:

不幸的是nixos-rebuild switch,仍然尝试使用旧 URL。我做错了什么?


我还阅读了文档的定制包。从那看来我可以添加以下内容/etc/nixos/configuration.nix

但是nixos-rebuild switchnixos-rebuild switch仍然使用旧网址。我可能需要添加 fetchurl,但我不知道如何在这个地方提供它。

0 投票
5 回答
5128 浏览

nix - nix 可以安装在 /nix 以外的其他位置吗?

一段时间后,我的开发机器中的磁盘空间开始用完(只有 128GB)。出于这个原因,我决定将本地缓存存储(.npm、.m2、.ivy2 等)移动到外部驱动器。

在经历了众所周知的“阴谋集团地狱”之后,我最近转向 Nix 进行 Haskell 开发。不过,我还没有找到更改 Nix 商店位置的正确方法。

可能吗?