【问题标题】:Updating to Ruby 1.9.2 on Leopard 10.5.8 using RVM使用 RVM 在 Leopard 10.5.8 上更新到 Ruby 1.9.2
【发布时间】:2011-04-24 20:03:52
【问题描述】:

似乎有很多关于通过雪豹迁移到 1.9.2 的文档,但特别是关于 Leopard 的文档并不多。

运行 Mac OS X Leopard 10.5.8 rvm 1.6.3 xcode 3.1.4

一开始我很难安装 rvm,但使用了这个fix 并安装了 rvm。我输入:

$ rvmsudo rvm install ruby-1.9.2-head
Install of ruby-1.9.2-head - #complete

(如果我在不使用 sudo 命令的情况下尝试安装会失败)切换默认版本:

$ rvmsudo rvm --default use ruby-1.9.2-head
Using /usr/local/rvm/gems/ruby-1.9.2-head

$ ruby -v
ruby 1.8.7 (2011-02-18 patchlevel 334) [i686-darwin9]

当我将其设置为没有 sudo 命令的默认值时。

rvm --default use ruby-1.9.2-head

我收到一个以以下结尾的错误日志:

cp: /usr/local/rvm/bin/rdoc: Permission denied
cp: /usr/local/rvm/bin/ri: Permission denied
cp: /usr/local/rvm/bin/ruby: Permission denied
cp: /usr/local/rvm/bin/testrb: Permission denied

然后我输入

$ ruby -v
ruby 1.9.2p188 (2011-03-28 revision 31204) [i386-darwin9.8.0]

但是当我关闭终端并重新打开时,它又回到了 1.8.7

关于如何让这个 ruby​​ 安装成为我的默认设置有什么想法吗?

这是我的 bash 个人资料

PS1="\u$ "
alias ll="ls -lahG"

export PATH="/usr/local/rvm/rubies/ruby-1.9.2-head/bin:/usr/local/bin:/usr/loca$

