5

I am trying to install ncurses for ruby on windows. I have not installed ncurses before on my machine. I thought that having the "ruby devkit", it had asked for would be enough, but now I am being asked to specify options... I don't know which options to pick, or if I need to do/install other things for the gem to get installed:

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

WHAT A PAIN, I just want to get this gem installed so I can run this:

require 'curses'
cols = Curses.stdscr.maxx
msg = "random_string"
str = msg.center(msg.length + cols - msg.length - 5 - 3)
puts "<!-- #{str}-->"
4

7 回答 7

3

更新后的版本:

  1. 获取 ncurses(MinGW 端口):http: //invisible-island.net/ncurses/
  2. 把它放在 C:\ncurses
  3. gem install curses --platform=ruby -- --with-ncurses-dir="C:\ncurses"
  4. 将 C:\ncurses\bin 的内容复制到路径中的某个位置

C:\ncurses 可以是任何目录

于 2016-10-10T02:08:14.147 回答
0

更新: SourceForge 似乎不再为 Windows 托管 NCurses 二进制文件。这个答案现在实际上已经过时了。对不起!(截至 2015 年 8 月,GNU NCurses 页面列出了一个“新”v6.0 版本,它比我的回答中的 0.9.1 版本更新。)

我终于在没有Cygwin、PDCurses 或手动构建 NCurses 源的情况下让它工作(在我需要它多年后......)。这些说明可在我的博客上找到。以供参考:

  • 从SourceForge下载最新的 NCurses 二进制文件 (0.9.1) 。
  • 将文件解压缩到您机器上的某个位置。
  • 通过运行找出 Ruby 在哪里搜索库ruby -e 'puts $:'
  • 将 ncurses.so 和 lib\ncurses.rb 从 NCurses 目录复制并粘贴到您选择的目录中。将它们都放在根目录中。
  • 运行启用了 NCurses 的应用程序。

有用。没有 PDCurses!

于 2013-10-31T19:06:30.837 回答
0

我已经设法为 ruby​​ 2.2 做到了,默认情况下没有诅咒,但我花了一段时间:

  • SourceForge下载PDCurses
  • 解压它;
  • 将其内容复制到 ruby​​ 可以看到的文件夹中。我不确定我使用的是哪一个,我想我将它复制到多个,直到它起作用。ruby -e 'puts $:'可能有帮助;
  • 安装诅咒,gem instal curses. 如果上一步错误,这将失败;
  • 完成:D

此方法不适用于其他 gem,例如 ffi-ncurses。提示:大部分 curses 功能来自Window 类,默认情况下带有 curses。

于 2015-11-23T19:49:27.423 回答
0

截至 2020 年 2 月(可能更早),您可以使用以下命令安装 ncurses 库

gem install curses

它没有任何问题,至少在 Ruby 2.6.5 上

于 2020-02-27T11:53:47.510 回答
0

安装 gem 时需要 curses lib;所以首先你需要用你的 msys2 安装 NCurses

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

制作

检查

进行安装

然后如链接中所述: https ://github.com/ruby/curses/issues/13

使用 --platform=ruby ,--with-curses-include ,--with-curses-lib 标志与 gem install

于 2018-01-27T16:33:05.030 回答
-1

ruby ncurses gem 需要在机器上安装 ncurses。据我所知,ncurses 尚未移植到 Windows。所以我不认为你会让这个工作。

可能还有其他方法可以找出 Windows 上的屏幕宽度,但我无法帮助您。

于 2012-10-17T22:22:55.670 回答
-1

我已经从 sourceforge 成功下载了ncurses 0.9.1 二进制文件,所以该库仍然可用。

然后我尝试使用原生 Ruby 和 IronRuby 1.1.3

  1. 将两个文件(ncurses.so ncurses.rb)放在

    C:\Ruby\Ruby193\lib\ruby\1.9.1

    原生 Ruby 出错

    指定的模块无法找到。- C:/Ruby/Ruby193/lib/ruby/1.9.1/ncurses.so(加载错误)

  2. 将它们放在这里(对于 IronRuby) C:\Program Files (x86)\IronRuby 1.1\Lib\ruby\1.9.1

    该模块应包含程序集清单。(来自 HRESULT 的异常:0x80131018)

于 2017-01-15T20:52:14.863 回答