haskell - 在纯 nix 中使用 http-client/http-client-tls 时堆栈执行失败
问题描述
我正在使用nix、stack和http-client-tls在 Haskell 中从/向 HTTPS 获取/发布数据。
问题是,stack exec project-exec
失败了:
project-exe: security: createProcess: runInteractiveProcess: exec: 不存在(没有这样的文件或目录)
但是,如果我pure: false
在 stack.yaml 中设置 nix,它可以正常工作。
那么我是否在我的 nix 环境中丢失了一些东西?我该如何解决这个问题?
main.hs:
{-# LANGUAGE OverloadedStrings #-}
--
module Main where
--
import qualified Data.ByteString.Lazy as B
--
import Network.HTTP.Client
import Network.HTTP.Client.TLS
--
url = "https://www.google.com.tw/search?q=test"
--
main :: IO ()
main = do
mgt <- newManager tlsManagerSettings
request <- parseRequest url
res <- httpLbs request mgt :: IO (Response B.ByteString)
print res
堆栈.yaml:
resolver: lts-14.11
packages:
- .
nix:
enable: true
pure: true
# shell-file: shell.nix
# packages: [ ]
解决方案
pure: true
意味着排除在“现有”外壳中定义的可执行文件。
所以看起来你可能只需要明确定义你所依赖的包。
推荐阅读
- scala - Scala如何在hashmap项上调用未来函数
- oauth-2.0 - 将 google oauth2 与 php 邮件程序一起使用
- asp.net-ajax - 如何修复 scriptresource 和 webresource.axd 加载问题
- c - 如何对字符串进行插值搜索?
- c++ - 具有原子成员的单例类的实现
- contiki - 如何在 cooja 模拟器中加载包含节点及其 RSSI 的数据集 (.rs)
- php - filter_id() 在 PHP 中应该是整数还是字符串?
- google-chrome - 如何在谷歌表格中为一行设置计时器
- post - 如何从 Blogger 帖子和页面中删除填充
- pgadmin - 使用德语键盘在 pgadmin 4 上评论/取消评论行