Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save leonid-shevtsov/3824436 to your computer and use it in GitHub Desktop.
Save leonid-shevtsov/3824436 to your computer and use it in GitHub Desktop.

Помогите протестировать патч. Срочно. Патч представляет собой бекпорт из 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
Copy link

groverz 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
Copy link

groverz commented Oct 3, 2012

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

@budnik
Copy link

budnik commented Oct 3, 2012

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

@budnik
Copy link

budnik commented Oct 3, 2012

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

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

@budnik
Copy link

budnik commented Oct 3, 2012

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

@budnik
Copy link

budnik commented Oct 3, 2012

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

@evsyukovmv
Copy link

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

@Mak0
Copy link

Mak0 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