如何在没有sudo的情况下安装ruby gem?

问题描述 投票:3回答:2

配置新计算机(Mac OS Mojave - 版本10.14.2)。

rbenv安装红宝石后。我正在尝试安装一些gem并运行:

gem install rake bundler rspec rubocop pry pry-byebug hub colored octoki

但它给我以下错误:

ERROR:  While executing gem ... (TypeError)
    incompatible marshal file format (can't be read)
    format version 4.8 required; 60.33 given

这是我的宝石环境:

RubyGems Environment:
  - RUBYGEMS VERSION: 2.7.6
  - RUBY VERSION: 2.5.3 (2018-10-18 patchlevel 105) [x86_64-darwin18]
  - INSTALLATION DIRECTORY: /Users/elise/.rbenv/versions/2.5.3/lib/ruby/gems/2.5.0
  - USER INSTALLATION DIRECTORY: /Users/elise/.gem/ruby/2.5.0
  - RUBY EXECUTABLE: /Users/elise/.rbenv/versions/2.5.3/bin/ruby
  - EXECUTABLE DIRECTORY: /Users/elise/.rbenv/versions/2.5.3/bin
  - SPEC CACHE DIRECTORY: /Users/elise/.gem/specs
  - SYSTEM CONFIGURATION DIRECTORY: /Users/elise/.rbenv/versions/2.5.3/etc
  - RUBYGEMS PLATFORMS:
    - ruby
    - x86_64-darwin-18
  - GEM PATHS:
     - /Users/elise/.rbenv/versions/2.5.3/lib/ruby/gems/2.5.0
     - /Users/elise/.gem/ruby/2.5.0
  - GEM CONFIGURATION:
     - :update_sources => true
     - :verbose => true
     - :backtrace => false
     - :bulk_threshold => 1000
     - :sources => ["http://gems.rubyforge.org/", "http://gems.github.com"]
     - :benchmark => false
     - "gem" => "--no-document"
  - REMOTE SOURCES:
     - http://gems.rubyforge.org/
     - http://gems.github.com
  - SHELL PATH:
     - /Users/elise/.rbenv/versions/2.5.3/bin
     - /usr/local/Cellar/rbenv/1.1.1/libexec
     - ./bin
     - ./node_modules/.bin
     - /Users/elise/.rbenv/shims
     - /Users/elise/.rbenv/bin
     - /usr/local/bin
     - /usr/bin
     - /bin
     - /usr/sbin
     - /sbin
     - /usr/local/sbin

有谁知道这个bug来自哪里?谢谢您的帮助。

ruby macos rbenv macos-mojave rbenv-gemset
2个回答
2
投票

您只在gem配置中启用了非常旧(而非维护)的远程gem源。这可能是由一些旧的迁移配置或遵循一些非常陈旧和过时的建议引起的。

要解决此问题,首先需要删除过时的gem源,然后添加当前应该使用的唯一源。为此,您可以从终端运行以下命令:

gem sources --remove http://gems.github.com/
gem sources --remove http://gems.rubyforge.org/

gem sources --add https://rubygems.org/

1
投票

您必须删除所有宝石来源并添加https://rubygems.org/。请注意,http://gems.rubyforge.org/http://gems.github.com永久死亡,应予以删除。您可以通过运行列出您的来源:

gem sources 

你应该得到这样的东西:

*** CURRENT SOURCES ***

//gems.rubyforge.org/
//gems.github.com

1)删除所有来源:

gem sources -r http://gems.rubyforge.org/
gem sources -r http://gems.github.com

2)添加正确的来源:

gem sources -a https://rubygems.org/

此外,永远不会sudo gem install

希望这可以帮助!

© www.soinside.com 2019 - 2024. All rights reserved.