Vagrant provisioning 预装时找不到rvm
Vagrant provisioning can't find rvm when it's pre-installed
我正在使用 Vagrant box "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 版本。但是,供应脚本失败并显示 rvm: command not found
。我知道它的安装就像我 vagrant up
没有配置一样,然后我可以手动完成。我很确定这是我做错了一些允许的事情,但我对 Vagrant 很陌生,而不是 bash / linux 的专家,目前已经过了基础知识。
知道我做错了什么导致了这些错误吗?我已经在下面粘贴了完整的 vagrantfile 和 provision 脚本,你应该可以通过最新的 vagrant 来重现错误。
流浪文件:
Vagrant.configure(2) do |config|
config.vm.box = "thdengops/ubuntu-14.04-dev"
config.vm.provision "shell", path: "provision.sh"
end
provision.sh
#!/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
来自终端的错误
==> default: /tmp/vagrant-shell: line 6: rvm: command not found
==> default: /tmp/vagrant-shell: line 7: rvm: command not found
==> default: /tmp/vagrant-shell: line 10: rvm: command not found
很可能已经为 vagrant 用户安装了软件包,因此当您通过 ssh 进入该框时,vagrant 用户将能够 运行 命令。但是默认情况下配置是 运行 root 所以你需要 vagrant 到 运行 这个配置
config.vm.provision "shell", privileged: false, path: "provision.sh"
在这种情况下,您将需要确保 运行 一些带有 sudo
的命令,例如 apt
命令
我正在使用 Vagrant box "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 版本。但是,供应脚本失败并显示 rvm: command not found
。我知道它的安装就像我 vagrant up
没有配置一样,然后我可以手动完成。我很确定这是我做错了一些允许的事情,但我对 Vagrant 很陌生,而不是 bash / linux 的专家,目前已经过了基础知识。
知道我做错了什么导致了这些错误吗?我已经在下面粘贴了完整的 vagrantfile 和 provision 脚本,你应该可以通过最新的 vagrant 来重现错误。
流浪文件:
Vagrant.configure(2) do |config|
config.vm.box = "thdengops/ubuntu-14.04-dev"
config.vm.provision "shell", path: "provision.sh"
end
provision.sh
#!/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
来自终端的错误
==> default: /tmp/vagrant-shell: line 6: rvm: command not found
==> default: /tmp/vagrant-shell: line 7: rvm: command not found
==> default: /tmp/vagrant-shell: line 10: rvm: command not found
很可能已经为 vagrant 用户安装了软件包,因此当您通过 ssh 进入该框时,vagrant 用户将能够 运行 命令。但是默认情况下配置是 运行 root 所以你需要 vagrant 到 运行 这个配置
config.vm.provision "shell", privileged: false, path: "provision.sh"
在这种情况下,您将需要确保 运行 一些带有 sudo
的命令,例如 apt
命令