我目前正在尝试安装 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?