在 Sierra OS 上添加宝石

Adding gems on Sierra OS

升级到 OS X Sierra 后,我尝试更新 运行 现有 Ruby 宝石。

> sudo gem update --system

> Password: *enters password*

> Updating rubygems-update...

> ERROR:  While executing gem ... (Errno::EPERM)

> Operation not permitted - /usr/bin/update_rubygems

无论我直接从 RubyGems 执行还是从 Github 克隆并下拉,都会发生这种情况。 运行 带有 sudo 的命令也 returns 一个错误说我缺少权限。

我试过了 sudo rubygems_update :

/usr/local/Cellar/ruby/2.4.0/lib/ruby/2.4.0/rubygems/dependency.rb:308:in `to_specs': Could not find 'rubygems-update' (>= 0.a) among 7 total gem(s) (Gem::MissingSpecError)
Checked in 'GEM_PATH=/Users/Angelfirenze/.gem/ruby/2.4.0:/usr/local/lib/ruby/gems/2.4.0:/usr/local/Cellar/ruby/2.4.0/lib/ruby/gems/2.4.0', execute `gem env` for more information
    from /usr/local/Cellar/ruby/2.4.0/lib/ruby/2.4.0/rubygems/dependency.rb:320:in `to_spec'
    from /usr/local/Cellar/ruby/2.4.0/lib/ruby/2.4.0/rubygems/core_ext/kernel_gem.rb:65:in `gem'
    from /usr/local/bin/update_rubygems:22:in `<main>'

我刚刚执行了 gem env,我的终端返回了以下内容:

    RubyGems Environment:
  - RUBYGEMS VERSION: 2.4.8
  - RUBY VERSION: 2.0.0 (2015-12-16 patchlevel 648) [universal.x86_64-darwin16]
  - INSTALLATION DIRECTORY: /Library/Ruby/Gems/2.0.0
  - RUBY EXECUTABLE: /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/bin/ruby
  - EXECUTABLE DIRECTORY: /usr/bin
  - SPEC CACHE DIRECTORY: /Users/Angelfirenze/.gem/specs
  - SYSTEM CONFIGURATION DIRECTORY: /Library/Ruby/Site
  - RUBYGEMS PLATFORMS:
    - ruby
    - universal-darwin-16
  - GEM PATHS:
     - /Library/Ruby/Gems/2.0.0
     - /Users/Angelfirenze/.gem/ruby/2.0.0
     - /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/gems/2.0.0
  - GEM CONFIGURATION:
     - :update_sources => true
     - :verbose => true
     - :backtrace => false
     - :bulk_threshold => 1000
  - REMOTE SOURCES:
     - https://rubygems.org/
  - SHELL PATH:
     - /Users/Angelfirenze/.rbenv/bin
     - /usr/local/bin
     - /usr/bin
     - /bin
     - /usr/sbin
     - /sbin
     - /usr/local/git/bin
     - /usr/local/MacGPG2/bin
     - /Users/Angelfirenze/.rvm/bin
     - /Users/Angelfirenze/bin
     - /Users/Angelfirenze/bin

也许安装 rvm 是最好的选择。我通常避免使用 OS X 附带的默认 ruby。

话虽如此,我认为 Sierra 附带了需要禁用的新安全功能,您可以在此处阅读相关信息:Disable Mac OS SIP