Vagrant配置在预先安装时无法找到rvm

时间:2016-06-24 14:56:19

标签: ruby linux bash vagrant rvm

我正在使用Vagrant框“thdengops / ubuntu-14.04-dev”,其中包括:git,openjdk7,docker,gvm(go),nvm(node),rvm(ruby),jenv(java),virtualenv (python)所有预先安装在盒子上。

我创建了一个配置shell脚本,尝试使用rvm安装Ruby 2.5.1,然后将其设置为正在使用的当前ruby版本。但是,配置脚本失败了3。我知道它安装好像我rvm: command not found没有配置,然后我可以手动完成所有操作。我很确定这是一些允许的事情,我做错了但是我对Vagrant很新,而且目前还不是bash / linux的专家。

我有什么想法导致这些错误吗?我已经粘贴在下面的完整vagrantfile和配置脚本中,你应该能够通过最新的vagrant来重现错误。

Vagrantfile:

vagrant up

provision.sh

Vagrant.configure(2) do |config|
  config.vm.box = "thdengops/ubuntu-14.04-dev"

  config.vm.provision "shell", path: "provision.sh"
end

来自终端的错误

#!/bin/bash
RUBY_VERSION="2.3.1"

apt-get -y update

if ! rvm list rubies ruby | grep ruby-${RUBY_VERSION}; then
  rvm install ${RUBY_VERSION}
fi

rvm --default use ${RUBY_VERSION}

gem install bundler

1 个答案:

答案 0 :(得分:1)

很可能已经为流浪者用户安装了软件包,所以当你进入框中时,流浪者用户将能够运行该命令。但是默认情况下,配置由root运行,因此您需要vagrant来运行此配置

1 collection)
     bei System.Linq.Enumerable.ToList[TSource](IEnumerable

在这种情况下,您需要确保使用config.vm.provision "shell", privileged: false, path: "provision.sh" 运行某些命令,例如sudo命令