Исправить внешнюю зависимость рубинового драгоценного камня

В настоящее время я пытаюсь установить гем nfoiled, который предоставляет рубиновый интерфейс для ncurses. Я делаю это с помощью gem install elliottcable-nfoiled, как указано в README. Загрузка его вручную из репозитория github, а затем установка с помощью rake install не работает из-за проблемы с echoe-gem, поэтому я вынужден использовать обычный способ.

К сожалению, это зависит от драгоценного камня ncurses-0.9.1, который совместим только с ruby ​​1.8, и поэтому я также не могу установить 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(x)->len на RARRAY_LEN(x)) и установить его, но nfoiled по-прежнему всегда пытается перекомпилировать его из только что загруженного источника.

Как я могу установить nfoiled без предварительной перекомпиляции ncurses?


person Patrick Glandien    schedule 28.04.2010    source источник


Ответы (2)


Вы сказали, что уже исправили ncurses вручную. Затем вы можете установить другой гем без его зависимостей с помощью переключателя --ignore-dependencies:

gem install elliottcable-nfoiled --ignore-dependencies
person gix    schedule 28.04.2010

Мне удалось без проблем установить ncurses-ruby под ruby ​​1.9.2-head, 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?

person duncan    schedule 28.04.2010
comment
Его ошибки компиляции относятся к структурам в интерпретаторе Ruby, а не в библиотеке ncurses. - person Ken Bloom; 28.04.2010