Исправить внешнюю зависимость от рубинового камня - PullRequest
1 голос
/ 28 апреля 2010

Я сейчас пытаюсь установить gem nfoiled , который предоставляет интерфейс ruby ​​для 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?

Ответы [ 2 ]

3 голосов
/ 28 апреля 2010

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

gem install elliottcable-nfoiled --ignore-dependencies
0 голосов
/ 28 апреля 2010

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

...