我目前正在尝试安装 gem nfoiled ,它为 ncurses 提供了一个 ruby 接口(interface)。
我按照 README 中的建议使用 gem install elliottcable-nfoiled
来完成此操作。由于 echoe-gem 的问题,从 github 存储库手动下载然后使用 rake install
安装它不起作用,因此我必须使用正常方式。
不幸的是,它依赖于仅与 ruby 1.8 兼容的 gem ncurses-0.9.1
,因此我也无法安装 nfoiled(因为它总是尝试编译 ncurses-0.9.1第一):
novavortex:/usr/src# gem install elliottcable-nfoiled Building native extensions. This could take a while... ... form_wrap.c: In function `rbncurs_m_new_form': form_wrap.c:395: error: `struct RArray' has no member named `len' form_wrap.c: In function `rbncurs_c_set_field_type': form_wrap.c:619: error: `struct RArray' has no member named `len' form_wrap.c: In function `rbncurs_c_set_form_fields': form_wrap.c:778: error: `struct RArray' has no member named `len' form_wrap.c: In function `make_arg': form_wrap.c:1126: error: `struct RArray' has no member named `len' make: *** [form_wrap.o] Error 1 Gem files will remain installed in /usr/local/lib/ruby/gems/1.9.1/gems/ncurses-0.9.1 for inspection. Results logged to /usr/local/lib/ruby/gems/1.9.1/gems/ncurses-0.9.1/gem_make.out novavortex:/usr/src#
我设法解决了 ncurses-0.9.1 中的问题(通过用 RARRAY_LEN(x) 替换 RARRAY(x)->len)并安装它,但 nfoiled 仍然总是尝试从新下载的源重新编译它。
如何在不先重新编译 ncurses 的情况下安装 nfoiled?
最佳答案
您说您已经手动修复了 ncurses
。然后,您可以使用 --ignore-dependencies
开关安装另一个没有依赖项的 gem:
gem install elliottcable-nfoiled --ignore-dependencies
关于c - 修复 ruby gem 的外部依赖,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2729865/