- xml - AJAX/Jquery XML 解析
- 具有多重继承的 XML 模式
- .net - 枚举序列化 Json 与 XML
- XML 简单类型、简单内容、复杂类型、复杂内容
我正在尝试使用以下脚本在 vagrant 文件中使用 rvm 在 vagrant 用户中设置 versión ruby 版本:
config.vm.provision "shell", inline: <<-SHELL
sudo apt-get -y update
sudo apt-get -y install git ruby libgdbm-dev libncurses5-dev automake libtool bison libffi-dev
nodejs
#Install ruby environment
curl -sSL https://rvm.io/mpapis.asc | gpg --import -
curl -L https://get.rvm.io | bash -s stable
sudo "source ~/.rvm/scripts/rvm"
echo "source ~/.rvm/scripts/rvm" >> ~/.bashrc
sudo /usr/local/rvm/bin/rvm install 2.1.5
rvm 2.1.5 --default
sudo chown -R vagrant:vagrant /usr/local/rvm/gems/
gem install middleman
git clone XXXX
SHELL
END
Vagrant 返回给我以下消息:
/tmp/vagrant-shell: line 10: rvm: command not found
但如果我使用完整路径运行命令,它会返回以下消息:
/usr/local/rvm/bin/rvm 2.1.5 --default
RVM is not a function, selecting rubies with 'rvm use ...' will not work.
You need to change your terminal emulator preferences to allow login shell.
Sometimes it is required to use `/bin/bash --login` as the command.
Please visit https://rvm.io/integration/gnome-terminal/ for an example.
有没有在日志记录模式或其他方式使用 rvm 设置默认版本的方式执行内联脚本?
谢谢:)
最佳答案
对所提供脚本的更改将防止上述代码以错误的退出状态退出。
Vagrant.configure(2) do |config|
config.vm.box = "ubuntu/trusty64"
config.vm.provision "shell", inline: <<-SHELL
RUBY_VERSION="2.1.5"
sudo apt-get -y update
sudo apt-get -y install git nodejs
# Install ruby environment
if ! type rvm >/dev/null 2>&1; then
curl -sSL https://rvm.io/mpapis.asc | gpg --import -
curl -L https://get.rvm.io | bash -s stable
source /etc/profile.d/rvm.sh
fi
if ! rvm list rubies ruby | grep ruby-${RUBY_VERSION}; then
rvm install ${RUBY_VERSION}
fi
rvm --default use ${RUBY_VERSION}
rvm all do gem install middleman
git clone <REPLACE_WITH_YOUR_REPO>
SHELL
end
变更说明:
vagrant
用户的身份运行脚本,但这在最近的版本中已经发生了变化。脚本实际上将以 root 身份运行;这是由于 shell 脚本上的 privileged
选项而默认发生的;见Shell Provisioner .如果您不确定哪个用户正在运行,您可以在脚本中执行 whoami
。如果您通过设置 privileged => false
来降低权限,该脚本将作为 vagrant 用户运行。另一种更灵活的方法
如果您不坚持使用内联脚本。我会按照 Using RVM with Vagrant 中描述的路线走.我将在上面提出的一些建议重新应用于本文中脚本的一般逻辑。 install-rvm.sh 脚本中需要进行的一项更改。添加GPG key 导入;如下所示:
#!/usr/bin/env bash
curl -sSL https://rvm.io/mpapis.asc | gpg --import -
curl -sSL https://get.rvm.io | bash -s $1
关于ruby - VagrantFile 内联脚本和 rvm 配置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27961797/
我正在 Mac OS X 上安装 Ruby on Rails。我遵循的教程说要添加: [[ -s "$HOME/.rvm/scripts/rvm" ]] && . "$HOME/.rvm/script
RVM 可以做的一件事是在您更改目录时注意,查找 .rvmrc ,并根据该文件的内容更改您当前的 Ruby 版本和 gemset。只要您更改到该目录,它就会进行此更改并相应地输出一条消息。 它如何检测
我最近看到了曙光,并改用了 Zsh。我很自然地使用 Oh My Zsh 来配置它,因为我是菜鸟。因此,有几个主题具有 rvm-prompt包括在内,这是我的问题开始了。每次我加载 Zsh 我都必须 r
我正在通过示例教程系列来了解 Rails。在提出问题之前,我会尽力找到解决方案,因此,如果我错过了任何内容,我深表歉意。 每次我需要从终端的命令行启动 RVM 时,我都需要敲一个命令,以便 RVM 初
我正在尝试在 Ubuntu 上使用 RVM 在 rails 上安装 Ruby,但是当我运行此命令时: source ~/.rvm/scripts/rvm 我收到这个错误: bash: /home/u
所以我不确定我是否遗漏了什么,但是是否有自动库的特定设置 rvm requirements 显示要求而不是检查它们是否已安装?或者我是否缺少其他选项来简单地显示要求?我使用的是 1.19.0 版 最佳
有没有办法摆脱警告,当我遍历一个文件夹时,有 .rvmrc文件。 ===================================================================
所以我安装了 fish 和 oh-my-fish,当我想使用 rvm 时出现此错误: ➜ avalancha git:(services) ✗ rvm use 2.1.0 Using /home/ma
我正在使用capistrano,bundler和rvm将Rails应用程序部署到VPS。 这是我的deploy.rb的一部分 $:.unshift(File.expand_path('./lib',
我在 OS X 主机上安装了 RubyMine (7) 和最后一个 Vagrant。我已经准备了 shell 脚本,用于为我的 vagrant box 提供 RVM、ruby (2.1.2)、捆绑我的
我需要在 Cloud9 中使用 Ruby 2.1.2。 rvm 已经安装,所以这很好: samueller@test2:~/workspace $ rvm -v Warning! PATH is no
我想在 ubuntu 中安装 RVM,我正在按照这些步骤操作 root@jaskaran-Vostro-1550:/home/user_name# sudo apt-get install curl
首先我要说我不是命令行专家,所以我真的几乎不知道自己在做什么。 我无法让 RVM 和 oh-my-zsh 一起玩得很好。我尝试了几种不同的解决方案,其中一些是在 SO 上发布的,但我发现似乎没有任何解
我第一次尝试在 ubuntu 服务器上部署我的应用程序。 我一直遇到这个错误: 2013-03-24 15:13:36 executing `deploy:run_migrations' * e
我了解 Boxen不适用于 RVM ,我不明白为什么。是否有一些限制阻止 Boxen 能够使用 RVM 而不是 rbenv? Boxen 的核心是 Puppet,它确实支持安装 RVM 模块,所以我不
在我删除 rvm(ruby 版本管理器)后,zsh 就出来了: zsh: command not found: rvm-prompt 有什么我没弄清楚的吗?但是我已经删除了 zshrc 或 bash_
我一直在使用 RoR 3.0.3 和 2.8.4 开发几个应用程序,这意味着我必须经常在 RVM 环境之间来回切换。我的 3.0.3 RVM 被称为 ruby-1.9.2-p0@ror3 ,而另一个是
我很平静(回复:rbenv),但我对 rvm 和 .rvmrc 感到非常沮丧。我一直遇到问题,我 cd 到我的项目文件夹中,却发现我的 ruby & gemset 环境没有正确设置。所以有人可以一
为什么在/home/user/.rvm/gems/ruby-2.2.3/bin之前加nvm 在 PATH ? echo $PATH /home/user/.rvm/bin:/home/user/.nv
我正在使用Vagrant安装了docker的VM 它还安装了RVM和Ruby 2.1: # -*- mode: ruby -*- # vi: set ft=ruby : $rvm= > .bash_h
我是一名优秀的程序员,十分优秀!