【问题标题】:Cabal: Does not exists in Windows 8.1Cabal:在 Windows 8.1 中不存在
【发布时间】:2015-09-19 01:05:58
【问题描述】:

今天我在笔记本电脑上安装了 windows 8.1 和 haskell。我正在尝试构建自己的 haskell 库,但是当我尝试使用 cabal sdist 时出现错误。这是错误:

D:\Development\School\AFP\Assignments\Practice\Exercise\Project>cabal sdist
Distribution quality errors:
'license: NONE' is not a recognised license. The known licenses are: GPL,
GPL-2, GPL-3, LGPL, LGPL-2.1, LGPL-3, AGPL, AGPL-3, BSD2, BSD3, MIT, ISC,
MPL-2.0, Apache, Apache-2.0, PublicDomain, AllRightsReserved, OtherLicense
Distribution quality warnings:
No 'category' field.
No 'maintainer' field.
No 'synopsis' field.
A 'license-file' is not specified.
When distributing packages it is encouraged to specify source control
information in the .cabal file using one or more 'source-repository' sections.
See the Cabal user guide for details.
Note: the public hackage server would reject this package.
Warning: Cannot run preprocessors. Run 'configure' command first.
Building source dist for Project-0.1.0.0...
cabal: does not exist

在我使用“cabal sdist”之前,我使用了以下命令:

  1. 阴谋集团初始化
  2. cabal 沙盒初始化
  3. 阴谋安装-j

每个命令都成功,除了 cabal sdist。 cabal 安装仅给出以下警告:

D:\Development\School\AFP\Assignments\Practice\Exercise\Project>cabal install -j

Resolving dependencies...
In order, the following will be installed:
Project-0.1.0.0 (reinstall)
Warning: Note that reinstalls are always dangerous. Continuing anyway...
Notice: installing into a sandbox located at
D:\Development\School\AFP\Assignments\Practice\Exercise\Project\.cabal-sandbox
Configuring Project-0.1.0.0...
Building Project-0.1.0.0...
Installed Project-0.1.0.0

这是我的 Project.cabal 文件:

-- Initial Project.cabal generated by cabal init.  For further 
-- documentation, see http://haskell.org/cabal/users-guide/

-- Initial Project.cabal generated by cabal init.  For further 
-- documentation, see http://haskell.org/cabal/users-guide/

name:                Project
version:             0.1.0.0
-- synopsis:            
description:         Education
license:             NONE
-- license-file:     
-- author:              
-- maintainer:          
-- copyright:           
-- category:            
build-type:          Simple
extra-source-files: File6, File5, File4, File3, File2 
cabal-version:       >=1.10

library
  exposed-modules:     File1
  -- other-modules:       
  -- other-extensions:    
  build-depends:       base >=4.8 && <4.9, QuickCheck >=2.8 && <2.9
  hs-source-dirs:      src
  default-language:    Haskell2010

我尝试了谷歌,但我找不到一个好的解决方案。我使用以下版本:

Cabal 版本:1.22.4.0

Haskell 版本:7.10.2

如果您需要更多信息,请询问。

【问题讨论】:

标签: haskell cabal


【解决方案1】:

我对@9​​87654322@ 一无所知,但问题很明显:您已在 cabal 文件中指定“NONE”作为许可证,但 sdist 选项不允许这样做。 configurebuildinit 不关心具体的许可证,但 sdist 显然关心。

更多信息,我在谷歌搜索“cabal sdist”并找到this

这个 [cabal sdist] 的优点是 Cabal 会做更多检查,并确保 tarball 具有 HackageDB 期望的结构。

HackageDB 可能需要一个有效的许可证,因此为什么不允许“NONE”。

【讨论】:

  • 感谢您的回复,但这不是问题所在。如果没有许可证文件,Cabal sdist 将创建一个 tar。
【解决方案2】:

问题是 cabal 无法在额外源文件中找到文件。我以为我不必添加 haskell 文件的扩展名,但这是必需的。

我还有另一个问题。 extra-source-files 没有使用 hs-source-dirs,所以我必须在文件前面显式写“src/”。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-07-18
    • 2018-06-29
    • 1970-01-01
    • 1970-01-01
    • 2014-03-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多