2015-11-11 32 views
1

下面是vagrant文​​件的内容。当我运行vagrant up命令时,它会根据需要安装cabal,但它位于根目录中。因此,它变得不可用。我想使用cabal update将cabal版本更新到最新版本。但它没有发生。Cabal使用Vagrantfile代替/ home/vagrant目录安装在根目录下

最后,在我的虚拟机中,我有旧版本的cabal,它带有haskell-platform这对我没用。但是,当我通过显式登录到虚拟机来单独执行这些命令时,并且不会将任何内容放入Vagrantfile中时,它会起作用,并且我得到cabal version 1.22.6.0,这是我需要的,但是使用Vagrantfile。 如何确保cabal未安装在根目录中?相反,我认为它应该得到安装在像这样的/ home /游民目录:/home/vagrant/.cabal/bin

==> default: Setting up haskell-platform (2013.2.0.0.debian3) ... 
==> default: Processing triggers for libc-bin (2.19-0ubuntu6.6) ... 
==> default: ******************************** 

    ==> default: Config file path source is default config file. 
    ==> default: Config file /root/.cabal/config not found. 
    ==> default: Writing default configuration to /root/.cabal/config 
    ==> default: Downloading the latest package list from hackage.haskell.org 
    ==> default: ******************************** 
    ==> default: Resolving dependencies... 
    ==> default: Downloading binary-0.7.6.1... 
    ==> default: Configuring binary-0.7.6.1... 
    ==> default: Building binary-0.7.6.1... 
    ==> default: Preprocessing library binary-0.7.6.1... 

游民文件下的内容:

Vagrant.configure(2) do |config| 
     config.vm.box = "ubuntu/trusty32" 
     config.vm.box_check_update = false 
     config.vm.provider "virtualbox" do |vb| 
     vb.gui = true 
     vb.memory = "2048" 
     end 

     config.vm.provision "shell", inline: <<-SHELL 
     cd /home/vagrant  
     sudo apt-get update 
     echo "-----------------------------" 
     echo "-----------------------------" 
     sudo apt-get -y install zip 
     sudo apt-get -y install git 
     sudo apt-get -y install build-essential 
     sudo apt-get -y install libmakefile-parser-perl 
     sudo apt-get -y install libreoffice-dev 
     sudo apt-get -y install haskell-platform 

     echo " ********************************" 
     cabal update 

     echo " ********************************" 

     cabal install cabal-install 
     echo "+++++++++++==========++++=====" 

     # echo "PATH=/home/vagrant/.cabal/bin:$PATH" >> /home/vagrant/.bashrc 

     SHELL 
+0

你为什么不安装'从GHC-7.10.2'和'阴谋,1.22' [' HVR/ghc'](https://launchpad.net/~hvr/+archive/ubuntu/ghc)?除非你真的想要GHC 7.6,否则我不会在Trusty上使用'haskell-platform'。 – Zeta

+0

@Zeta:当我在VM中手动执行相同的步骤时,它可以工作。只是当我对Vagrantfile执行相同操作时,它正在根目录中进行安装。如果我能解决这个问题,我很好。 – Zack

+0

您是否尝试添加“su - vagrant”之前的cabal安装步骤? –

回答

1

我个人有更多的运气配置与ansible无业游民,但如果你希望做这种方式,你有没有尝试过:

sudo -u vagrant cabal install cabal-install 
+0

我没有试过这个。我试图做su vagrant,但它不起作用。我会尝试你现在说的。 – Zack