首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

无法在堆栈项目中使用nix构建hzk (haskell zookeeper)

在使用 Stack 和 Nix 构建 Haskell 项目时,可能会遇到一些兼容性问题,特别是当你尝试构建依赖于特定系统库(如 Zookeeper)的 Haskell 包时。以下是一些步骤和建议,帮助你解决在 Stack 项目中使用 Nix 构建 hzk(Haskell Zookeeper)的问题。

1. 确保 Nix 已安装并配置

首先,确保你已经安装并正确配置了 Nix。你可以通过以下命令检查 Nix 是否已安装:

代码语言:javascript
复制
nix --version

2. 配置 stack.yaml

在你的 stack.yaml 文件中,启用 Nix 支持并添加必要的系统依赖项。你需要确保 Zookeeper 库和头文件可以通过 Nix 获取。

代码语言:javascript
复制
nix:
  enable: true
  packages: [zookeeper]

3. 创建 shell.nix 文件

创建一个 shell.nix 文件,以确保在 Nix shell 环境中可以访问 Zookeeper 库和头文件。

代码语言:javascript
复制
{ pkgs ? import <nixpkgs> {} }:

pkgs.mkShell {
  buildInputs = [
    pkgs.zookeeper
  ];
}

4. 启动 Nix Shell

在项目目录中启动 Nix shell 环境:

代码语言:javascript
复制
nix-shell

这将确保你在 Nix shell 环境中,所有必要的依赖项都已安装。

5. 构建项目

在 Nix shell 环境中,使用 Stack 构建项目:

代码语言:javascript
复制
stack build

6. 检查 hzk 包的依赖

确保 hzk 包的所有依赖项都已正确配置。如果 hzk 包需要特定版本的 Zookeeper 库或其他系统依赖项,请确保这些依赖项在 Nix 环境中可用。

7. 使用 extra-deps

如果 hzk 包不在 Stackage LTS 版本中,你可能需要在 stack.yaml 文件中添加 extra-deps

代码语言:javascript
复制
extra-deps:
- hzk-<version>

8. 调试构建问题

如果构建仍然失败,可以查看 Stack 和 Nix 的日志输出,以获取更多调试信息。你可以使用以下命令来获取详细的构建日志:

代码语言:javascript
复制
stack build --verbose

示例 stack.yaml

以下是一个完整的 stack.yaml 示例,展示了如何配置 Nix 支持和 extra-deps

代码语言:javascript
复制
resolver: lts-18.18

packages:
- .

nix:
  enable: true
  packages: [zookeeper]

extra-deps:
- hzk-0.1.0.0

示例 shell.nix

以下是一个完整的 shell.nix 示例,确保在 Nix shell 环境中可以访问 Zookeeper 库和头文件:

代码语言:javascript
复制
{ pkgs ? import <nixpkgs> {} }:

pkgs.mkShell {
  buildInputs = [
    pkgs.zookeeper
  ];
}

通过这些步骤,你应该能够在 Stack 项目中使用 Nix 构建 hzk(Haskell Zookeeper)。如果仍然遇到问题,请检查 Nix 和 Stack 的文档,或者在相关社区中寻求帮助。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

【Rust日报】 2019-07-01:优化jieba-rs,比cppjieba快33%

Rust区块链的应用 Topic 申请表 #topic 如果你San Francisco, Berlin 或 杭州,想要分享Rust区块链的应用,可以填一下这个申请表 Read More 理解闭包...Servo和Alacritty都使用了该库。支持Glutin(或者包括gfx-rs,Glium和Amethyst在内的相关项目)等图形编程。新的版本引入了新的事件循环。...Read More termimad:可以终端显示富(Markdown)文本的库 #cli #markdown ?...Read More Rust vs Haskell 正则性能比拼 #haskell #regex haskell-vs-rust-regex-benchmark 优化jieba-rs,比cppjieba...快33% #jieba Read More 使用nix-shell为Termux编译Rust应用程序 #termux #nixShell #android NixOS平台上为安卓手机交叉编译Termux

1.1K30

Flox助Nix进军企业

