PTY камень не найден

У меня Ruby 1.9.3 установлен на Windows. Когда я пытаюсь потребовать драгоценный камень, консоль выводит, что драгоценный камень не был найден:

require 'pty'

Какие выводы:

'require': cannot load such file -- pty <LoadError>

Также я попробовал:

gem install pty

И получил этот вывод:

Could not find a valid gem 'pty' in any repository

Как это исправить?

2 ответа

Насколько я знаю, для Windows нет реализации модуля PTY, так как они не имеют возможностей псевдо-терминала.

Ты можешь попробовать

gem install rubysl-pty

если целевая версия ruby ​​1.9.x, запустите команду gem с соответствующей опцией -v

gem install rubysl-pty -v 1.0.0

Если вы хотите использовать PTY в Windows, моя лучшая рекомендация - использовать Cygwin. Я могу установить и использовать этот rubysl-pty на моей Windows с Cygwin, но с некоторыми ограничениями:

$ gem install rubysl-pty -v 1.0.0
Building native extensions.  This could take a while...
Successfully installed rubysl-pty-1.0.0
1 gem installed
Installing ri documentation for rubysl-pty-1.0.0...
Installing RDoc documentation for rubysl-pty-1.0.0...

Образец кода:

# test.rb
require 'pty'
PTY.getpty("ls") { |i,o,pid| p i; p pid }

Выход:

$ ruby test.rb
#<File:/dev/pty0>
16376

В настоящее время кажется, что Ruby поддерживает модуль pty из коробки, поэтому вам не нужно устанавливать гем: https://ruby-doc.org/stdlib-2.5.3/libdoc/pty/rdoc/PTY.html

Другие вопросы по тегам