1

我目前正在尝试安装 gem nfoiled,它为 ncurses 提供了一个 ruby​​ 接口。我通过使用READMEgem install elliottcable-nfoiled中的建议来做到这一点。由于 echoe-gem 的问题,从 github 存储库手动下载然后安装它不起作用,因此我必须使用正常方式。rake install

不幸的是,它取决于ncurses-0.9.1仅与 ruby​​ 1.8 兼容的 gem,因此我也无法安装 nfoiled(因为它总是尝试先编译 ncurses-0.9.1):

novavortex:/usr/src# gem install elliottcable-nfoiled
构建原生扩展。这可能需要一段时间...
...
form_wrap.c:在函数“rbncurs_m_new_form”中:
form_wrap.c:395:错误:“struct RArray”没有名为“len”的成员
form_wrap.c:在函数“rbncurs_c_set_field_type”中:
form_wrap.c:619:错误:“struct RArray”没有名为“len”的成员
form_wrap.c:在函数“rbncurs_c_set_form_fields”中:
form_wrap.c:778:错误:“struct RArray”没有名为“len”的成员
form_wrap.c:在函数“make_arg”中:
form_wrap.c:1126:错误:“struct RArray”没有名为“len”的成员
制作:*** [form_wrap.o] 错误 1


Gem 文件将继续安装在 /usr/local/lib/ruby/gems/1.9.1/gems/ncurses-0.9.1 以供检查。
结果记录到 /usr/local/lib/ruby/gems/1.9.1/gems/ncurses-0.9.1/gem_make.out
novavortex:/usr/src#

我设法解决了 ncurses-0.9.1 中的问题(通过将 RARRAY(x)->len 替换为 RARRAY_LEN(x))并安装它,但 nfoiled 仍然总是尝试从新下载的源重新编译它。

如何在不先重新编译 ncurses 的情况下安装 nfoiled?

4

2 回答 2

3

ncurses你说你已经手动修复了。然后,您可以使用--ignore-dependenciesswitch 安装另一个没有依赖关系的 gem:

gem install elliottcable-nfoiled --ignore-dependencies
于 2010-04-28T15:03:49.783 回答
0

我能够在 ruby​​ 1.9.2-head 下安装 ncurses-ruby 没有任何问题,我无法安装 nfoiled gem,因为它需要特定版本的 echoe。


$ gem install --source http://gems.github.com elliottcable-nfoiled
ERROR:  Error installing elliottcable-nfoiled:
        elliottcable-nfoiled requires ncurses (>= 0, runtime)

$ gem install ncurses
Building native extensions.  This could take a while...
Successfully installed ncurses-0.9.1
1 gem installed
Installing ri documentation for ncurses-0.9.1...
Installing RDoc documentation for ncurses-0.9.1...

$ gem install --source http://gems.github.com elliottcable-nfoiled
ERROR:  Error installing elliottcable-nfoiled:
        elliottcable-nfoiled requires echoe (>= 0, = 3.0.2, runtime)

你确定你有正确的 ncurses 开发头文件以便构建 ruby​​ 绑定吗?

于 2010-04-28T14:22:17.087 回答