问题标签 [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.
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 包,我可以将其用作示例?
haskell - 如何让 cabal 和 nix 一起工作
据我了解,Nix是cabal 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,我希望能够为每个项目设置单独的阴谋集团“环境”,从而解决上述所有问题。
希望这更清楚。
nix - Nix Php 准备好了吗?
我是 Nix 的新手,对此感到非常兴奋(到目前为止,我一直在为 Haskell 使用它)。我打算用它来部署 PHP 应用程序。但是,Nix 如何处理 Php 包(正常安装或使用 pear 安装)。
nixos - 如何复制 nix 配置文件
是否可以将 Nix 用户配置文件或配置复制到其他用户或主机?
我的意思是,假设我使用nix-env -i
. 我怎样才能复制这个环境并在其他地方使用它?NixOs 配置的同样问题。我可以通过修改来创建新配置/etc/nixos/configurtion.nix
。但是,如果我使用nix-env -i
. 我可以生成与这个新环境相对应的配置(或等效配置)吗?
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
假设您可以以这种方式工作,我错了吗?
谢谢
nixos - 如何在 NixOs 中启用 php
我正在尝试使用 NixOs 设置 LAMP 环境。我设法让 mysql 和 apache 运行,但我找不到启用 php 的方法。目前,apache 将php 文件作为文本提供,而不是执行它。
我已经看到文件中有一个enablePHP
选项,appache-httpd/default.nix
但它似乎不可见(当我这样做时它不会出现,man configuration.nix
如果我尝试将其设置为 true,则会收到错误消息)。
haskell - 如何在 NixOS 上使用新的 haskell-ng 基础架构?
如何使用新的 haskell-ng 基础架构在 NixOS 上设置简单的 Haskell 开发环境?
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,但我不知道如何在这个地方提供它。
nix - nix 可以安装在 /nix 以外的其他位置吗?
一段时间后,我的开发机器中的磁盘空间开始用完(只有 128GB)。出于这个原因,我决定将本地缓存存储(.npm、.m2、.ivy2 等)移动到外部驱动器。
在经历了众所周知的“阴谋集团地狱”之后,我最近转向 Nix 进行 Haskell 开发。不过,我还没有找到更改 Nix 商店位置的正确方法。
可能吗?