【问题标题】:OS X Mavericks: rubygems broken (after some homebrew and rvm mistakes?)OS X Mavericks:rubygems 损坏(在一些自制程序和 rvm 错误之后?)
【发布时间】:2014-12-11 04:39:58
【问题描述】:

(巨大的警告:我是一个非常聪明的开发人员,并且在命令行方面知识渊博......但我是一名 iOS 开发人员。OS X 内置 rubygem 之间的机制和交互, homebrew-installed ruby,而 rvm 所做的是我最近才知道的微妙之处。也就是说……)

我正在尝试恢复到基线工作 OS X 系统 ruby 安装。我不想使用rvm,我不想使用homebrew 安装不同的ruby……我只想让这个工作。

以下是不起作用的:

%○宝石帮助 警告:未知命令 /usr/local/bin。尝试 gem 帮助命令 % ○ gem 帮助命令 警告:未知命令 /usr/local/bin。尝试 gem 帮助命令

试图忽略所有这些噪音并继续我的一天:

% ○ sudo gem 安装捆绑器 错误:在任何存储库中都找不到有效的 gem '/usr/local/bin' (>= 0) [时间流逝] 成功安装 bundler-1.7.3 bundler-1.7.3 的解析文档 3 秒后完成为捆绑器安装文档 已安装 1 个宝石

我的系统配置:

  • 系统ruby:
% ○ 红宝石 /usr/bin/红宝石 % ○ 红宝石--版本 ruby 2.0.0p481(2014-05-08 修订版 45883)[universal.x86_64-darwin13]
  • 系统gem:
% ○ 哪里的宝石 /usr/bin/gem % ○ 宝石--版本 2.0.14

OS X 版本:

% ○ sw_vers 产品名称:Mac OS X 产品版本:10.9.5 构建版本:13F34

我之前做过的可能改变了系统的事情: - 通过homebrew 安装ruby。我已经用brew uninstall ruby 支持了这一点。 - 通过rvm 的主页说明安装rvm。我已经用rvm implode 支持了这一点,并将适用的更改恢复到我的.zsh* 文件(我在版本控制下)。

那么……这里发生了什么?为什么gem 在谈论/usr/local/bin/

关于gem的Som信息:

%○哪个宝石 /usr/bin/gem %○型宝石 gem 是 /usr/bin/gem %○文件/usr/bin/gem /usr/bin/gem:一个 /System/Library/Frameworks/Ruby 脚本文本可执行文件 % ○ 猫 /usr/bin/gem #!/System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/bin/ruby #-- # 版权所有 2006,Chad Fowler、Rich Kilmer、Jim Weirich 等人。 # 版权所有。 # 查看 LICENSE.txt 获取权限。 #++ 需要“红宝石” 需要'rubygems/gem_runner' 需要'rubygems/exceptions' required_version = Gem::Requirement.new ">= 1.8.7" 除非 required_version.satisfied_by?然后 Gem.ruby_version abort "预期的 Ruby 版本 #{required_version},是 #{Gem.ruby_version}" 结尾 args = ARGV.克隆 开始 Gem::GemRunner.new.run 参数 救援宝石::SystemExitException => e 退出 e.exit_code 结尾

【问题讨论】:

  • @mpapis 谢谢,但不感谢那个编辑。
  • 一段文字比较难读,但我已经看过了,所以没关系
  • 脚本看起来不错,可以加which gemtype gem
  • 已添加。我认为这与来自homebrew 的一些奇怪的路径有关。超级奇怪。
  • 冷静投票。愿意就原因留下反馈吗?

标签: ruby macos gem


【解决方案1】:

我找到了。通过gemgem_runner.rbcommand_manager.rb 中的一大堆废话挖掘到command.rb,我发现:

# 从 ~/.gemrc 添加额外的参数 def add_extra_args(args)

我的.gemrc 中有什么内容?好吧,一方面,它没有在我的 git 支持的 .dotfiles 中跟踪。二:

% ○ 猫 ~/.gemrc --- :bulk_threshold: 1000 :基准:假 :来源: - http://rubygems.org/ - http://gems.github.com :update_sources: 真 宝石:/usr/local/bin :回溯:假 :详细: 真的

请注意这一行:gem: /usr/local/bin。这是我在将ruby 作为homebrew 的一部分安装时所做的修改。

现在按预期工作:

%○宝石帮助 RubyGems 是一个复杂的 Ruby 包管理器。这是一个 包含指向更多信息的指针的基本帮助消息。 用法: gem -h/--帮助 gem -v/--版本 [剪断]

【讨论】:

  • 你应该打开 ruby​​gems 的错误报告,错误消息根本没有帮助,很高兴它与 rvm 无关 :)
  • gem help 遇到了同样的问题。通过删除 .gemrc 来修复它。我看到instructions on homebrew 是固定的:echo "gem: -n/usr/local/bin" >> ~/.gemrc 注意 -n
猜你喜欢
  • 1970-01-01
  • 2014-02-04
  • 2015-11-25
  • 1970-01-01
  • 1970-01-01
  • 2011-04-08
  • 1970-01-01
  • 2012-07-29
  • 1970-01-01
相关资源
最近更新 更多