下面是 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