【问题标题】:RVM system-wide install script url broken -- what is replacement?RVM 系统范围的安装脚本 url 损坏 - 什么是替换?
【发布时间】:2011-07-22 06:19:48
【问题描述】:

我的 RVM 系统范围的安装脚本已损坏,包括 Linode StackScripts 和 Chef-solo Recipes 的形式。

根据 RVM 网站上的说明,我的脚本以 root 身份执行以下命令,以在系统范围内安装 RVM:

echo "Installing RVM system-wide" >> $logfile
bash < <( curl -L http://bit.ly/rvm-install-system-wide )
cat >> /etc/profile <<'EOF'
# Load RVM if it is installed,
#  first try to load  user install
#  then try to load root install, if user install is not there.
if [ -s "$HOME/.rvm/scripts/rvm" ] ; then
  . "$HOME/.rvm/scripts/rvm"
elif [ -s "/usr/local/rvm/scripts/rvm" ] ; then
  . "/usr/local/rvm/scripts/rvm"
fi
EOF

source /etc/profile

上面的关键部分是 URL http://bit.ly/rvm-install-system-wide。截至今天,2011 年 3 月 24 日,此网址不再使用。它会导致 GitHub 404 错误。

RVM 网站上的以下 URL 用于包含系统范围安装的说明:http://rvm.beginrescueend.com/deployment/system-wide/。但是,该 url 现在重定向到 RVM 主页。

为了让 RVM 系统范围的安装脚本再次运行,新的说明是什么?

【问题讨论】:

  • 可能最容易进入 IRC 上的#rvm 并在那里询问,似乎他们只是删除了系统范围安装的说明。
  • @Michael-Kohl,谢谢,我试过了,但一个小时后 FreeNode IRC 机器人实际上并没有收到验证电子邮件。考虑到这些安装说明的广泛性——只需尝试谷歌搜索“bit.ly/rvm-install-system-wide”——我希望在 IRC 上有经过验证的昵称的人可以得到答案并将其发布在这里。
  • (更新)我终于得到了 IRC 昵称的验证,并在 IRC 上询问过。现在还有人问同样的问题...
  • (更新)我在 IRC 收到了敌对的回应。显然,作者讨厌系统范围的安装机制,正如此处删除它的提交消息所证明的那样:github.com/wayneeseguin/rvm/commit/…
  • (更新)IRC 讨论似乎已永久存档于irclogger.com/.rvm/2011-03-24,供感兴趣的人使用...

标签: ruby rvm


【解决方案1】:

刚刚在#rvm 上收到来自首席开发人员wayneeseguin 的以下答复:

[12:53]“作者”将其合并到 ain 安装程序中 [12:53] 所以你应该做 bash http://rvm.beginrescueend.com/releases/rvm-install-head ) #http://rvm.beginrescueend.com/rvm/install/
[12:53] 代码刚刚更改,文档还没有跟上 [12:53] 用于 root 和用户安装

确实,RVM 1.5.1 只需以 root 身份安装即可成功安装到 /usr/local/bin。但是,由于某种原因,目前使用的所有现有 Chef 和 Puppet 配置脚本似乎都无法在此版本升级中幸存下来。不幸的是,Wayne E. Seguin 已明确表示不支持低于 1.5.0 版本的 RVM。

也就是说,我们今天需要我们的系统正常工作。为了继续使用现有脚本支持的 RVM 1.3.0,您需要替换以下行:

bash < <( curl -L http://bit.ly/rvm-install-system-wide )

使用以下行(由 phlipper 找到):

bash -c "bash <( curl -L https://github.com/wayneeseguin/rvm/raw/1.3.0/contrib/install-system-wide ) --version '1.3.0'"

【讨论】:

  • 开发者 Wayne 添加了一个 answer to another message,表示它现在是一个用于用户沙箱和系统范围的单一脚本。
  • @the-Tin-Man:是的,没错。但是,由于路径和配置文件包含的更改,通过旧 url 安装的 Chef、Puppet 和 StackScripts 的现有配置脚本无法立即与新 HEAD 版本正常工作。发布的 sn-p 允许我们将生产部署脚本保留在 RVM 1.3.0,以便它们继续工作,而不是全世界在一天内将所有部署脚本移植到 RVM 1.5.1
【解决方案2】:

这是我在进行重大更改之前安装最后一个工作版本的修复:

bash <( curl -L https://github.com/wayneeseguin/rvm/raw/1.3.0/contrib/install-system-wide ) --version '1.3.0'

这在生产中对我有用。祝你好运!

更新

另外,如果您使用来自 https://github.com/fnichol/chef-rvm 的厨师食谱或类似的东西,您可以使用以下选项:

:rvm => {
  :system_installer_url => "https://github.com/wayneeseguin/rvm/raw/1.3.0/contrib/install-system-wide",
  :version => "1.3.0"
}

【讨论】:

  • 无法找出 Chef sn-p 的多行格式,抱歉。
猜你喜欢
  • 1970-01-01
  • 2011-07-30
  • 1970-01-01
  • 2011-09-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多