2013-11-20 3 views
0

У меня проблема с моей командой gem и Ruby, я думаю, что это из-за проблемы с пути.Ruby gem работает навсегда и Ruby, ошибка пути от gem

gem install jekyll 

занимает в течение длительного времени для запуска, и выдает сообщение об ошибке:

ERROR: Could not find a valid gem 'jekyll' (>= 0) 

Unable to download data from https://rubygems.org/ - too many connection resets(https://s3.amazonaws.com/production.s3.rubygems.org/latest_specs.4.8.gz) 

я вошел which ruby, что выход:

/usr/local/bin/ruby 

Если я вхожу which gem, он печатает :

gem() { 
    typeset result 
    (
    typeset rvmrc 
    rvm_rvmrc_files=("/etc/rvmrc" "$HOME/.rvmrc") 
    if [[ -n "${rvm_prefix:-}" ]] && ! [[ "$HOME/.rvmrc" -ef "${rvm_prefix}/.rvmrc" ]] 
    then 
     rvm_rvmrc_files+=("${rvm_prefix}/.rvmrc") 
    fi 
    for rvmrc in "${rvm_rvmrc_files[@]}" 
    do 
     [[ -s "${rvmrc}" ]] && source "${rvmrc}" || true 
    done 
    unset rvm_rvmrc_files 
    command gem "[email protected]" 
) || result=$? 
    hash -r 
    return ${result:-0} 
} 

Введите whereis gem, распечатывает:

/usr/bin/gem 

Кто-нибудь знает, как это исправить? Я долго пробовал и смущался.


UPDATE:

Введите gem env я получил:

RubyGems Environment: 
    - RUBYGEMS VERSION: 2.0.3 
    - RUBY VERSION: 2.0.0 (2013-06-27 patchlevel 247) [x86_64-darwin13.0.0] 
    - INSTALLATION DIRECTORY: /Users/lijung/.rvm/gems/ruby-1.9.3-p374 
    - RUBY EXECUTABLE: /usr/local/Cellar/ruby/2.0.0-p247/bin/ruby 
    - EXECUTABLE DIRECTORY: /Users/lijung/.rvm/gems/ruby-1.9.3-p374/bin 
    - RUBYGEMS PLATFORMS: 
     - ruby 
     - x86_64-darwin-13 
    - GEM PATHS: 
     - /Users/lijung/.rvm/gems/ruby-1.9.3-p374 
     - /usr/local/bin/gem 
    - GEM CONFIGURATION: 
     - :update_sources => true 
     - :verbose => true 
     - :backtrace => false 
     - :bulk_threshold => 1000 
    - REMOTE SOURCES: 
     - https://rubygems.org/ 

введите rvm info:

