我正在尝试在Linux上升级Cabal: $ cabal –version cabal-install version 1.16.0.2 using version 1.16.0 of the Cabal library 我得到了很多错误: $ cabal install cabal cabal-install ……………………….. checking for sendfile in sys/socket.h… no checking for gethostent… yes checking for accept4… yes configure: creating ./config.status config.status: creating network.buildinfo config.status: creating include/HsNetworkConfig.h configure: WARNING: unrecognized options: –with-compiler, –with-gcc Building network-2.6.2.0… Preprocessing library network-2.6.2.0… […]
我试图升级cabal到最新版本,因为当前版本有一个错误: cabal –version cabal-install version 1.16.0.2 using version 1.16.0 of the Cabal library which cabal /usr/bin/cabal curl http://hackage.haskell.org/package/cabal-install-1.22.3.0/cabal-install-1.22.0.3.tar.gz tar xvfz cabal-install-1.22.3.0.tar.gz cd cabal-install-1.22.3.0 cabal install 似乎在~/.cabal安装cabal 1.22.3.0,但没有bin目录,只有share, packages, logs, lib目录,我无法在文件夹中find可执行文件。 那么我可以find我刚安装的新的cabal吗? 更新: cabal update cabal install cabal-install ………………. checking for sendfile in sys/socket.h… no checking for gethostent… yes checking for accept4… yes configure: creating ./config.status […]
我试图从目录的内容使用Codec.Archive.Tar创build一个tar文件,但我也想要清理目录一旦tar文件已经创build。 这里有一个小例子来说明我的问题: import System.Directory import qualified Codec.Archive.Tar as T listFile = do createDirectory "dir" createDirectory "dir/dir2" tarfile <- fmap T.write $ T.pack "dir" ["dir2"] removeDirectoryRecursive "dir" return tarfile 当我从ghci中调用函数listFile ,我回来了 "*** Exception: dir/dir2: getModificationTime:getFileTimes:getFileStatus: does not exist (No such file or directory) 我猜是由tar文件被懒惰地生成和目录被严格清理。 因此,在tar文件被实际创build之前,该目录被删除。 首先,我是否正确地分析了为什么这是失败的? 如果是这样,我能做些什么来解决这个问题? 我不想严格生成tar文件,因为它可能相当大,我不想将它全部存储在内存中。 什么是“惯用”的方式来延迟删除目录,直到tar文件已经生成?
你好,我想列举在Linux / * nix上的所有真正的用户和它的数据。 我可能需要parsing/etc/passwd和/etc/shadow并检查用户是否有密码。 问题是不是跨平台的(在* BSD上没有/etc/shadow )。 有没有可以使用的跨平台库/命令?
我有一个文件MAIL.txt包含奇怪的字符(这个文件来自Windows,我在Linux上)。 它包含stringrec 。 当我运行grep "rec" MAIL.txt在terminal,我得到了预期的输出。 但是这个命令在Haskell中失败了: Prelude System.Process> r <- readProcessWithExitCode "grep" ["rec", "MAIL.txt"] "" *** Exception: fd:13: hGetContents: invalid argument (invalid byte sequence) 什么是解释,有没有办法避免(不修改奇怪的文件)? 这里是grep的输出,你可以看到奇怪的字符: 实际上这些应该是重音字母。 我无法用readFile读取文件: > r <- readFile "MAIL.txt" > r "Bonjour,\r\n\r\n Quelques remarques sur cette fiche :\r\n\r\n- *** Exception: MAIL.txt: hGetContents: invalid argument (invalid byte sequence) 也许有一种方法来检测Data.Binary的问题? 解 要详细说明@ […]
我尝试执行 $ cabal –version 但它说cabal没有安装。 你可以通过inputsudo apt-get install cabal-install来安装它。 但是当我这样做时,它说:cabal-install已经是最新的版本。 但是,我不能使用它。 为什么?
我在emacs中使用bashterminal(主要是运行haskell解释器)。 由于“行运行”模式(比“字符运行”)更容易编辑长命令(因为它支持大部分移动命令),所以我通常以行模式运行脚本。 不过,我有时会进入无限枚举(如打印一个无限列表),不断打印出数字。 我很清楚Cd进入EOF打印这样的无限打印,但它只能在emacs的terminal的字符模式下工作。 问题:如何在emacs的bashterminal的线路运行模式下inputEOF?
作为学习Haskell的一部分,为了好玩,我试图使用树莓派。 遇到无数问题在PI上安装ghci我已经解决了只使用ghc。 所以要创build,编译和运行一个新的Haskell文件: vi first.hs i main = putStrLn "First" Esc :w :q ghc -o first first.hs ./first 输出是:“第一” 我想自动化这些命令: Esc :w :q ghc -o first first.hs ./first 这些可以从vi / vim中作为新的命令添加,如下所示: :mycustomcommands 并从vi / vim编辑器运行?
我的haskell程序使用我自己的模块生成.tex输出。 每当我想查看结果时,我都无法看到我必须运行“pdflatex”。 我不敢相信这不能以更直接的方式来完成。 有没有办法让我的代码编译.tex文件?
我在我的虚拟环境(Debian Wheezy与GHC 7.8.4安装)中quoteFile面临问题。 我从Text.Shakespeare.Text描述了准标准文件的文件版本: import Language.Haskell.TH.Quote (QuasiQuoter, quoteFile) import Text.Shakespeare.Text (st) sfFile :: QuasiQuoter stFile = quoteFile st 这在我的主机上运行得非常好,但是,在我的虚拟环境(Docker镜像)上出现以下错误: 尝试运行编译时代码时发生exception:test-file.md:hGetContents:无效的参数(无效的字节序列) 代码:Language.Haskell.TH.Quote.quoteExp stFile“test-file.md” 我的小REPL调查显示,文本文件中的第一个Unicode字符发生错误,在我目前的情况下,这是'«'左指针双angular引号: import System.IO (IOMode(..), hGetContents, openFile, openBinaryFile, utf8) main = do h <- openBinaryFile "test-file.md" ReadMode hGetContentContents h — Binary read works fine out-of-box. h' <- openFile "test-file.md" ReadMode hSetEncoding h' utf8 hGetContentContents […]