ruby1.9.2 установить из источника -> установка heisenbug - PullRequest
0 голосов
/ 29 декабря 2010

Я хотел установить ruby1.9.2 из источника, и, как предложил README, я запустил make test.

При первом запуске это не удалось с:

sample/test.rb:gc ....not ok system 9 -- /home/user/Downloads/ruby-1.9.2-p136/sample/test.rb:1950:in `<main>'
not ok/test: 900 failed 1
test failed

Затем я запустил его во второй раз, теперь test.rb: gc прошел, но потерпел неудачу здесь:

sample/test.rb:system ........unknown encoding name: euc-jp
/home/user/Downloads/ruby-1.9.2-p136/ext/tk/sample/demos-jp/anilabel.rb
unknown encoding name: euc-jp
/home/user/Downloads/ruby-1.9.2-p136/ext/tk/sample/demos-jp/aniwave.rb
unknown encoding name: euc-jp
/home/user/Downloads/ruby-1.9.2-p136/ext/tk/sample/demos-jp/arrow.rb
unknown encoding name: euc-jp
/home/user/Downloads/ruby-1.9.2-p136/ext/tk/sample/demos-jp/bind.rb
unknown encoding name: euc-jp
/home/user/Downloads/ruby-1.9.2-p136/ext/tk/sample/demos-jp/bitmap.rb
.....and a lot more

В третий раз предыдущие ошибки не отображаются, но это:

test_autoload.rb ........bootstraptest.tmp.rb:4:in `block in <main>': undefined method `ok' for ZZZ:Class (NoMethodError)
.
.
.
#11 test_autoload.rb:54:in `<top (required)>': 
     open("zzz.rb", "w") {|f| f.puts "class ZZZ; def self.ok;:ok;end;end"}
     autoload :ZZZ, "./zzz.rb"
     t1 = Thread.new {ZZZ.ok}
     t2 = Thread.new {ZZZ.ok}
     [t1.value, t2.value].join
  #=> "" (expected "okok")  
FAIL 1/934 tests failed
make: *** [yes-btest-ruby] Error 1

Видя, что установка постепенно «заживает», я продолжил работать make test, и в шестой раз:

PASS all 934 tests

Я нахожусь на виртуальной Ubuntu 10.10.

Кто-нибудь знает, что происходит под капотом?

1 Ответ

0 голосов
/ 29 декабря 2010

Я предполагаю, что вы запустили configure, затем запустили make. Я также предполагаю, что у вас установлен Bison или что-то подобное. Последняя версия, которую я сделал, была 1.9.2p94, так как где-то в них исправлена ​​ошибка с TCPSocket по сравнению с 1.9.2p0

.

Если вы пропустили один из вышеуказанных шагов, я бы предположил, что make test строит зависимости для тестовой за один раз, постепенно продвигаясь, прежде чем создавать дополнительные зависимости.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...