ruby-1.9.3-p374: 

    system: 
    uname:  "Darwin chi.local 13.0.0 Darwin Kernel Version 13.0.0: Thu Sep 19 22:22:27 PDT 2013; root:xnu-2422.1.72~6/RELEASE_X86_64 x86_64" 
    system:  "osx/10/x86_64" 
    bash:  "/usr/local/bin/bash => GNU bash, version 4.2.37(2)-release (i386-apple-darwin12.2.0)" 
    zsh:   "/bin/zsh => zsh 5.0.2 (x86_64-apple-darwin13.0)" 

    rvm: 
    version:  "rvm 1.18.3 (master) by Wayne E. Seguin <[email protected]>, Michal Papis <[email protected]> [https://rvm.io/]" 
    updated:  "9 months 18 days 11 hours 37 minutes 54 seconds ago" 

    ruby: 
    interpreter: "ruby" 
    version:  "2.0.0p247" 
    date:   "2013-06-27" 
    platform:  "x86_64-darwin13.0.0" 
    patchlevel: "2013-06-27 revision 41674" 
    full_version: "ruby 2.0.0p247 (2013-06-27 revision 41674) [x86_64-darwin13.0.0]" 

    homes: 
    gem:   "/Users/lijung/.rvm/gems/ruby-1.9.3-p374" 
    ruby:   "/Users/lijung/.rvm/rubies/ruby-1.9.3-p374" 

    binaries: 
    ruby:   "/usr/local/bin/ruby" 
    irb:   "/usr/local/bin/irb" 
    gem:   "/usr/local/bin/gem" 
    rake:   "/usr/local/bin/rake" 

    environment: 
    PATH:   "/usr/local/bin:/usr/local/sbin:/Users/lijung/.rvm/gems/ruby-1.9.3-p374/bin:/Users/lijung/.rvm/gems/[email protected]/bin:/Users/lijung/.rvm/rubies/ruby-1.9.3-p374/bin:/Users/lijung/.rvm/bin:/opt/local/bin:/opt/local/sbin:/usr/bin:/bin:/usr/sbin:/sbin:/opt/X11/bin:/Applications/Postgres.app/Contents/MacOS/bin" 
    GEM_HOME:  "/Users/lijung/.rvm/gems/ruby-1.9.3-p374" 
    GEM_PATH:  "/usr/local/bin/gem" 
    MY_RUBY_HOME: "/Users/lijung/.rvm/rubies/ruby-1.9.3-p374" 
    IRBRC:  "/Users/lijung/.rvm/rubies/ruby-1.9.3-p374/.irbrc" 
    RUBYOPT:  "" 
    gemset:  "" 
+0

Во-первых, вам нужно показать, что драгоценный камень знает о своем мире: добавьте вывод 'gem env' на свои вопросы. Ошибка при перезагрузке соединения означает, что ваше интернет-соединение с сервером rubygems не было хорошим. Обычно это ложная проблема, которая исправляет себя (после того, как какой-то интернет-эльф что-то приспосабливает). –

+0

@theTinMan Я только что обновил сообщение 'gem env', я думаю, что путь - огромный беспорядок. – LiJung

+0

Ваша версия Rubygems устарела. Запустите 'gem update --system', чтобы исправить это. Похоже, ваша среда Ruby тоже очень запутана; Я вижу несоответствия, когда он думает, что ваш исполняемый файл Ruby находится там, где RVM мог бы его поместить. Как вы установили свои Rubies, потому что это НЕ то, что сделает RVM. –

ответ

2

Первое, что я вижу, что это "очень плохо" при использовании RVM:

PATH: "/usr/local/bin:/usr/local/sbin:/Users/lijung/.rvm/gems/ruby-1.9.3-p374/bin:/Users/lijung/.rvm/gems/[email protected]/bin:/Users/lijung/.rvm/rubies/ruby-1.9.3-p374/bin:/Users/lijung/.rvm/bin:/opt/local/bin:/opt/local/sbin:/usr/bin:/bin:/usr/sbin:/sbin:/opt/X11/bin:/Applications/Postgres.app/Contents/MacOS/bin" 

Даже если форматы переполнения стека вы видите, что инициализация RVM неверна. RVM должен быть первым, что на вашем пути. Посмотрите в файл ~/.bash_profile или ~/.bashrc и настройте манипуляции PATH, чтобы он появился первым, затем закройте окно терминала и снова закройте его. Проверка PATH должна выглядеть примерно так:

"/Users/lijung/.rvm/gems/ruby-1.9.3-p374/bin:/Users/lijung/.rvm/gems/[email protected]/bin:/Users/lijung/.rvm/rubies/ruby-1.9.3-p374/bin:/Users/lijung/.rvm/bin:/usr/local/bin:/usr/local/sbin:/opt/local/bin:/opt/local/sbin:/usr/bin:/bin:/usr/sbin:/sbin:/opt/X11/bin:/Applications/Postgres.app/Contents/MacOS/bin" 

