Ruby в Windows: неинициализированная константа Process::Functions::FFI (NameError)
Я запускаю ruby на windows, установив 1.9.3 через установщик ruby. Я установил chef
рубиновый камень, но я не могу использовать chef-client
или же knife
из командной строки.
Вот сокращенный вывод из командной строки. Что не так?
C:\>chef-client
C:/ruby193/lib/ruby/gems/1.9.1/gems/windows-api-0.4.0/lib/windows/api.rb:4: Use RbConfig instead of obsolete and deprecated Config.
C:/ruby193/lib/ruby/gems/1.9.1/gems/mixlib-shellout-1.2.0/lib/mixlib/shellout/windows/core_ext.rb:31:in `<module:Functions>':
uninitialized constant Process::Functions::FFI (NameError)
from C:/ruby193/lib/ruby/gems/1.9.1/gems/mixlib-shellout-1.2.0/lib/mixlib/shellout/windows/core_ext.rb:30:in `<top (required)>'
from C:/ruby193/lib/ruby/site_ruby/1.9.1/rubygems/core_ext/kernel_require.rb:73:in `require'
from C:/ruby193/lib/ruby/site_ruby/1.9.1/rubygems/core_ext/kernel_require.rb:73:in `require'
from C:/ruby193/lib/ruby/gems/1.9.1/gems/mixlib-shellout-1.2.0/lib/mixlib/shellout/windows.rb:26:in `<top (required)>'
from C:/ruby193/lib/ruby/site_ruby/1.9.1/rubygems/core_ext/kernel_require.rb:73:in `require'
from C:/ruby193/lib/ruby/site_ruby/1.9.1/rubygems/core_ext/kernel_require.rb:73:in `require'
from C:/ruby193/lib/ruby/gems/1.9.1/gems/mixlib-shellout-1.2.0/lib/mixlib/shellout.rb:33:in `<class:ShellOut>'
from C:/ruby193/lib/ruby/gems/1.9.1/gems/mixlib-shellout-1.2.0/lib/mixlib/shellout.rb:26:in `<module:Mixlib>'
from C:/ruby193/lib/ruby/gems/1.9.1/gems/mixlib-shellout-1.2.0/lib/mixlib/shellout.rb:24:in `<top (required)>'
Ps номера версий:
C:\>ruby -v
ruby 1.9.3p374 (2013-01-15) [i386-mingw32]
C:\>gem -v
2.1.8
1 ответ
Если вы используете Chef 11.6.2 (последний выпуск), возможно, вы захотите понизиться до 11.6.0. 11.6.2 использует mixlib-shellout, но, к сожалению, только 1.1, и у него очень низкая версия зависимости FFI. Снижение до 11.6.0 должно исправить это на данный момент, и их ветка master теперь использует mixlib-shellout 1.2, так что это должно быть исправлено в ближайшее время....