欢迎Twitter上关注他@Joab_Jackson。 流言说Nix是一个迷人的技术——一个Linux操作系统和包管理器的杂交——但对于商业使用来说太笨重了。...NixOS于2004年作为一个研究项目引入,它是一个使用自己的打包系统Nix构建自身和支持其他Linux应用程序的Linux发行版,使用声明式模型、函数构建语言和密码散列来计算组件实例的唯一路径。...在其年度Octoverse报告,GitHub指出,在过去两年中,NixOS/nixpkgs开源项目贡献者数量方面排名第一。...Flox将使他们能够几步之内启动环境,或与同事共享环境,即使您使用Mac,而其他人使用Windows。 它还将允许企业少数项目上测试Nix。 Flox将遵循开放核心模型,针对云服务收取费用。...使用Flox,您的工作空间可以一个环境,podman的副本可以另一个环境中分层,项目数据可以另一个环境再分层——所有这些都在同一台机器上交互。

12310
  • graphics.h 图形库实现的汉字花样显示程序 支持文件显示、放大、斜体、倒立、彩色、动态显示等功能

    完整项目源代码在这里:https://github.com/yunwei37/ZJU-CS-GIS-ClassNotes, 参考计算机组成课程部分 这是老师布置的一个奇怪的作业: 利用十六点阵汉字库...hzk16,编写图形模式下汉字显示程序。...要求普通显示之外,增加多种显示方式,如:文件显示、放大、斜体、倒立、彩色、空心、中英文混搭显示、动态显示等。 大概就是命令行里面点阵显示汉字?...最后做出来的结果大概是这样的 这里使用了graphics.h 图形库; 源代码:source.cpp; ConsoleApplication1为完整工程文件; (运行环境:win10/vs2019...* zm, int color, int size, int style); // 加载hzk16字库文件 int loadhzk16(); //从字库获取一个字的点阵显示模式 void getWord

    61210

    软件质量的黄金准则

    这也就意味着如果一个项目的应用越广泛,那么开发者就会越发理所应当地认为会有人帮助他们解决一切问题。长久以往,这些开发者面对热门工具的问题就会熟视无睹。... Java ,如果想要修改嵌套结构资料中的数值,只需要将参照变数串起来,例如: a.b.c.d.e = 10 但是, Haskell 则是每多一层,每个等号就会重复之前等号的序列并多一个取值用的函数...更一般地讲, 如果你能践行这条规则的话,最后就会做到让非法状态无法表示。 在上述例子,前者的head类型签名则是通过返回一个Maybe来绕过可能存在的空列表。...Haskell 社区内的经典例子,cabal 与堆栈的分歧,源于 FPComplete 与 Cabal 贡献者之间的分歧(根据 Haskell 的 reddit 子版块反馈修正)。...如此一来,Haskell 社区分崩离析,导致初次使用的新手一头雾水并且用户体验极差。

    55120

    Solr各个版本的差异

    构建搜索引擎常用的方式目前主要有两种:一是solr,一是ES。我这里推荐solr,如果你还要加上大数据的一些特性,建议使用ES。...使用 Apache Solr 可以满足这些要求,它是一种开放源码的、基于 Lucene Java 的搜索服务器,易于加入到 Web 应用程序。...Solr 于 2007 年 1 月酝酿成熟,整个项目孵化期间,Solr 稳步地积累各种特性并吸引了一个稳定的用户群体、贡献者和提交人。...现在的Solr作为一个单独的Java应用服务器分发,包括Unix或者Windows平台上使用的启动和停止脚本,以及一个安装脚本来设置生产环境下的Solr安装,*nix平台上通过/etc/init.d...作为一个“webapp”部署在其它Servlet容器(或者其它Jetty的实例)是不支持的,同时当有额外的变化时可能会在内部对Solr进行调整以利用自定义网络堆栈功能导致未来5.x版本不工作。

    2.7K10

    为什么 Haskell 是我们构建生产软件系统的首选

    在这篇文章,我将介绍 Haskell 的一些突出特性,这些特性让它成为一种出色的、具有行业水准的语言,从而非常适合构建商业软件;我还会解释为什么我们的新项目考虑使用的第一个工具往往就是它。...例如,撰写 Haskell 时,无需担心以下问题: 我是否需要检查这个字段是否为空? 如果请求负载缺少字段怎么办? 这个字符串已经被解码为整数了吗? 如果无法将这个字符串解码为整数怎么办?...假设我们要检查一个元素是否某个列表。我们要找一个函数,这个函数需要一个要搜索的项目、一个项目列表并返回一个布尔值。我们不关心项目的类型,只要搜索项目和列表项目属于同一类型即可。...我们做过的一个项目中,我们开始 Haskell Web 服务,而不是现有的 PHP 来实现新的 API 端点。...与类方法编码类似规则的做法(常见于不具有 sum 类型的面向对象语言)相比,这是一组更强大的保证。例如,使用上述类型,就无法定义没有应付金额的 CustomerInvoice。

    1.4K10

    Debian 7上的Yesod,Nginx和MySQL(Wheezy)

    安装必需的软件包 由于Yesod是使用Haskell编程语言构建的,因此Haskell软件包是初步安装。Web框架Yesod需要来自Haskell平台的两个软件包。...另一方面,固定版本号可能会导致其他问题,尤其是当您还使用cabal管理其他大型项目时(例如pandoc,用于转换标记格式的Haskell库)。...如果您不添加此参数,cabal可能会失败,如果它无法200步回溯中找到解决方案。 Linode 1G上构建yesod-platform和yesod-bin打包需要大约20分钟。...使用Yesod 要开始开发Yesod网站,首先要构建一个脚手架。开发,scaffold是占位符或示例集,它由所选框架或编译器的默认值构成。然后开发人员可以覆盖脚手架网站。...然后沙箱安装项目所需的包: cabal install --enable-tests .

    82020

    谷歌 IDX 集成 iOS 和 Android 模拟器,扩展了模板库

    作者 | Sergio De Simone 译者 | 明知山 策划 | 丁晓昀 推出六个月后,谷歌扩展了其基于 AI 和云的实验性共享工作空间项目 IDX,引入了 集成的 iOS 模拟器和...Android 模拟器、新的项目模板,与 Nix 包管理器更好的集成,等等。...这使得开发人员可以快速启动新项目,无需使用 Nix 进行自定义设置。此外,IDX 支持直接从 GitHub 或本地文件导入代码。...所有 IDX 项目,包括自定义和基于模板的项目,都是使用 Nix 包管理器配置的。 IDX 使用 Nix 来定义工作空间的环境配置。...通过添加自定义 IDX 启动器模板、语法高亮、错误检测、代码完成以及更好地处理损坏配置,IDX Nix 支持得到了改进。

    12010

    又要头秃?2020年七大AI编程语言大盘点

    Deep Java Library 由Amazon构建使用Java来创建和部署深度学习能力。...Kubeflow Kubeflow用于Kubernetes上轻松部署和管理机器学习堆栈,提供现成的机器学习解决方案。...Neuroph Neuroph GUI的帮助下,Neuroph使得使用Java开源框架设计神经网络成为可能。 如果Java有真正的垃圾回收,那么大多数程序执行完后都会把自己从内存删除。...采用了Lisp开发的一些著名项目包括Reddit和HackerNews。 就Lisp而言,你知道它是世界上最美丽的语言,至少Haskell出现之前是这样。——Larry Wall ?...Haskell被认为是一种非常安全的编程语言,与其他编程语言相比,它在错误处理方面提供了更大的灵活性。Haskell很少发生错误。

    1.7K20

    无需 Dockerfile,打造你的专属即时容器镜像 : Nixery 中文使用指南

    如何确保各种不同环境下快速构建和运行所需的服务和应用,一直是开发者和运维团队关注的焦点。 Nixery,一个基于 Nix 包管理器的工具,能够帮助你快速构建和获取简单、即开即用的容器镜像。...Nixery 是一个由 Tazjin 开发的项目,它基于 Nix 包管理器,为用户提供了按需构建的容器镜像服务。...你只需项目的 Dockerfile 中指定所需的镜像 URL,然后 CI/CD 过程中使用它。...当你请求一个包含特定工具的镜像时,Nixery 使用 Nix 构建系统来解析这些工具的依赖关系并实时构建镜像。这意味着即使是较大的工具集,也能在短时间内构建完成并供你使用。.../default.nix {}' 这将生成一个你可以本地使用的自定义 Docker 镜像。构建完成后,你可以使用 Docker 运行生成的镜像。 用例分享 1.

    12910

    高薪AI工程师都在用什么编程语言?2020 年七大 AI 编程语言大盘点

    Deep Java Library 由Amazon构建使用Java来创建和部署深度学习能力。...Kubeflow Kubeflow用于Kubernetes上轻松部署和管理机器学习堆栈,提供现成的机器学习解决方案。...Neuroph Neuroph GUI的帮助下,Neuroph使得使用Java开源框架设计神经网络成为可能。 如果Java有真正的垃圾回收,那么大多数程序执行完后都会把自己从内存删除。...采用了Lisp开发的一些著名项目包括Reddit和HackerNews。 就Lisp而言,你知道它是世界上最美丽的语言,至少Haskell出现之前是这样。...Haskell被认为是一种非常安全的编程语言,与其他编程语言相比,它在错误处理方面提供了更大的灵活性。Haskell很少发生错误。

    1.8K20

    以太坊主网上测试工具推荐

    如果你想进行确定性测试(不会在星期二通过,而星期五失败),我强烈建议你使用dapp.tools.其背后使用hevm,这是Haskell的EVM实现 使用Haskell编写的EVM(而不是Python或JS...并非所有协议都将部署到同一测试网。但是有100%的可能性将它们都部署主网上。因此,你需要将主网用作测试网。...流行的EVM实现,例如hevm, buidler-evm,和ganache-cli,有一个选项可以从主网 fork ....这样可以大大减少测试时间,尤其是当测试需要与主网协议进行大量交互时 调试失败的交易 沙箱 如果你使用的是dapp.tools, buidler,或brownie,那应该恭喜你,他们已经将日志记录和堆栈跟踪内置到了测试框架本身...我很清楚并且已经使用过它,但是由于花费了很多时间和精力,最终还是回到了使用revert消息。 主网上 哇,主网上失败的交易,我该如何调试?

    1.2K20

    谷歌推出创新性 Web 开发工具 Project IDX,助力开发者构建强大应用

    8 月份 宣布 IDX 项目时,该团队(包括 Chinnathambi)表示,该产品是基于浏览器的,“旨在通过流行的框架和语言简化全栈 Web 和多平台应用程序的构建、管理和部署。”...我选择了一个 Web 应用模板——从这里你可以选择自己创建代码或使用熟悉的框架,如 React 或 Angular。 我注意到的第一个“实验性”特性是启用 Nix)(跨平台包管理器)。...在其文档,谷歌说“IDX 使用 Nix 定义每个工作空间的环境配置”。 因为我个人并不熟悉 Nix,所以我决定取消这个选项,然后继续创建工作空间的下一步……这时出现了一个错误。...IDX 的 AI 功能相当隐蔽——屏幕的右下方有一个小图标,当我点击它时,显示如下: 遗憾的是,我无法告诉你 IDX AI 到底有多好,因为我收到了以下消息:“IDX AI 您的地区尚未启用。...我可以理解为什么 Flutter 开发人员会想要使用 IDX,因为它是谷歌构建的跨平台开发工具包。所以使用谷歌 IDE 是有道理的。

    20910

    别再手写RPC了,Apache Thrift帮你自动生成RPC客户端及服务端代码

    背景介绍 Thrift读音[θrɪft],是一个轻量级、跨语言的远程服务调用框架,最初由Facebook开发,后面进入Apache开源项目。...代码生成 系统以简单的定义语言为输入并生成代码 跨使用抽象堆栈构建的编程语言 可互操作的 RPC 客户端和服务器。...传输层(Transport Layer):传输层负责直接从网络读取和写入数据,它定义了具体的网络传输协议;比如说TCP/IP传输等。...(四) 多语言/跨语言支持 Thrift支持C++、 Java、Python、PHP、Ruby、Erlang、Perl、Haskell、C#、Cocoa、JavaScript、Node.js、Smalltalk...谁在使用 Thrift Thrift很多开源项目中已经被验证是稳定和高效的,例如Cassandra、Hadoop、HBase等;国外在Facebook中有广泛使用,国内包括百度、美团小米、和饿了么等公司

    1.3K30
    领券