从单个shell脚本在OSX上安装RVM和gem

时间:2015-10-27 04:04:05

标签: ruby macos bash rvm

我正在尝试从用于引导新开发框的单个bash脚本安装RVM和一些gem。我的目标是拥有一个脚本,我可以在干净安装的OSX上运行,以安装我用于开发的任何内容。

安装RVM后,我正在寻找$HOME/.rvm/scripts/rvm脚本,但是在下一行中,当我尝试安装特定版本的ruby时,它说没有找到rvm。这是我的剧本。

gpg --keyserver hkp://keys.gnupg.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3
curl -sSL https://get.rvm.io | bash -s stable --autolibs=homebrew

source "$HOME/.rvm/scripts/rvm"

rvm install 2.1.1
rvm use 2.1.1

gem install jekyll
gem install tmuxinator
gem install scss-lint

我无法理解为什么这不起作用,因为如果我在终端中单独运行每个命令,一切都很有效。

关于安装RVM,特定版本的Ruby和一些宝石的1脚本解决方案的任何想法?

3 个答案:

答案 0 :(得分:1)

如果你在RVM之后查看.bashrc,他们有:

export PATH="$PATH:$HOME/.rvm/bin" # Add RVM to PATH for scripting

我会为清洁做些什么

gpg --keyserver hkp://keys.gnupg.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3
curl -sSL https://get.rvm.io | bash -s stable --autolibs=homebrew

if [[ -s "$HOME/.rvm/scripts/rvm" ]]; then
  . "$HOME/.rvm/scripts/rvm"
else
  echo "$HOME/.rvm/scripts/rvm" could not be found.
  exit 1
fi

export PATH="$PATH:$HOME/.rvm/bin"
rvm use 2.1.1 --default --install
for i in jekyll tmuxinator scss-lint; do gem install $i; done

答案 1 :(得分:0)

您可能需要添加" source~ / .rvm / scripts / rvm"到你的〜/ .bash_profile文件。

echo "source $HOME/.rvm/scripts/rvm" >> ~/.bashrc

安装rvm:

rm -rf ~/.rvm
curl -L https://get.rvm.io | bash -s stable

在您的脚本中输入:

type_rvm=$(type rvm | head -n 1)
echo "type rmv: $type_rvm"

您可以尝试导出rvm:

export PATH=$PATH:/opt/rvm/bin:/opt/rvm/sbin

答案 2 :(得分:0)

我在阅读了另一个stack overflow post之后找到了一个解决方案。

对其中一个答案的评论建议确保脚本以bash而不是sh运行。那是我的问题。将我的脚本的顶行(未包含在我的示例中)从#!/bin/sh更改为#!/usr/bin/env bash后,一切都按预期工作。