Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails Can';t在Cygwin上安装libv8 gem_Ruby On Rails_Ruby_Gem_Cygwin_V8 - Fatal编程技术网

Ruby on rails Can';t在Cygwin上安装libv8 gem

Ruby on rails Can';t在Cygwin上安装libv8 gem,ruby-on-rails,ruby,gem,cygwin,v8,Ruby On Rails,Ruby,Gem,Cygwin,V8,如何安装libv8gem?我无法安装libv8 gem。当我尝试时,我得到以下错误 $ gem install libv8 Building native extensions. This could take a while... ERROR: Error installing libv8: ERROR: Failed to build gem native extension. /usr/bin/ruby.exe extconf.rb creating

如何安装libv8gem?我无法安装libv8 gem。当我尝试时,我得到以下错误

$ gem install libv8
Building native extensions.  This could take a while...
ERROR:  Error installing libv8:
        ERROR: Failed to build gem native extension.

        /usr/bin/ruby.exe extconf.rb
creating Makefile
Using compiler: /usr/bin/g++
which: no gmake in (/usr/local/bin:/usr/bin:/cygdrive/c/WINDOWS/system32:/cygdrive/c/WINDOWS:/cygdrive/c/WINDOWS/System32/Wbem:/cygdrive/c/WINDOWS/system32/WindowsPowerShell/v1.0:/cygdrive/c/Program Files/Microsoft SQL Server/100/Tools/Binn/VSShell/Common7/IDE:/cygdrive/c/Program Files/Microsoft SQL Server/100/Tools/Binn:/cygdrive/c/Program Files/Microsoft SQL Server/100/DTS/Binn:/cygdrive/c/Program Files/Heroku/bin:/cygdrive/c/Program Files/ruby-1.9.2/bin:/cygdrive/c/Program Files/git/bin:/cygdrive/c/Program Files/git/cmd:/cygdrive/c/Program Files/DTN/IQFeed:/cygdrive/c/Program Files/OpenVPN/bin:/cygdrive/c/Program Files/Java/apache-ant-1.8.3/bin:/usr/lib/lapack:/cygdrive/c/Program Files/Notepad++:.:/cygdrive/c/Program Files/Java/android-sdk/platform-tools/:/cygdrive/c/Program Files/Java/android-sdk/tools/:/cygdrive/c/Program Files/Java/jdk1.7.0_03/bin)
In file included from ../src/conversions-inl.h:42:0,
                 from ../src/conversions.cc:32:
../src/platform.h:77:12: error: new declaration ‘int random()’
/usr/include/cygwin/stdlib.h:29:6: error: ambiguates old declaration ‘long int random()’
make[1]: *** [/usr/lib/ruby/gems/1.9.1/gems/libv8-3.11.8.13/vendor/v8/out/ia32.release/obj.target/preparser_lib/src/conversions.o] Error 1
我试着用

$ gem install libv8 --pre
Fetching: libv8-3.5.10.beta1.gem (100%)
Building native extensions.  This could take a while...
Successfully installed libv8-3.5.10.beta1
1 gem installed
但是
bundle安装
仍然无法运行。它仍然试图安装版本3.11.8.13

Installing libv8 (3.11.8.13) with native extensions
Gem::Installer::ExtensionBuildError: ERROR: Failed to build gem native extension.
libv8 gem不在我的gem文件中。我不知道如何找到它的用途,但在搜索时,我看到rubyracer使用libv8,我确实有

group :assets do
  gem 'therubyracer', :platform => :ruby
我甚至试图编辑
/usr/lib/ruby/gems/1.9.1/gems/libv8-3.11.8.13/src/platform.h
文件并注释掉第77行:

//int random()

但当我运行
gem install libv8
时,它重写了我的更改,仍然给出了一个错误。我在
gem install libv8--help中看到了一个技巧,所以我再次编辑了该文件并注释掉了第77行,然后尝试了一下

cd /usr/lib/ruby/gems/1.9.1/gems/libv8-3.11.8.13/vendor/v8
make
但是,这只会产生不同的错误:

