如何在Mac OS High Sierra上将与Ruby相关的任何内容重置为出厂设置?

时间:2018-12-17 18:53:07

标签: ruby macos

我的新笔记本电脑上发生了许多涉及rvm,红宝石和滑轨的故障,使我完全迷惑了。我已经卸载了rvm,但是所有路径,版本和权限都被弄乱了。我无休止地搜索,找不到正确的修复程序。感觉就像每次我从听起来相关的答案中输入新内容时,问题就会变得更加严重。

我想重新开始,而不必将计算机重置为出厂设置。如何在不删除计算机的情况下仅重置与红宝石相关的事物(红宝石,铁轨等)?

2 个答案:

答案 0 :(得分:2)

在开始所有操作之前,我将关闭并重新打开终端窗口,以确保没有加载任何旧的环境变量。

一般情况:

  • 运行env | grep RUBYenv | grep RVM并查找您可能已设置的所有剩余环境变量
  • env | grep GEM相同。有时您会看到GEM_PATHGEM_HOME等,但这对于系统ruby并不是必需的
  • ~/.bash_profile~/.bashrc~/.profile文件中浏览,看看是否添加了rvm内容

如果您正在运行macOS Mojave(我正在与系统进行比较):

which ruby应该返回/usr/bin/ruby。如果不是这样,您还有其他干扰。发布那是什么,我们可以将其修复。

运行/usr/bin/ruby --version应该返回ruby 2.3.7p456 (2018-03-28 revision 63024) [universal.x86_64-darwin18]

系统ruby的权限:

-r-xr-xr-x  1 root  wheel  52016 Nov 30 02:38 /usr/bin/ruby

如果您与众不同,应该使用sudo chmod 555 /usr/bin/ruby之类的名称来解决。如果您有其他所有者,则需要sudo chown root:wheel /usr/bin/ruby

您还需要检查which gem,并查看它是否报告/usr/bin/gem。权限应与/usr/bin/ruby相同。 /usr/bin/gem --version应该返回2.5.2.3

运行/usr/bin/gem env应该返回类似于下面的内容。用您的jay(我的计算机用户)替换

RubyGems Environment:
  - RUBYGEMS VERSION: 2.5.2.3
  - RUBY VERSION: 2.3.7 (2018-03-28 patchlevel 456) [universal.x86_64-darwin18]
  - INSTALLATION DIRECTORY: /Library/Ruby/Gems/2.3.0
  - USER INSTALLATION DIRECTORY: /Users/jay/.gem/ruby/2.3.0 # this doesn't matter much
  - RUBY EXECUTABLE: /System/Library/Frameworks/Ruby.framework/Versions/2.3/usr/bin/ruby
  - EXECUTABLE DIRECTORY: /usr/local/bin
  - SPEC CACHE DIRECTORY: /Users/jay/.gem/specs
  - SYSTEM CONFIGURATION DIRECTORY: /Library/Ruby/Site
  - RUBYGEMS PLATFORMS:
    - ruby
    - universal-darwin-18
  - GEM PATHS:
     - /Library/Ruby/Gems/2.3.0
     - /Users/jay/.gem/ruby/2.3.0
     - /System/Library/Frameworks/Ruby.framework/Versions/2.3/usr/lib/ruby/gems/2.3.0
  - GEM CONFIGURATION:
     - :update_sources => false
     - :verbose => true
     - :backtrace => false
     - :bulk_threshold => 1000
     - :sources => ["https://rubygems.org/"]
     - "benchmark" => true
     - "gem" => "--document=yri"
  - REMOTE SOURCES:
     - https://rubygems.org/
  - SHELL PATH:
     - /usr/local/bin
     - /Users/jay/bin
     - /usr/local/bin
     - /usr/bin
     - /bin
     - /usr/sbin
     - /sbin
     - /opt/X11/bin

从那里您可能要查看两个目录:

运行ls -al /Library/Ruby/。您应该看到以下内容:

drwxr-xr-x   3 root  wheel    96 Aug 17 18:59 Gems
drwxr-xr-x   3 root  wheel    96 Aug 17 18:59 Site

您可能需要chmod / chown每个目录(使用-R进行递归)

完成后,请注意,运行/usr/bin/gem install bundlergem install bundler(假设您尚未安装新的ruby版本管理器)会产生如下错误(这意味着您已重新配置)权限正确。)

Fetching: bundler-1.17.2.gem (100%)
ERROR:  While executing gem ... (Gem::FilePermissionError)
    You don't have write permissions for the /Library/Ruby/Gems/2.3.0 directory.

您会看到一些教程中提到了更改这些权限,或运行sudo来安装gems,但我不建议这样做。我最喜欢的ruby版本管理器是asdf,可能值得一看。您将安装核心和ruby plugin

这应该使您更接近一点。如果您发现其他任何问题,请发布错误。

答案 1 :(得分:0)

rm -rf ~/.rvm,然后编辑~/.bash_profile以删除source $HOME/.rvm/scripts/rvm

然后,您可以按照https://rvm.io/rvm/install上的详细安装说明,从头开始使用RVM重新启动。