是否可以重新安装/修复 Mac OS X 的系统 ruby​​,而无需完全重新安装操作系统?

是否可以重新安装/修复 Mac OS X 的系统 ruby​​,而无需完全重新安装操作系统?

有可能吗?自从它被损坏或发生其他问题以来,我每周至少会遇到一次各种问题,尤其是使用自制软件时。

如果可能的话,但从头开始会更好,请告诉我。

答案1

据我所知——如果我错了,请纠正我——您不必重新安装整个 Mac OS X 来重新安装系统 Ruby。您可能知道,系统 Ruby 位于 /System/Library/Frameworks/Ruby.framework/。如果该文件夹被删除或损坏,或者指向它的符号链接被删除或更改,您将无法安装有效的系统 Ruby。

要修复,请尝试以下操作:

  1. 插入 Mac OS X 安装 DVD
  2. 打开 Mac OS X 安装 DVD 文件夹
  3. 打开可选安装文件夹
  4. 打开 Xcode Tools 文件夹
  5. 打开 XcodeTools 包。这将启动 Xcode Tools 安装程序。按照说明操作。

从以下网站获取最新的 Xcode 也无妨:http://developer.apple.com/technologies/xcode.html

全面披露:我已经完成了这些步骤。我很确定它恢复了 Ruby.framework,但它没有为我恢复符号链接(通常在 /usr/bin 中)。

答案2

如果你使用和平主义者那么只需重新安装 Ruby 即可。

  1. 插入您的 OS X DVD
  2. 和平奔跑
  3. 选择“打开 Apple 安装光盘”
  4. 选择光盘
  5. 搜索“Ruby.framework”
  6. 右键单击并选择“安装到默认位置”

这将重新安装 Ruby,要设置从 /usr/bin 的符号链接以指向它,请再次使用 Pacifist:

  1. 搜索“BSD.pkg 的内容”
  2. 打开:usr->bin
  3. 选择您需要的链接和文件
    • 卡菲
    • 埃布
    • ferret 浏览器
    • 宝石
    • 基因工程
    • 内部审核委员会
    • mongrel_rails
    • 轨道
    • rb-keygen
    • 文档
    • 红布
    • 红宝石
    • 测试集
    • 更新rubygems
  4. 右键单击并选择“安装到默认位置”

一般来说,如果您需要在终端中找出系统上文件来自哪个安装程序:

$ pkgutil --file-info /usr/bin/ruby
volume: /
path: usr/bin/ruby

pkgid: com.apple.pkg.BSD
pkg-version: 10.5.0.1.1.1188305148
install-time: 1203610823
uid: 0
gid: 0
mode: 120755

然后 pkgid 会给你一个提示,然后你可以找到该安装程序并再次运行它,或者使用 Pacifist 有选择地执行它。

您还可以使用以下命令查看该包中还有哪些其他文件:

$ pkgutil --files com.apple.pkg.BSD
.
Library
Library/Documentation
Library/Documentation/Commands
Library/Documentation/Commands/grep
...

我发现在 OS X 上处理 Ruby 的最佳方法是使用上述过程将系统恢复到默认状态。删除任何 MacPort、Fink 或您手动编译的版本。安装 RVM 并使用它来管理安装较新的版本。


事实证明,我删除了系统中的 Ruby,因此在安装 pow 时遇到了问题(http://pow.cx) 就是因为它。所以我安装了 Pacifist,并按照这篇文章中的建议操作,现在又可以正常工作了。谢谢!

答案3

旧帖子,但我刚刚从端口切换到自制软件,所以......

对于自制软件问题,我通过安装 rvm 和符号链接解决了它。因此,如果您安装了 rvm,您可以输入以下内容开始:

which ruby

用该输出执行以下操作:

ln -s /Users/username/.rvm/rubies/ruby-1.9.2-p290/bin/ruby /usr/bin/ruby

答案4

国际海事组织Homebrew(http://brew.sh) 是 OS X 上最好的软件包管理器。

要安装 Homebrew,请执行以下操作:

ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

然后

brew install ruby

完毕。

相关内容