Stackage 鏡像使用說明

在 @Justin Wong 的幫助下,我在 TUNA 鏡像站上搭建起了 Stackage 鏡像,方便國內使用 stack 的 Haskell 開發者。在 stack 的全局配置文件(Linux/OSX 下默認為~/.stack/config.yaml,Windows下默認為%APPDATA%stackconfig.yaml)里這樣寫即可:

package-indices:n- name: Tsinghuan download-prefix: https://mirrors.tuna.tsinghua.edu.cn/hackage/package/n http: https://mirrors.tuna.tsinghua.edu.cn/hackage/00-index.tar.gznsetup-info: "http://mirrors.tuna.tsinghua.edu.cn/stackage/stack-setup.yaml"nurls:n latest-snapshot: http://mirrors.tuna.tsinghua.edu.cn/stackage/snapshots.jsonn lts-build-plans: http://mirrors.tuna.tsinghua.edu.cn/stackage/lts-haskell/n nightly-build-plans: http://mirrors.tuna.tsinghua.edu.cn/stackage/stackage-nightly/n

然後,stack 工具下載 Hackage 包、Stackage snapshot 配置文件、ghc 安裝包的位置都在 TUNA 鏡像站,不需要像之前一樣走 github/s3,速度就上去了(尤其是 stack setup 命令)。

很久以前我寫過一篇 Haskell 開發環境配置的教程,當時推薦的 Haskell 包管理器是 cabal-install 而非 stack,一大原因就是考慮國內網路條件,使用 stack 多有不便,不過現在就沒有這個問題了。時過境遷,這兩個工具都進化了許多,Cabal hell 的問題因為 sandbox 和 new-build 功能,已經不再困擾 cabal-install ,而 stack 則實現了 Docker/Nix 集成,可以無痛管理 non-Haskell 依賴庫並進行部署。要是有人感興趣的話,等過完年我可以再出更新版的配環境教程,追加一些原來那版沒覆蓋的內容。

預祝大家新年快樂。


推薦閱讀:

C 語言工程師轉做 Scala 需要補充哪些知識?
scala語法問題: range的向上向下轉型?
在Haskell里,每個類型都可以構造出來一個此類型的表達式嗎?
React 0.14:揭秘局部組件狀態陷阱
Lens: 從入門到再次入門

TAG:Haskell | 函数式编程 |