Skip to content

Instantly share code, notes, and snippets.

Embed
What would you like to do?

Помогите протестировать патч. Срочно. Патч представляет собой бекпорт из Ruby 2.0.0 бага http://bugs.ruby-lang.org/issues/5570 о том, что Ruby неправильно понимает переменные окружения с не-латинским содержимым (грубо говоря), включая и название домашней папки, из-за чего, например, ломается установка гемов.

От вас нужно: виндоус, предпочтительно на виртуалке (за сохранность физической машины ответственности не несу).

  1. Скачиваем пропатченный RubyInstaller 1.9.3 https://www.dropbox.com/s/vkx3ia0x1va370l/rubyinstaller-ru.exe

  2. Создаем пользователя с русским именем ("Руби", например)

  3. Устанавливаем из-под него Ruby

  4. Открываем командную строку (cmd)

  5. Запускаем chcp; если скажет не Active code page: 866 (не 866), отмечаем в результате и делаем chcp 866

  6. Запускаем irb и говорим ему

     require 'fileutils'
     FileUtils.mkdir_p(ENV['HOMEPATH']+'\тест')
    
  7. Проверяем наличие в домашнем каталоге пользователя папки "тест"

  8. Отписываемся в комментарий о результате, включая - версию виндоус и текст ошибки (если она была) Если в комментарий не получается, можно написать на почту leonid@shevtsov.me

@groverz

This comment has been minimized.

Copy link

commented Oct 3, 2012

Сделал по инструкции версия windows XP SP3, сборка зверя, запущенна под virtualbox на ubuntu server 12.04.
Пользователь Руби. Каталоги создались, где их и просили.

irb(main):043:0> FileUtils.mkdir_p(ENV['HOMEPATH']+'\тест')
=> ["\Documents and Settings\x90\xE3\xA1\xA8\xE2\xA5\xE1\xE2"]
irb(main):044:0> FileUtils.mkdir_p(ENV['HOMEPATH']+'\тест123')
=> ["\Documents and Settings\x90\xE3\xA1\xA8\xE2\xA5\xE1\xE2123"]
irb(main):045:0> FileUtils.mkdir_p(ENV['HOMEPATH']+'\тест1234')
=> ["\Documents and Settings\x90\xE3\xA1\xA8\xE2\xA5\xE1\xE21234"]
irb(main):046:0>

@groverz

This comment has been minimized.

Copy link

commented Oct 3, 2012

windows 7 нуждается в проверке?

@budnik

This comment has been minimized.

Copy link

commented Oct 3, 2012

На windows7 английской, все так-же работает. Но не работает если имя содержит украинские букві.

@budnik

This comment has been minimized.

Copy link

commented Oct 3, 2012

бекслеш ескейпит внутри одинарных кавычек:

Лучше всегда писать '\тест' вместо '\тест' я думаю

@budnik

This comment has been minimized.

Copy link

commented Oct 3, 2012

парсер лох: '\тест' vs. '\тест'

@budnik

This comment has been minimized.

Copy link

commented Oct 3, 2012

Для полноты картины, украинское имя пользователя:
Encoding::UndefinedConversionError: U+0406 from UTF-8 to IBM866

@evsyukovmv

This comment has been minimized.

Copy link

commented Oct 3, 2012

На Windows 7 Ulitimate Service Pack 1, 32 разрядная, русская
ruby-test

@Mak0

This comment has been minimized.

Copy link

commented Oct 3, 2012

Windows 7 Russian
Log:

C:\Users\Катюша>chcp
Текущая кодовая страница: 866

C:\Users\Катюша>irb
irb(main):001:0> require 'fileutils'
=> true
irb(main):002:0> FileUtils.mkdir_p(ENV['HOMEPATH']+'\тест')
=> ["\Users\x8A\xA0\xE2\xEE\xE8\xA0\xE2\xA5\xE1\xE2"]
irb(main):003:0> exit

C:\Users\Катюша>ruby -v
ruby 1.9.3p194 (2012-04-20) [i386-mingw32]

C:\Users\Катюша>gem -v
1.8.24

C:\Users\Катюша>dir
Том в устройстве C не имеет метки.
Серийный номер тома: E66D-5178

Содержимое папки C:\Users\Катюша

03.10.2012 10:34

.
03.10.2012 10:34 ..
03.10.2012 10:06 Contacts
03.10.2012 10:41 Desktop
03.10.2012 10:06 Documents
03.10.2012 10:29 Downloads
03.10.2012 10:06 Favorites
03.10.2012 10:06 Links
03.10.2012 10:06 Music
03.10.2012 10:06 Pictures
03.10.2012 10:06 Saved Games
03.10.2012 10:06 Searches
03.10.2012 10:06 Videos
03.10.2012 10:34 тест
0 файлов 0 байт
14 папок 54 960 410 624 байт свободно

C:\Users\Катюша>gem update
Updating installed gems
ERROR: While executing gem ... (Errno::ENOENT)
No such file or directory - C:/Users/? вои 

Директория "тест" создалась: но вот при апдейте гемов все та же ошибка

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.