我正在尝试在Windows上为ruby安装ncurses。我之前没有在我的机器上安装过ncurses。我认为拥有"ruby devkit",它已经要求就足够了,但现在我被要求指定选项...我不知道选择哪个选项,或者我是否需要做/为gem安装其他东西:
C:\Ruby193\Devkit>gem install ncurses -- --ruby=C:/Ruby193/bin/ruby --without-make-prog --without-opt-dir
Temporarily enhancing PATH to include DevKit...
Building native extensions. This could take a while...
ERROR: Error installing ncurses:
ERROR: Failed to build gem native extension.
C:/Ruby193/bin/ruby.exe extconf.rb --ruby=C:/Ruby193/bin/ruby --without-make-prog --without-opt-dir
C:/Ruby193/lib/ruby/1.9.1/shellwords.rb:35:in `shellsplit': undefined method `scan' for false:FalseClass (NoMethodError)
from C:/Ruby193/lib/ruby/1.9.1/mkmf.rb:2216:in `<top (required)>'
from C:/Ruby193/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
from C:/Ruby193/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
from extconf.rb:22:in `<main>'
Gem files will remain installed in C:/Ruby193/lib/ruby/gems/1.9.1/gems/ncurses-0.9.1 for inspection.
Results logged to C:/Ruby193/lib/ruby/gems/1.9.1/gems/ncurses-0.9.1/./gem_make.out
什么是PAIN,我只是想安装这个gem,所以我可以运行它:
require 'curses'
cols = Curses.stdscr.maxx
msg = "random_string"
str = msg.center(msg.length + cols - msg.length - 5 - 3)
puts "<!-- #{str}-->"
答案 0 :(得分:3)
更新版本:
gem install curses --platform=ruby -- --with-ncurses-dir="C:\ncurses"
C:\ ncurses可以是任何目录
答案 1 :(得分:0)
更新:似乎SourceForge不再托管Windows的NCurses二进制文件。这个答案现在已经过时了。抱歉! (截至2015年8月,GNU NCurses Page列出了一个“新”v6.0版本,比我的答案中的0.9.1版本更新。)
我终于让它工作了(在我需要它之后的几年......)没有 Cygwin,PDCurses,或者手动构建NCurses源。说明可用on my blog。供参考:
ruby -e 'puts $:'
有效。没有PDCurses!
答案 2 :(得分:0)
我已经从sourceforge成功下载了ncurses 0.9.1 binaries,因此该库仍然可用。
然后我尝试使用原生Ruby和IronRuby 1.1.3
将两个文件(ncurses.so ncurses.rb)放在
中C:\红宝石\ Ruby193 \ lib中\红宝石\ 1.9.1
使用原生Ruby
给出错误找不到指定的模块。 - C:/Ruby/Ruby193/lib/ruby/1.9.1/ncurses.so(LoadError)
将它们放在这里(适用于IronRuby) C:\ Program Files(x86)\ IronRuby 1.1 \ Lib \ ruby \ 1.9.1
给出
该模块应该包含一个程序集清单。 (HRESULT异常:0x80131018)
答案 3 :(得分:0)
当gem安装需要curses lib时;所以首先你需要安装NCurses 与你的msys2
https://sourceforge.net/p/mingw-w64/wiki2/NCurses/
下载NCurses(撰写本文时为v5.9):http://ftp.gnu.org/pub/gnu/ncurses/ 在源目录
中然后解压并在MSYS shell中:
./ configure --host = x86_64-w64-mingw32 --enable-term-driver --enable-sp-funcs --prefix = / some / prefix
制作
进行检查
make install
然后如链接中所述: https://github.com/ruby/curses/issues/13
使用--platform = ruby, - with-curses-include, - with-curses-lib flags with gem install
答案 4 :(得分:0)
从2020年2月(可能更早)开始,您可以使用以下命令安装ncurses lib
gem install curses
至少在Ruby 2.6.5上它可以正常工作
答案 5 :(得分:-1)
ruby ncurses gem需要在机器上安装ncurses。据我所知,ncurses尚未移植到Windows。所以我认为你不会让它发挥作用。
可能还有其他方法可以找出屏幕在屏幕上的宽度,但我无法帮助您。