gpt4 book ai didi

ruby-on-rails - rails : how to use options correctly for bundle install

转载 作者:太空宇宙 更新时间:2023-11-03 18:19:13 27 4
gpt4 key购买 nike

我只是尝试在运行 rails 3.2.5 (ruby 1.8.7) 的服务器上创建一个新的 rails 应用程序,使用 mysql 后端:

rails new myapp -d mysql

目前一切顺利。但是,如果我尝试使用 rake db:create 创建数据库,我会得到:

Could not find gem 'therubyracer (~> 0.12.0) ruby' in the gems available on this machine.
Run `bundle install` to install missing gems.

如果我按照推荐的方式操作(运行 bundle install),我会得到一个将要使用的 gem 列表(并且似乎已经安装了),然后出现另一个错误:

...
Using ref (1.0.5)
Using sass (3.2.13)
Using sass-rails (3.2.6)
Installing therubyracer (0.12.0) with native extensions
Gem::Installer::ExtensionBuildError: ERROR: Failed to build gem native extension.

/usr/bin/ruby18 extconf.rb
checking for main() in -lpthread... yes
checking for v8.h... no
*** extconf.rb failed ***

所以对我来说,这表明 rake 在错误的位置寻找 v8。错误发布还就如何使用配置选项解决此问题提出了建议:

You may need configuration options.

Provided configuration options:
--with-opt-dir
--without-opt-dir
--with-opt-include
--without-opt-include=${opt-dir}/include
--with-opt-lib
--without-opt-lib=${opt-dir}/lib
--with-make-prog
--without-make-prog
--srcdir=.
--curdir
--ruby=/usr/bin/ruby18
--with-pthreadlib
--without-pthreadlib
--enable-debug
--disable-debug
--with-v8-dir
--without-v8-dir
--with-v8-include
--without-v8-include=${v8-dir}/include
--with-v8-lib
--without-v8-lib=${v8-dir}/lib
/kunden/378731_1150/.gem/ruby/1.8/gems/libv8-3.16.14.3/ext/libv8/location.rb:50:in `configure': You have chosen to use the version of V8 found on your system (Libv8::Location::System::NotFoundError) and *not* the one that is bundle with the libv8 rubygem. However, it could not be located. please make sure you have a version of v8 that is compatible with 3.16.14.3 installed. You may need to special --with-v8-dir options if it is in a non-standard location

看起来我必须像 bundle config --some-option 这样配置 bundle 过程,但哪个选项可以解决问题?我已经尝试了所有与 v8 相关的选项,但都没有用。以 --with-v8-xxx 开头的选项似乎不允许设置本地安装的 v8 lib 的路径(gem list 给我 Using libv8 (3.16.14.3) 并且我可以在本地 .gem 目录中看到该文件夹​​)。 --without-v8-xxx 也不可用,因为我不知道系统范围的 v8 库的位置(没有搜索服务器的权限)。

我该如何解决我的问题?

谢谢


好的,看来我已经能够继续进行了。调用像 RUBYOPT=-rrubygems gem install libv8 这样的安装可以说服 extconf.rb 在我的本地 gem 中而不是在系统位置中查找 v8.h。但是,我还没有:

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

/usr/bin/ruby18 extconf.rb
checking for main() in -lpthread... yes
*** extconf.rb failed ***

...及以后:

/kunden/378731_1150/.gem/ruby/1.8/gems/libv8-3.16.14.3/ext/libv8/location.rb:15:in `initialize': No such file or directory - /kunden/378731_1150/.gem/ruby/1.8/gems/libv8-3.16.14.3/ext/libv8/.location.yml (Errno::ENOENT)
from /kunden/378731_1150/.gem/ruby/1.8/gems/libv8-3.16.14.3/ext/libv8/location.rb:15:in `open'
from /kunden/378731_1150/.gem/ruby/1.8/gems/libv8-3.16.14.3/ext/libv8/location.rb:15:in `load!'
from /kunden/378731_1150/.gem/ruby/1.8/gems/libv8-3.16.14.3/lib/libv8.rb:6:in `configure_makefile'
from extconf.rb:32

错误发布还为我提供了几个我可以使用的选项,但我完全不明白是什么导致了错误。

有什么想法吗?

谢谢

最佳答案

您可以使用 bundle config 将配置标志传递给您的 gem,如下所示

bundle config build.libv8 --without-v8-lib=/path/to/lib

通过运行 bundle help config 查看 bundle config 手册页以获取更多信息

更新:从您收到的错误消息来看,似乎是在寻找系统的 v8 时正在构建 libv8 gem(不确定为什么这是默认设置).幸运的是,gem 与 v8 源代码 bundle 在一起,但您需要明确告诉它使用它,就像这样

bundle config build.libv8 --without-system-v8

关于ruby-on-rails - rails : how to use options correctly for bundle install,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21141657/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com