通过here的安装脚本完成Haskell Stack的全新安装时:
wget -qO- https://get.haskellstack.org/ | sh
其次是:
stack setup
最终会得到一个1.5 GB大小的$HOME/.stack/
目录(从120 MB以下下载)。如果你运行:
stack update
大小增加到2.5 GB。
我习惯于Java,它通常被认为是大/大(几乎涵盖所有内容,并且已经弃用了向后兼容性的替代方案),但作为比较:包括JDK,独立JDK和JDK源的IDE是可能大约1.5 GB。
另一方面,Haskell是一种“小美”语言(从我所听到和读过的,这可能主要是指语法和语义,但仍然),是大/大,看起来很奇怪对我来说。
.stack/programs/x86_64-linux/ghc-tinfo6-nopie-8.2.2/lib/ghc-8.2.2
(1.3 GB)和.stack/indices/Hackage
(980 MB)。我假设第一个是安装包(并且与stack setup
相关),后者是Hackage包存档的一些索引(并且与stack update
相关)?可以减少这些(如上所述 3 或在线获取所需的黑客信息)?答案 0 :(得分:9)
正如你可以通过检查看到的那样,它是:
的组合programs/x86_64-linux/ghc-8.2.2*
或类似)00-index.tar
和01-index.tar
的两个相同副本,每个副本包含Hackage数据库中发布的每个包的每个版本的.cabal
文件,每个版本大约457兆,加上一些其他文件,总计达到1.0演出运行stack setup
时会安装第一个;第二次运行stack update
。
回答你的问题:
00-index.tar
,00-index.tar.gz
和01-index.tar
情况所证明的那样。*_p.a
文件)。我没有对此进行过广泛的测试,但似乎有效。我想这将为你节省大约800兆。如果仅想要动态链接程序(例如,使用*.a
),您还可以删除静态版本(所有ghc -dynamic
文件)。我再次没有对此进行过广泛的测试,但似乎有效。删除动态版本将非常困难 - 您必须找到一种方法只删除那些GHC本身不需要的*.so
文件,并且您删除的任何内容都不再可以在解释器中加载。 00-index.tar
和00-index.tar.gz
(节省大约半千兆字节),而堆栈似乎运行正常。但是,下次运行stack update
时,它会重新创建它们。我不认为这是在任何地方记录的,因此确定可以安全删除的内容将是大量的试验和错误。没有任何提议,前几天,我在一些3TB的驱动器上看到了很多优惠,我兴奋地命令两个,然后才意识到我没有任何东西可以穿上他们。它有点几个千兆字节,不是吗?
我想我不会花费大量精力试图削减你的.stack
目录,至少在一台强大的台式机上。如果您正在使用相对较小的SSD的笔记本电脑上工作,请考虑将您的.stack
目录放在支持透明压缩的文件系统(例如Btrfs)上,如果您认为它可能会失控。 / p>