c - 修复 ruby​​ gem 的外部依赖

标签 c ruby dependencies rubygems ruby-1.9

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

相关文章:

c - 输入大于 127 的数字时打印出乱码

c - 更好的链表编程实践

ruby - 从 XML 转换为 REST 客户端以进行 POST 请求

Ruby - 检查是否为空后无法写入文件

javascript - RiTa 工具包的导入问题

c - 扫描数组并将其分配到 C 中的其他位置

C:错误端口上的套接字绑定(bind)

ruby-on-rails - Rails - 父类(super class)不匹配

c++ - 使用指针隐藏实现(Pimpl 惯用语)

java - 如何使用 Gradle 引入所有依赖项 jar?