web-dev-qa-db-ja.com

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コマンドラインをWindowsにインストールして、「ln -fs」が機能するようにしましたが、それでも問題を解決できません。

43
user2318042

これを試して:

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

上記のコマンドを実行するまで、このエラーは苦痛でした:)

162
Periback

https://github.com/eakmotion/therubyracer_for_windows で試してください。このソリューションを使用して、Windowsマシンで同じ問題を解決しました。

11
Vieenay Siingh

次の手順を実行します:

  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 
4
rony36

システムで「which」コマンドを実際に実行できることを確認してください。 Windowsにネイティブではありません。

Dev_KitまたはRailsInstallerをインストールした場合、「which」をインストールする必要があります。しかし、私もこの問題に直面しています(pythonがインストールされ動作しているバージョンもあります)、DevKit...の下のwhichコマンド(およびRailsInstallerの下の...)は実際には機能していません。

同等のウィンドウは「where」です。したがって、「WHERE which」を実行して、システムで「which」コマンドがあるかどうか/どこにあるかを確認する必要があります。

これは「テルビレーサー」を機能させたり、libv8の問題を解決したりしませんが、それはパズルの一部です。

(私はmsysGitの人々に問題を投稿して、非実行の 'which'コマンドについて何を言っているかを確認しました。)

2
aenw

私はこれを間違って読んでいる可能性がありますが、問題は次の行だと思います:

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

実際にpythonのコマンドがpythonである場合、python2を探しています。

おそらく、pythonpython2にエイリアスしてみてください。

0
Rots

これらは、Windowsでtherubyracerを動作させるために必要な次の手順です。

1)インストールPython 2.7

2)ここに行きます https://github.com/eakmotion/therubyracer_for_windows そして指示に従います

3)Gemfile&Run Bundleインストールでtherubyracer gemをコメントする

#gem 'therubyracer'

4)Gemfile&Run Bundleインストールでgem therubyracerのコメントを外します

gem 'therubyracer'
0
WiredIn

このエラーは、libv8-3.11.8.17\ext\libv8\builder.rbスクリプトに関するものです。行60では、次のコードを確認できます。

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

これは間違ったpython Windowsのコマンド構文です。次のように二重引用符を使用する必要があります。

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

このスクリプトを修正したら、「-l」(ローカルのみを使用)キーでgem installを実行する必要があります。そうしないと、gemはエラーのあるスクリプトを再度ダウンロードします。

0
badbob

行う: gem install rmagick -v '2.13.2'

してから:gem install libv8 -v 3.11.8.17 -- --with-system-v8

0
abcd_win