2013-05-13 6 views
42

Проблема заключается в следующем.gem install libv8 --version '3.11.8.17' on ruby ​​(windows)

Error installing libv8: 
ERROR: Failed to build gem native extension. 

    D:/Ruby193/bin/ruby.exe extconf.rb 
    creating Makefile 
    The system can not find the specified path 

     D:Ruby193/lib/ruby/gems/1.9.1/gems/libv8-3.11.8.17/ext/libv8/builder.rb:49:in'setup_python!':libv8 requires python 2 to be installed in order to build,but it is currently not available (RuntimeError) 
      from D:Ruby193/lib/ruby/gems/1.9.1/gems/libv8-3.11.8.17/ext/libv8/builder.rb:35:in 'block in build_libv8!' 
      from D:Ruby193/lib/ruby/gems/1.9.1/gems/libv8-3.11.8.17/ext/libv8/builder.rb:34:in 'chdir' 
      from D:Ruby193/lib/ruby/gems/1.9.1/gems/libv8-3.11.8.17/ext/libv8/builder.rb:34:in 'build_libv8!' 
      from D:Ruby193/lib/ruby/gems/1.9.1/gems/libv8-3.11.8.17/ext/libv8/builder.rb:34:in 'install!' 
      from extconf.rb:7: in '<main>' 
I have installed the python27 and add the path. 

python --version 
Python 2.7.4 

Затем я проверяю код следующим образом.

def setup_python! 
     # If python v2 cannot be found in PATH, 
     # create a symbolic link to python2 the current directory and put it 
     # at the head of PATH. That way all commands that inherit this environment 
     # will use ./python -> python2 
     if python_version !~ /^2/ 
     unless system 'which python2 2>&1 > /dev/null' 
      fail "libv8 requires python 2 to be installed in order to build, but it is currently #{python_version}" 
     end 
     `ln -fs #{`which python2`.chomp} python` 
     ENV['PATH'] = "#{File.expand_path '.'}:#{ENV['PATH']}" 
     end 
    end 

Я попытался установить командную строку Linux для окон, так что «пер -fs» должно быть working.But проблема не может быть решена.

+1

привет .. это очень сложно добавить libv8 окно liberey, потому что окно не поддерживает libv8. такая же проблема со мной, поэтому я переключаюсь на linux/Ubuntu. –

+0

Большое спасибо, я перейду на Linux. – user2318042

+3

Это не актуальное решение проблемы, хотя ... @ iscube1 – Geo

ответ

0

я мог читать это неправильно, но я думаю, что проблема эта линия:

unless system 'which python2 2>&1 > /dev/null' 

Он ищет python2, когда на самом деле команда для питона просто python.

Возможно, попробуйте наложение изображений python на номер python2.

+1

Не работает, и я также попытался удалить setup_python! функция alltogether. Основная проблема заключается в том, какая команда python, для которой нет эквивалента в окнах. –

+0

Ruby devkit имеет «который», и, вероятно, вы будете иметь его на своем пути, чтобы построить libv8. Но этот установщик очень разочаровывает установку в Windows и может просто продолжить дальше по какой-то другой причине. – locka

4

Выполните следующие действия:

  1. Получить подходящий Python здесь http://python.org/download/
  2. Установить путь с этой командой SET PATH=<ruby directory>;<python directory> (например SET PATH=C:\Ruby192\bin;C:\Python27)

А теперь установить ваше желание драгоценный камень

gem install libv8 

Получено это решение от here.

Интересно, получаете ли вы эту ошибку для версии. Попробуйте это:

gem install libv8 --version 3.11.8.0 
+0

Установка 3.11.8.0 успешно, но gem install libv8 (с или без --version 3.11 .8.17) не :( – Olivier

157

Попробуйте это:

gem install libv8 -v '3.11.8.17' -- --with-system-v8 

Эта ошибка была боль до тех пор пока я запускаю выше команду :)

+0

Awesome Periback! После нескольких часов работы в googling ... У меня была установлена ​​libv8 с помощью вашей предлагаемой команды. Спасибо! –

+0

Рад, что я мог помочь! Это было также болью для меня, @ Romans8.38- 39. Кстати, вам удалось настроить среду на Windows? – Periback

+1

Да, я настраиваю среду на Windows 7 HP 64bit :) –

2

Будьте уверены, что вы можете запустить команду «which» на вашей системы. Это не является родным для Windows.

«which» должен быть установлен, если вы установили DevKit или RailsInstaller. Тем не менее, я тоже сталкиваюсь с этой проблемой (у меня также есть несколько версий python, установленных и работающих), и только что обнаружил, что моя команда which под DevKit... (и одна из них под RailsInstaller ...) на самом деле не работает.

Окна около эквивалента "where". Поэтому вы должны запустить «WHERE which», чтобы узнать, есть ли у вас команда «which» в вашей системе.

Это не делает работу «therubyracer» или проблемы с libv8 уходят, но это часть головоломки.

(Я опубликовал проблему для пользователей msysGit, чтобы узнать, что они говорят о неисполняющей команде «which».)

0

сделать: gem install rmagick -v '2.13.2'

, а затем сделать: gem install libv8 -v 3.11.8.17 -- --with-system-v8

0

Эта ошибка о libv8-3.11.8.17 \ вн \ libv8 \ builder.rb сценария. В строке 60 мы можем увидеть этот код:

`python -c 'import platform; print(platform.python_version())'`.chomp 

Это неправильная команда питона синтаксис в Windows. Вы должны использовать двойные кавычки, например:

`python -c "import platform; print(platform.python_version())"`.chomp 

После установки этого сценария, вы должны запустить камень установить с «-l» (использовать локальный только) ключ. Если вы этого не сделаете, gem снова загрузит скрипт с ошибкой.

0

Это следующие шаги я должен предпринять, чтобы получить therubyracer работать на окнах:

1) Установить Python 2.7

2) Перейти здесь здесь https://github.com/eakmotion/therubyracer_for_windows и следовать инструкциям

3) комментарий therubyracer камень в Gemfile & Run Bundle установить

#gem 'therubyracer' 

4) раскомментировать гем therubyracer в Gemfile & Run Bundle установить

gem 'therubyracer'