是否可以在不进行完整的操作系统重新安装的情况下重新安装/修复Mac OS X的系统ruby?


15

可能吗?自从它损坏或出现某种情况以来,我至少每周一次遇到各种问题,尤其是自制软件。

如果有可能,但是从一个全新的开始开始是一个更好的主意,请告诉我。


我的PATH设置:gist.github.com/506481
LBRapid

在您的路径中,/ opt / local条目表明您也具有macport。哪个红宝石显示什么?
user151019 2010年

我确实安装了macports,但是使用哪个ruby只会显示rvm ruby​​版本。我遇到的问题是尝试使用自制软件或自动
测试之

只要按照这篇文章: superuser.com/questions/860819/...
Michallis

Answers:


3

以我的理解-如果我错了,请纠正我-您不必重新安装所有Mac OS X即可重新安装系统Ruby。如您所知,System Ruby位于/System/Library/Frameworks/Ruby.framework/中。如果该文件夹被删除或损坏,或者指向该文件夹的符号链接被删除或更改,则将无法安装有效的System Ruby。

要解决此问题,请尝试以下操作:

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

http://developer.apple.com/technologies/xcode.html获取最新的Xcode也没有什么坏处。

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


这个解决方案非常好,尽管我没有遵循,但最终还是由同事提出来的。我最终只是将ruby 1.8.7从源代码重新安装到/ usr / local,然后将其符号链接到自制软件需要的地方。我只需要rvm和homebrew才能操作,直到下个月获得一台新计算机为止。这样就可以了:)感谢您的回复!
LBRapid 2010年

1
您能否使用AppStore安装的捆绑包为Yosemite更新此内容
rraallvv,2015年

@rraallvv我不确定您的意思。我可以建议如果上述步骤不适合您,则(a)更具体,或者(b)创建一个新答案,显示对您有用的内容,或者(c)创建一个新问题,并参考此问题。
David J.

我用细节创建了一个新问题
rraallvv 2015年

13

如果使用Pacifist,则可以重新安装Ruby。

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

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

  1. 搜索“ BSD.pkg的内容”
  2. 打开:usr-> bin
  3. 选择所需的链接和文件
    • 称呼
    • erb
    • 雪貂浏览器
    • 宝石
    • gpgen
    • irb
    • mongrel_rails
    • 栏杆
    • rb-keygen
    • 博士
    • 红布
    • RI
    • 红宝石
    • 睾丸
    • update_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并因此而在Mac上安装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


-1

海事组织Homebrewhttp://brew.sh)是OS X的最佳软件包管理器。

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

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

然后

brew install ruby

做完了


9
要安装Ruby,使用Ruby通过自制软件来安装它...
whirlwin
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.