首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用Haskell Stack软件包管理器中的清华镜像

如何使用Haskell Stack软件包管理器中的清华镜像
EN

Stack Overflow用户
提问于 2019-06-19 12:46:16
回答 2查看 1.3K关注 0票数 5

我使用的是Haskell Stack包管理器的2.1.1版本。

正如https://mirrors.tuna.tsinghua.edu.cn/help/hackage/所描述的那样,清华大学提供了中国防火墙背后可用的黑客攻击镜像。

但是,当我按照这些指示,添加

代码语言:javascript
复制
package-indices:
  - name: Tsinghua
    download-prefix: http://mirrors.tuna.tsinghua.edu.cn/hackage/package/
    http: http://mirrors.tuna.tsinghua.edu.cn/hackage/00-index.tar.gz
    hackage-security:
        keyids:
        - 0a5c7ea47cd1b15f01f5f51a33adda7e655bc0f0b0615baa8e271f4c3351e21d
        - 1ea9ba32c526d1cc91ab5e5bd364ec5e9e8cb67179a471872f6e26f0ae773d42
        - 280b10153a522681163658cb49f632cde3f38d768b736ddbc901d99a1a772833
        - 2a96b1889dc221c17296fcc2bb34b908ca9734376f0f361660200935916ef201
        - 2c6c3627bd6c982990239487f1abd02e08a02e6cf16edb105a8012d444d870c3
        - 51f0161b906011b52c6613376b1ae937670da69322113a246a09f807c62f6921
        - 772e9f4c7db33d251d5c6e357199c819e569d130857dc225549b40845ff0890d
        - aa315286e6ad281ad61182235533c41e806e5a787e0b6d1e7eef3f09d137d2e9
        - fe331502606802feac15e514d9b9ea83fee8b6ffef71335479a2e68d84adc6b0
        key-threshold: 3 # number of keys required

        # ignore expiration date, see https://github.com/commercialhaskell/stack/pull/4614
        ignore-expiry: yes

到~/..stack/config.yml,然后在我的项目目录中运行stack run时,我会看到:

未找到用于aeson-1.4.2.0@sha256:8166752a9669597db375343df19805069595fed9c613f98504e418849f40fe18,7007,更新所选镜像http://mirrors.tuna.tsinghua.edu.cn/hackage/package/下载根目录的阴谋文件信息无法反序列化/root.json:畸形:(第1行第1列):意外的"<“期望空格或JSON值

它还有一个堆栈镜像;我尝试通过将resolver: https://mirrors.tuna.tsinghua.edu.cn/stackage/lts-haskell/lts-13.25.yaml添加到我的项目的stack.yaml中来添加更改堆栈解析器,但这在以下方面失败:

https://mirrors.tuna.tsinghua.edu.cn/stackage/lts-haskell/lts-13.25.yaml读取快照时异常:无法从https://mirrors.tuna.tsinghua.edu.cn/stackage/lts-haskell/lts-13.25.yaml:Error中解析$:快照必须有解析器或编译器

我的项目只是一个用stack new myProjectName创建的默认项目,我所做的唯一其他配置更改就是添加

代码语言:javascript
复制
setup-info: "http://mirrors.tuna.tsinghua.edu.cn/stackage/stack-setup.yaml"
urls:
  latest-snapshot: http://mirrors.tuna.tsinghua.edu.cn/stackage/snapshots.json
  lts-build-plans: http://mirrors.tuna.tsinghua.edu.cn/stackage/lts-haskell/
  nightly-build-plans: http://mirrors.tuna.tsinghua.edu.cn/stackage/stackage-nightly/  

~/.stack/config.yamlhttps://mirrors.tuna.tsinghua.edu.cn/help/stackage/上建议的那样。这让我可以从镜子下载GHC,但似乎不允许从那里提取包。

什么是建议的方式,使堆栈/黑客(无论是由stack (build|run)使用)使用清华镜子?理想情况下,我不希望从默认的AWS镜像中提取任何内容。

EN

回答 2

Stack Overflow用户

发布于 2019-06-22 10:04:37

我找到了一种解决方案:https://github.com/commercialhaskell/stack/issues/4866https://github.com/commercialhaskell/stack/issues/4870。似乎Stack 2不推荐它以前使用的软件包格式,这是清华镜像使用的格式,所以Stack 2不支持镜像。解决方案是使用预2.0版本或切换到Cabal。

票数 3
EN

Stack Overflow用户

发布于 2021-01-01 17:34:02

更新2021年1月

清华大学更新了他们的向导关于如何适应堆栈>= v2.1.1。

为了节省您的几次点击:

代码语言:javascript
复制
# ADD THESE LINES TO `~/.stack/config.yaml`

package-indices:
  - download-prefix: http://mirrors.tuna.tsinghua.edu.cn/hackage/
    hackage-security:
        keyids:
        - 0a5c7ea47cd1b15f01f5f51a33adda7e655bc0f0b0615baa8e271f4c3351e21d
        - 1ea9ba32c526d1cc91ab5e5bd364ec5e9e8cb67179a471872f6e26f0ae773d42
        - 280b10153a522681163658cb49f632cde3f38d768b736ddbc901d99a1a772833
        - 2a96b1889dc221c17296fcc2bb34b908ca9734376f0f361660200935916ef201
        - 2c6c3627bd6c982990239487f1abd02e08a02e6cf16edb105a8012d444d870c3
        - 51f0161b906011b52c6613376b1ae937670da69322113a246a09f807c62f6921
        - 772e9f4c7db33d251d5c6e357199c819e569d130857dc225549b40845ff0890d
        - aa315286e6ad281ad61182235533c41e806e5a787e0b6d1e7eef3f09d137d2e9
        - fe331502606802feac15e514d9b9ea83fee8b6ffef71335479a2e68d84adc6b0
        key-threshold: 3 # number of keys required

        # ignore expiration date, see https://github.com/commercialhaskell/stack/pull/4614
        ignore-expiry: no
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56668007

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档