2016-02-21 5 views
3

Моя рабочая станция:Установка Ruby Pry дает странные результаты?

$ uname -a 
Linux dsktop 3.13.0-77-generiC#121-Ubuntu SMP Wed Jan 20 10:50:42 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux 
$ ruby -v 
ruby 2.2.4p230 (2015-12-16 revision 53155) [x86_64-linux-gnu] 
# (also same behavior with ruby 2.3.1) 

Я исследовал это, нашел pry-nav work unexpectedly - но Переустановка на этот вопрос не зафиксировали мою проблему.

Проблемы - Я недавно установил рубин 2.2 и 2.3 общесистемных с использованием Brightbox Облако PPA ресурсов, например:

$ sudo apt-add-repository ppa:brightbox/ruby-ng 
$ sudo apt-get update 
$ sudo apt-get install ruby2.3 ruby2.3-dev 

И затем установил камень Pry и соответствующие зависимости:

$ sudo gem install pry pry-nav pry-byebug 

в результате в этом:

$ sudo gem list pry 

*** LOCAL GEMS *** 

pry (0.10.3) 
pry-byebug (3.3.0) 
pry-nav (0.2.4) 

это также необходимо, чтобы открыть доступ к файлам аЬ это:

$ sudo chmod -R 755 /var/lib/gems 
$ sudo chmod 755 /usr/local/bin/pry 
$ sudo chmod 755 /usr/local/bin/byebug 

я ранее имел монтировку работать на старом РВМ вышке с Ruby 1.9 и 2.1, и все прекрасно работало, но я, видимо, «потерял формулу» для установки Поддеть, или что-то не тонко изменено (?). О, и нет Rails, чтобы усложнять ситуацию, просто простые скрипты Ruby.

Когда я запускаю код сценария, который выглядит следующим образом (и которые прекрасно работали с РВМ вышкой и частными установленными камнями):

require 'pry' 
binding.pry 

args = ARGV.join(' ') 
# Check that only numbers 0..9, arithmetical operators +, -, * and /, 
# decimal, comma, space and parentheses() are present in args: 

Ожидая, конечно, что Прая-Byebug будет остановом на линии после вызова метода binding.pry. Вместо этого отображается следующая точка останова (?):

From: /var/lib/gems/2.2.0/gems/pry-nav-0.2.4/lib/pry-nav/tracer.rb @ line 21 PryNav::Tracer#run: 

    12: def run(&block) 
    13: # For performance, disable any tracers while in the console. 
    14: # Unfortunately doesn't work in 1.9.2 because of 
    15: # http://redmine.ruby-lang.org/issues/3921. Works fine in 1.8.7 and 1.9.3. 
    16: stop unless RUBY_VERSION == '1.9.2' 
    17: 
    18: return_value = nil 
    19: command = catch(:breakout_nav) do  # Coordinates with PryNav::Commands 
    20:  return_value = yield 
=> 21:  {} # Nothing thrown == no navigational command 
    22: end 
    23: 
    24: # Adjust tracer based on command 
    25: if process_command(command) 
    26:  start 
    27: else 
    28:  stop if RUBY_VERSION == '1.9.2' 
    29:  if @pry_start_options[:pry_remote] && PryNav.current_remote_server 
    30:  PryNav.current_remote_server.teardown 
    31:  end 
    32: end 
    33: 
    34: return_value 
    35: end 

pry> 

Итак, что здесь происходит? Почему Pry разбивается на строку 21 в модуле запуска .../pry-nav/tracer.rb?

Как установить Pry и Byebug, чтобы привести в действие набор Gems?

Я обещаю задокументировать этот ответ, чтобы я не потерял его снова в будущем! ТИА.

ADDED - После публикации этого вопроса, я сделал больше копать и наткнулся на это:

https://plus.google.com/114275173749981855325/posts

, который предположил, что только подглядывать и подсматривать-нав должен быть установлен, но не подглядывать-byebug. Итак, я удалил pry-byebug и ta-da! Pry-отладка снова начала работать правильно.

Приносим извинения за задание столь длительного вопроса, чтобы ответить на него самим таким простым решением. Хотелось бы надеяться, что y'all позволит этому сообщению сохраняться как усовершенствование «как установить Pry» на будущее. Существующая «авторитетная» документация по установке pry является неоднозначной и неточной (или, возможно, просто не затрагивает эту потенциальную проблему).

Спасибо, и снова, извините за беспокойство и замешательство.

+0

Вы можете добавить свой ответ и принять его, но, возможно, подвести итог, как кажется, есть много не очень полезный текст включены. – osman

+0

Сообщение @Lorin ссылается на http://thecuriousrubyprogrammer.blogspot.com/2015/08/ruby-interactive-debugging-with-pry.html – Dorian

+0

Возможный дубликат работы [pry-nav неожиданно] (http: // stackoverflow.com/questions/26860140/pry-nav-work-unexpectedly) – Dorian

ответ

3

Деинсталляция pry-nav, кажется, делает это отлично работает снова :)

gem uninstall pry-nav 
Смежные вопросы