我正在使用nix,stack和http-client-tls从Haskell中的HTTPS获取/发布数据。
问题是,stack exec project-exec
失败:
项目-exe:安全性:createProcess:runInteractiveProcess:exec:不存在(不存在此类文件或目录)
但是,如果我在stack.yaml中为nix设置pure: false
,它可以正常工作。
所以我在nix env中丢失了什么吗?我该如何解决?
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
stack.yaml:
resolver: lts-14.11
packages:
- .
nix:
enable: true
pure: true
# shell-file: shell.nix
# packages: [ ]
[pure: true
表示排除在'现有'外壳中定义的可执行文件。
所以看起来您可能只需要显式定义您依赖的包。