我在 Windows 上安装了 Ruby 1.9.3。当我尝试要求 gem 时,控制台输出找不到 gem:
require 'pty'
哪个输出:
'require': cannot load such file -- pty <LoadError>
我也试过:
gem install pty
并得到了这个输出:
Could not find a valid gem 'pty' in any repository
我该如何解决?
据我所知,Windows 没有 PTY 模块实现,因为它们没有伪终端功能。
你可以试试
gem install rubysl-pty
如果目标 ruby 版本是 1.9.x,请使用适当的 -v 选项运行 gem 命令
gem install rubysl-pty -v 1.0.0
如果你想在 Windows 上使用 PTY,我最好的建议是使用 cygwin。我可以使用 cygwin 在我的 Windows 上安装和使用这个 rubysl-pty,但几乎没有限制:
$ 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”模块,因此您不必安装任何 gem:https ://ruby-doc.org/stdlib-2.5.3/libdoc/pty/rdoc/PTY.html