2014-10-15 1 views
2

(대단한주의 사항 : 저는 매우 영리한 개발자이며 명령 줄에서 완전히 지식이 있습니다 ...하지만 iOS 개발자입니다. 사이의 상호 작용 OS X에 내장 된 ruby, gem하는 homebrew -installed ruby, 어떤 rvm 내가 최근에 배운 미묘한. 말했다 ...)OS X Mavericks : rubygems가 깨졌습니다. (자작 및 rvm 실수가 있은 후)

나는 OS X의 시스템을 작동 다시 기준선을 얻으려고는 않습니다 ruby을 설치하십시오. rvm을 사용하고 싶지 않습니다. homebrew을 다른 것으로 설치하고 싶지 않습니다. ruby ...이 제품을 사용하고 싶습니다.

다음은 작동하지 않습니다 무엇 :

 
% ○ gem help 
WARNING: Unknown command /usr/local/bin. Try gem help commands 

% ○ gem help commands 
WARNING: Unknown command /usr/local/bin. Try gem help commands 

이 모든 소음을 무시하고 내 하루에 이동하기위한 시도 :

 
% ○ sudo gem install bundler 
ERROR: Could not find a valid gem '/usr/local/bin' (>= 0) in any repository 
[time elapses] 
Successfully installed bundler-1.7.3 
Parsing documentation for bundler-1.7.3 
Done installing documentation for bundler after 3 seconds 
1 gem installed 

내 시스템 구성 :

  • 시스템 ruby :
 
% ○ where ruby 
/usr/bin/ruby 

% ○ ruby --version              
ruby 2.0.0p481 (2014-05-08 revision 45883) [universal.x86_64-darwin13] 
  • 시스템 gem :
 
% ○ where gem 
/usr/bin/gem 

% ○ gem --version 
2.0.14 

OS X의 버전 : 아마 시스템 변이 한 내가했던

 
% ○ sw_vers 
ProductName: Mac OS X 
ProductVersion: 10.9.5 
BuildVersion: 13F34 

이전 일 : - homebrew를 통해 ruby 설치 . 나는 그 후 brew uninstall ruby으로 그것을 뒷받침했다. - rvm을 (를) rvm의 홈페이지 지침을 통해 설치하십시오. 그 이후로 나는 rvm implode으로 그 문제를 해결했으며, .zsh* 파일 (버전 제어하에 있음)에 적용 가능한 변경 사항을 되 돌리십시오.

그래서 ... 여기 무슨 일 이니? gem은 (는) /usr/local/bin/에 대해 왜 이야기하고 있습니까?

솜 정보는 약 gem :

 
% ○ which gem 
/usr/bin/gem 

% ○ type gem 
gem is /usr/bin/gem 

% ○ file /usr/bin/gem                 
/usr/bin/gem: a /System/Library/Frameworks/Ruby script text executable 
 
% ○ cat /usr/bin/gem                 
#!/System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/bin/ruby 
#-- 
# Copyright 2006 by Chad Fowler, Rich Kilmer, Jim Weirich and others. 
# All rights reserved. 
# See LICENSE.txt for permissions. 
#++ 

require 'rubygems' 
require 'rubygems/gem_runner' 
require 'rubygems/exceptions' 

required_version = Gem::Requirement.new ">= 1.8.7" 

unless required_version.satisfied_by? Gem.ruby_version then 
    abort "Expected Ruby Version #{required_version}, is #{Gem.ruby_version}" 
end 

args = ARGV.clone 

begin 
    Gem::GemRunner.new.run args 
rescue Gem::SystemExitException => e 
    exit e.exit_code 
end 
+0

@mpapis 덕분하지만 편집에 아무런 감사합니다. – cbowns

+0

한 블록의 텍스트를 읽는 것이 더 어렵지 만 이미 본 적이 있으므로 – mpapis

+0

스크립트가 좋아 보인다.'which gem'과'type gem'을 추가 할 수 있습니까? – mpapis

답변

4

나는 그것을 발견했다.

 
    # Adds extra args from ~/.gemrc 

    def add_extra_args(args) 

.gemrc의 새로운 기능 : 내가 찾은 command.rb으로 gem_runner.rbcommand_manager.rb을 통해, gem에서 헛소리의 전체 무리를 통해 파고? 글쎄, 하나 들어, 내 자식 - .dotfiles에 추적되지 않습니다. 2 :

 
% ○ cat ~/.gemrc                     --- 
:bulk_threshold: 1000 
:benchmark: false 
:sources: 
- http://rubygems.org/ 
- http://gems.github.com 
:update_sources: true 
gem: /usr/local/bin 
:backtrace: false 
:verbose: true 

이 줄을 참고하십시오 : gem: /usr/local/bin. 그게 내가 rubyhomebrew의 일부로 설치했을 때 만든 수정이었습니다.

지금이 예상대로 작동합니다

 
% ○ gem help 
RubyGems is a sophisticated package manager for Ruby. This is a 
basic help message containing pointers to more information. 

    Usage: 
    gem -h/--help 
    gem -v/--version 
[snipped] 
+0

rubygems에 대한 버그 보고서를 열어야합니다. 오류 메시지는 도움이되지 않았습니다 전혀, 그것은 rvm과 아무런 관련이 없기 때문에 기쁘다. – mpapis

+1

나는 '보석 도움'에 똑같은 문제가 있었다. .gemrc를 삭제하여 문제를 해결했습니다. [자제에 대한 지침] (https://github.com/Homebrew/homebrew/blob/master/share/doc/homebrew/Gems,-Eggs-and-Perl-Modules.md#with-systems- 루비)는 고정되어 있습니다 : 'echo "gem : -n/usr/local/bin">> ~/.gemrc' -n – mcdado