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