2

下面是 vagrant 文件的内容。当我运行vagrant up命令时,它会根据需要安装 cabal,但它位于根目录中。因此,它变得无法使用。我想将 cabal 版本更新为最新版本cabal update。但它没有发生。

最后,在我的虚拟机中,我有旧版本的 cabal,haskell-platform它对我没有用。但是,当我通过显式登录到 VM 来单独执行这些命令,而不是在 Vagrantfile 中放置任何内容时,它可以工作,并且我得到了我需要的 cabal 版本 1.22.6.0,但是通过使用 Vagrantfile。如何确保 cabal 没有安装在根目录中?相反,我认为它应该像这样安装在 /home/vagrant 目录中: /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 文件内容如下:

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
4

1 回答 1

1

我个人在使用 ansible 配置 vagrant 时更幸运,但是如果您希望这样做,您是否尝试过:

sudo -u vagrant cabal install cabal-install
于 2015-11-11T19:54:36.000 回答