[[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm" # This loa$

##
# Your previous /Users/mikalfm/.bash_profile file was backed up as /Users/mikal$
##

# MacPorts Installer addition on 2011-04-23_at_21:38:56: adding an appropriate $
export PATH=/opt/local/bin:/opt/local/sbin:$PATH
# Finished adapting your PATH environment variable for use with MacPorts.


# MacPorts Installer addition on 2011-04-23_at_21:38:56: adding an appropriate $
export MANPATH=/opt/local/share/man:$MANPATH
# Finished adapting your MANPATH environment variable for use with MacPorts.

更新

已解决。 我从“which ruby​​”(1.8.7 版本)转到文件位置 备份文件并删除它。 现在 ruby​​ -v 返回 ruby 1.9.2p188(2011-03-28 修订版 31204)[i386-darwin9.8.0]

请参阅下面的评论,了解为什么这是一个坏主意。


更新 2

解决了,真的当然,除非我做了一些愚蠢的事情。 因此,按照线程中的说明进行操作后,我清除了原始问题中的所有 Sudo 问题。我通过使用 implode 命令卸载 RVM、删除文件夹并重新安装而不使用任何 sudo 命令来做到这一点。

以下问题是我可以强制 rvm 一次只为一个会话使用 1.9.2 作为默认值。我刚刚通过阅读这个堆栈线程force rails to use 1.9.2 来解决这个问题,有人建议使用$ echo $PATH 命令。我做到了,它看起来与我认为的 bash 配置文件中的完全不同。

看起来像 /opt/local/bin:/opt/local/sbin:/usr/local/bin:/usr/local/sbin:/usr/local/mysql/bin:/Users/mikalfm/.rvm/gems/ruby-1.9.2-p180/bin:/Users/mikalfm/.rvm/gems/ruby-1.9.2-p180@global/bin:/Users/mikalfm/.rvm/rubies/ruby-1.9.2-p180/bin:/Users/mikalfm/.rvm/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin:/usr/local/git/bin

原来,我认为我的 .bash_profile 中有几行被 ## 注释掉了,但没有。 export PATH=/opt/local/bin:/opt/local/sbin:$PATHexport MANPATH=/opt/local/share/man:$MANPATH。它们直接与我认为的 $PATH export PATH="/usr/local/bin:/usr/local/sbin:/usr/local/mysql/bin:$PATH"

相矛盾

我从我的个人资料中删除了这些行。我想如果存在依赖关系并且我需要再次使用 Mac Ports,我可以将它们重新添加。再次,有人告诉我这是否是错误的方法,但即使我启动一个新终端,它现在也适用于我。

【问题讨论】:

  • 欢迎来到 Stackoverflow,Mikal。你的问题在这里是题外话。 Stackoverflow 是一个询问编程相关问题的网站。几分钟后,您的问题将被关闭,并迁移到 Superuser.com,您将获得更好的运气!
  • @Alan 我可以接受 - 但我看不出这个问题与我链接到的其他 StackOverflow 问题有何不同。 [stackoverflow.com/questions/5639241/… 在 Mac OS X 10.5.8 上)。或许你能给我一些见解。
  • 看起来您已经安装了系统范围的 RVM,而不是单用户安装。这就是为什么你必须在任何地方使用sudo,我认为在这种情况下你的.bash_profile 中的行将无法正常工作。我建议卸载 RVM 并再次安装,确保获得单用户安装脚本而不是系统范围的脚本(我认为这些天如果你不以 root 身份安装,它会自动执行单用户安装) .
  • @Alan,这里的问题不是题外话。 RVM 是一种常用的 Ruby 工具,关于它的使用存在许多预先存在的问题。根据常见问题解答,可接受的主题是“程序员常用的软件工具”,其中包括 RVM。
  • 那是我的错误,对不起!我认为安装错误不符合标准。嗯,这就是为什么需要超过 1 个人才能结束一个问题 :)

标签: ruby rvm osx-leopard ruby-1.9.2


【解决方案1】:

解决了。我从'which ruby​​'(1.8.7版本)转到文件位置备份文件并删除它。现在 ruby​​ -v 返回 ruby​​ 1.9.2p188 (2011-03-28 修订版 31204) [i386-darwin9.8.0]

不不不!

Mac OS 在/usr 中安装的Ruby 版本归Apple 所有并安装供他们使用。 Apple 安装的应用程序使用它,你可能会破坏它们。

如果您运行 find /usr -name '*.rb',您会发现许多 Apple 使用的文件,它们不是正常 Ruby 安装的一部分。

【讨论】:

  • +1,这不是解决问题的正确方法,并且可能会产生其他问题。删除系统 ruby 可能使 RVM 的 ruby​​ “工作”,因为您的路径错误 - 我仍然认为这源于不正确的 RVM 安装(因此您的 bash_profile 无法加载 RVM)。
  • @Brandon 听从了您的建议,卸载并重新安装。更清洁没有更多的 sudo 东西。仍然存在默认设置不生效的问题。
  • rvm list default 返回什么?您的.bash_profile 中还没有手动编辑的PATH(至少是错误 RVM 安装的部分)是吗?
  • $ rvm list defaultreturns ` Default Ruby (for new shells) ruby​​-1.9.2-p180 [ i386 ]` 我从 bash_profile 中删除了手动编辑的 PATH。
【解决方案2】:

10.5不是问题,我的MB pro也用过。当您不再在“Mikal”范围内时,您需要学会停止使用sudo。我很少需要再使用它了。

我对 rvmsudo 不太熟悉。当你这样做时会发生什么

rvm list    
rvmsudo rvm list

?

我的建议,卸载以 root 身份安装的 rvm(使用 sudo),重试并按照 rvm.beginrescued.com 上的指南进行操作 从 .bash_profile 中删除 PATH ruby​​1.9.2/bin 以避免混淆。让 rvm 处理它,不要使用 sudo 和 rvmsudo(我从未使用过后者)。

rvm install 1.9.2
rvm use 1.9.2 --default
rvm list #see your rubies

应该足够了。希望对您有所帮助。

【讨论】:

  • 卸载了 rvm,重新安装了 rvm,没有任何 sudo 命令。更干净,不再为 sudo 的东西头疼。但是一旦我关闭我的终端会话,我仍然无法获得'$ rvm --default use 1.9.2'。 rvm list 和 rvmsudo rvm list 返回相同的内容。关于什么导致默认不坚持的任何想法?
  • 偏执狂,把--default放在最后。您是否在任何红宝石前面有=>(来自 rvm 列表,标记为默认值)? which rvmwhich ruby 是什么意思
  • "一旦我关闭终端会话,我仍然无法获得 '$ rvm --default use 1.9.2'。rvm list 和 rvmsudo rvm list 返回相同的东西。任何想法关于什么导致默认值不粘”,那是因为您没有阅读 RVM 打印到屏幕上的说明。将 RVM 初始化程序添加到您的 ~/.bashrc 文件中,然后读取 rvm notes 的输出并执行它所说的操作。
  • @Ole 尚无解决方案。我最后用默认值试过了,没有给出新的行为。 which ruby 返回 /opt/local/bin/rubywhich rvm 在我运行时返回 /usr/local/bin/rvm rvm list右边的红宝石突出显示 => ruby-1.9.2-p180 [ i386 ]但是当我输入 ruby -v 我仍然得到 ruby 1.8.7 (2011-02-18 patchlevel 334) [i686-darwin9]
  • @MikalFM,“我的 .bash_profile 中已经有 rvm 初始化程序”,但是它放错了地方。请仔细阅读the Post Install instructions for installing RVM。初始化器必须是文件中的最后一个
【解决方案3】:

也许你应该添加:

rvm use 1.9.2

到你的 .bash_profile 文件:)

【讨论】:

    猜你喜欢
    • 2011-05-09
    • 1970-01-01
    • 2011-11-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-14
    相关资源
    最近更新 更多