Путь цепь каталогов, используемых вашей оболочки при поиске команды. Ваш текущий путь подсказывает оболочке сначала находить команды в/usr/local/bin и/usr/local/sbin, что означает, что сначала он найдет все связанные с Ruby команды в этом каталоге, которые НЕ являются теми, которые установлены RVM для вы.

Исправление инициализатора RVM, так что он работает в правой части вашего ~/.bash_profile или ~/.bashrc - это первый шаг.

Ваш RVM устарел. Каждые две недели вы должны запустить rvm get stable, чтобы убедиться, что у вас есть последние настройки и исправления ошибок. Как только ваш путь будет исправлен, вы можете запустить это.

Ошибка:

Unable to download data from https://rubygems.org/ - too many connection resets... 

свидетельствует интернет-проблемы между вами и вашим сервером. Обычно это будет исправлено самостоятельно. Если он не исцелится в разумные сроки, попробуйте перезагрузить свой компьютер, что даст IP-стеку возможность перезагрузить и очистить все его кеши; Хотя этот код хорошо протестирован, еще есть моменты, когда он может потерять свой разум и делать немые вещи. Сброс - это твой глаз, который привлекает его внимание.Если THAT не исправит это, позвоните своему провайдеру.


I be able to use Ruby, that I've downloaded from brew? How can I set my gem path to the right path?

дело с вещами, в правильном порядке. Вы не можете использовать свой Ruby, поскольку он в настоящее время настроен, потому что ваши драгоценные камни неправильно связаны с правильной версией Ruby, и любые изменения, внесенные вами в установки Ruby, приведут только к путанице и хаосу. После того, как вы путь исправленные и РВМ правильно работает, то это очень простая команда РВМ, чтобы дать возможность другого Homebrew рубины:

rvm use system --default 

В тот момент, РВМ будет выходить из пути и другие ваши рубины будут доступны через цепь PATH. Вы должны управлять тем, какая версия Ruby будет выполнена в этот момент.

Избегайте этой проблемы, поэтому мы используем RVM или rbenv; Они могут легко установить несколько версий Ruby и позволить вам переключаться между ними с помощью простой команды или даже автоматически, когда вы введете chdir в каталог, если вы их настроите. Brew только путает воду, и попытка использовать Brew, установленный Ruby, был источником вашей проблемы, поэтому я бы рекомендовал серьезно пересмотреть это решение.

Наконец, поскольку вы, кажется, не понимаете, что делаете, и вы работаете в Mac OS X, я бы рекомендовал исправить эту проблему, а затем отступить от компьютера, ПРОЧИТАТЬ ВСЕ RVM СТРАНИЦЫ до вас ДЕЙСТВИТЕЛЬНО понимаете, что он делает, затем тщательно вносите изменения. Не верьте, что говорят другие сайты об установке RVM, доверьтесь тому, что говорят авторы RVM. Авторы знают, что лучше всего подходит для его использования.

Возможно, вы захотите также изучить JewelryBox.

+0

Большое спасибо @theTimMan, это очень помогает мне. Могу ли я использовать 'Ruby', который я загрузил из' brew'? Как я могу установить путь 'gem' к правильному пути? – LiJung

+0

@theTimMan Я установил путь 'export PATH =/usr/local/bin:/usr/local/sbin: /Users/lijung/.rvm/gems/ruby-1.9.3-p374/bin:/Пользователи/lijung/.rvm/gems/[email protected]/bin: /Users/lijung/.r vm/rubies/ruby-1.9.3-p374/bin: /Users/lijung/.rvm/bin: /opt/local/bin:/opt/local/sbin:/usr/bin:/bin:/usr/sbin:/sbin:/opt/X11/bin:/Applications/Postgres.app/ Содержание/MacOS/bin' на '~/.zshrc', но я думаю, что он все еще запускает Ruby, который устанавливается с пива. – LiJung

+0

У меня есть 'ruby 2.0.0p247 (версия 2013-06-27 версия 41674) [x86_64-darwin13.0.0]' после ввода «ruby -v» – LiJung