2011-11-10 58 views
13

所以我想建立一个用于Haskell开发的Linux机器,但有一个巨大的缺陷 - 在这台机器上没有root权限。我们当然可以让管理员为我们安装GHC,最终。但是,从长远来看,当我们想要升级时,我们需要讨论它们,等等,以便在用户区完成所有任务。这也意味着我们要安装我们链接到用户空间的c库文件,等等,让所有的东西尽可能无忧无虑。GHC无根安装

所以,问题是,我会怎么做一个纯粹的GHC用户级安装?该机器将具有gcc和通常的工具链。如果有必要,我们可以从一个典型的ghc安装开始,让球滚动,但它不会很好。

此外,有关管理这样的环境的任何提示将不胜感激,尤其是涉及如何使用多个开发人员/帐户可以管理此类设置。

回答

4

你显然需要一个目录,所有相关的用户至少有读取权限。说/ home/foo,带有子目录bin,lib,share,.cabal。然后./configure --prefix=/home/foo和& & make install,并确保/ home/foo/*位于每个人的PATH,LIBRARY_PATH等中的/ usr/*之前。您应该从安装gcc和c-libs开始,当C安装好后,安装ghc。

+0

特别是,您需要安装http://haskell.org/ghc/download_ghc_7_2_1#binaries中的二进制ghc发行版,因为您需要使用ghc来引导自编译。 –

6

我也是这样做的。我创建了一个目录~/usr并将--prefix=$HOME/usr传递给了所有的配置脚本。使用Haskell平台使这个过程更加平滑。

1

我设法通过堆栈安装ghc following these instructions。它像一个魅力一样工作。我唯一需要做的事情是安装the GMP library并将其添加到LD_LIBRARY_PATH

+0

你确定这在某些时候不需要root权限吗?安装Stack的标准方法都是这样做的,AFAIK。 – leftaroundabout

+0

我没有这台机器的root权限,所以是的,我确信:-)我链接到的指令只是下载一个二进制版本的堆栈,然后堆栈直接下载GHC和GHCI,并将它们放入其中〜/ .stack目录。 – Nicole

+0

@leftaroundabout,链接的指令看起来像他们将堆栈安装在用户特定的目录中。 – dfeuer