【发布时间】:2014-06-23 17:33:48
【问题描述】:
我正在尝试在 Ubuntu 12 虚拟机中安装 RVM 和 ruby,除了密码提示之外,无需人工交互。
我创建了一个 shell 脚本来执行此操作,它工作得很好,直到我需要使用 RVM 本身。
我正在使用多用户安装。
#!/bin/bash -l
mainUser=`whoami`
echo "Installing as '${mainUser}'"
echo "Installing git..."
sudo -S apt-get install --yes curl git-core
echo "Installing RVM..."
\curl -L https://get.rvm.io | sudo bash -s stable
echo "Adding ${mainuser} to RVM group..."
sudo adduser $mainUser rvm
newgrp rvm
从这里开始,事情变得很奇怪.. 我需要加载 dvm 作为源。我希望我的脚本有这个源和我的用户的 bash_profile / bashrc。无论如何..我知道如何手动完成,但我不能从脚本中完成。这是我尝试的最后一个代码:
. "/usr/local/rvm/bin/rvm"
rvm use ruby-head
rubyVersion=`rvm list | awk '/ruby-head/{print x;print};{x=$0}' | sed -n '/ruby-head/{g;1!p;};h' | awk -F ' ' '{print $1}'`
rubyTest=${rubyVersion}@test
rvm use $rubyTest --create --default
我得到的错误是这样的:
test.sh: 7: /usr/local/rvm/bin/rvm: Syntax error: "(" unexpected (expecting "fi")
如果我只是尝试使用完整路径,如下所示:
rvm=/usr/local/rvm/bin/rvm
$rvm use ruby-head
rubyVersion=`$rvm list | awk '/ruby-head/{print x;print};{x=$0}' | sed -n '/ruby-head/{g;1!p;};h' | awk -F ' ' '{print $1}'`
rubyTest =${rubyVersion}@test
$rvm use $rubyTest --create --default
我得到了这个错误:
RVM is not a function, selecting rubies with 'rvm use ...' will not work.
我一无所知。为什么我不能使用/usr/local/rvm/bin/rvm?
有没有办法从脚本中为这个用户执行source /etc/profile.d/rvm.sh?
我不太擅长 shell 脚本和 Linux,因此我感谢您提供的任何参考和示例。
谢谢!
更新
我也试过了:
source "/usr/local/rvm/scripts/rvm"
...及其所有变体。同样的错误:“RVM 不是函数”。
【问题讨论】:
-
您是否尝试在脚本中执行类似
source ~/.rvm/scripts/rvm的操作?