2015-11-11 34 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