如何在cabal安装后删除不需要的构建工件

时间:2014-10-17 22:53:45

标签: haskell pandoc cabal-install

我正在使用pandoc安装一些软件包(pandoc-citeproccabal install),以便构建这些软件包的最新二进制文件,而不是当前通过我的软件包管理器提供的二进制文件(debian的{{ 1}})。这很好但是安装了大量额外的软件包,这些软件包可能是构建过程所需要的,占用的空间比单独安装debian二进制文件时要多得多。

如果二进制文件完成后,如何在不删除必要文件的情况下删除构建apt-getpandoc二进制文件所需的这些文物? (例如,保留pandoc-citeproc并删除其他所有内容是否已足够?cabal/bin包在这里有用吗?或者在cabal中是否有内置方法?)


*是的,我关心磁盘空间。在这种情况下,因为我将它构建为一个docker镜像,我希望它不会超过必要的,尽管原则上这个问题比docker用例更通用。

1 个答案:

答案 0 :(得分:2)

按照@ DiegoNolan的建议结束:

apt-get update && apt-get install -y cabal-install \
  && cabal update \
  && cabal install --bindir=/usr/local/bin --global pandoc pandoc-citeproc \
  && apt-get remove --auto-remove --purge -y cabal-install \
  && rm -rf /root/.cabal/lib /root/.cabal/packages

导致添加<图像大小为100 MB而不是1.2 GB。除了在安装后删除.cabal/lib之外,在安装完成后,发现有必要使用cabal-install命令删除--auto-remove --purge添加的构建依赖项。 (由于我在Docker中执行此操作,所有命令必须出现在同一个AUFS层中,因此多个&&