In file included from /usr/lib/gcc/i686-pc-cygwin/4.5.3/../../../../include/w32api/winsock2.h:56:0,
                 from ../src/win32-headers.h:77,
                 from ../src/platform-win32.cc:31:
/usr/lib/gcc/i686-pc-cygwin/4.5.3/../../../../include/w32api/psdk_inc/_fd_types.h:100:2: warning: #warning "fd_set and associated macros have been defined in sys/types.      This can cause runtime problems with W32 sockets"
In file included from ../src/win32-headers.h:80:0,
                 from ../src/platform-win32.cc:31:
/usr/lib/gcc/i686-pc-cygwin/4.5.3/../../../../include/w32api/wspiapi.h:26:41: error: expected ‘>’ before numeric constant
../src/platform-win32.cc: In function ‘int random()’:
../src/platform-win32.cc:122:12: error: new declaration ‘int random()’
/usr/include/cygwin/stdlib.h:29:6: error: ambiguates old declaration ‘long int random()’

既然你的问题提到了Cygwin,我假设你是Windows用户。目前,没有办法在Windows中安装Rubyracer或libv8,正如其维护者所说:。不幸的是,Windows不是Rails land


如果确实需要libv8,可以尝试使用nodejs。它带有一个二进制文件,适用于所有平台。

我刚刚在我的Win7开发机器上遇到了同样的问题。它看起来像是安装了
gem'therubyracer'
并将其添加到
gem文件
中,从而解决了问题

之前:

$ rails generate
c:/Ruby193/lib/ruby/gems/1.9.1/gems/execjs-1.4.0/lib/execjs/runtimes.rb:51:in `autodetect': Could not find a JavaScript runtime. See https://github.com/sstephenson/execjs for a list of available runtimes. (ExecJS::RuntimeUnavailable)
    from c:/Ruby193/lib/ruby/gems/1.9.1/gems/execjs-1.4.0/lib/execjs.rb:5:in `<module:ExecJS>'
(...)

我觉得对于那些只想消除错误的人来说,应该有一个答案,这样他们就可以继续学习rails了

似乎您不需要特别使用“therubyracer”——您可以选择其他javascript引擎


具体来说,打开文件
Gemfile
,并将“therubyracer”更改为“therubyrhino”。(如果rhino不工作,有更多的选项和建议:

它在RailsInstaller.org for Windows中工作。我可以运行
bundle install
rails console
。但是,该gem也没有安装在该环境中
gem list therubyracer
。那么如何停止
bundle install
尝试安装它呢?顺便说一句,我能够安装libv8 3.11.8.0。我只是不断减少#,直到它起作用:
gem install libv8-v 3.11.8
。你可以把这个gem放在一个组中,比如说
example
,然后运行
bundle install——没有示例
。bundle会忽略它!没有资产的情况下,
bundle install!那么我该怎么办呢查找哪个项目正在使用therubyracer?这是否正确?
find.-name\*.rb | xargs grep therubyracer
I很确定,它不会工作:D(我在使用Windows,做了你做过的减少libv8版本的事情)。问题是RubyRacer仅从版本3.11.8.5及更高版本开始包含libv8。您可以从此处进行检查:。这恐怕是一个死锁。很酷。还有一个Javascript解释器,我在Windows版本中使用它(不是Cygwin)对于Ruby,您只需将nodejs安装到cygwin中,并使用命令
gem install libv8-v'version\u(如果需要)---with-system-v8
$ rails generate
    SECURITY WARNING: No secret option provided to Rack::Session::Cookie.
    This poses a security threat. It is strongly recommended that you
    provide a secret to prevent exploits that may be possible from crafted
    cookies. This will not be supported in future versions of Rack, and
    future versions will even invalidate your existing user cookies.

    Called from: c:/Ruby193/lib/ruby/gems/1.9.1/gems/actionpack-3.2.8/lib/action_dispatch/middleware/session/abstract_store.rb:28:in `initialize'.

Usage: rails generate GENERATOR [args] [options]
(...)