Ruby on rails 在RubyOnRails上创建第一个应用程序时出错

Ruby on rails 在RubyOnRails上创建第一个应用程序时出错,ruby-on-rails,installation,osx-mavericks,Ruby On Rails,Installation,Osx Mavericks,我遵循《使用Rails进行敏捷Web开发》一书中的说明。我已经将rails、ruby、sqlite3下载到我的MacBookPro上,它运行的是Mavericks 我现在第一次尝试使用命令创建一个新的应用程序 rails new demo 但是收到以下错误 Gem::Ext::BuildError: ERROR: Failed to build gem native extension. /System/Library/Frameworks/Ruby.framework/Versio

我遵循《使用Rails进行敏捷Web开发》一书中的说明。我已经将rails、ruby、sqlite3下载到我的MacBookPro上,它运行的是Mavericks

我现在第一次尝试使用命令创建一个新的应用程序

rails new demo
但是收到以下错误

Gem::Ext::BuildError: ERROR: Failed to build gem native extension.

    /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/bin/ruby extconf.rb 
checking for sqlite3.h... yes
checking for sqlite3_libversion_number() in -lsqlite3... yes
checking for rb_proc_arity()... yes
checking for rb_integer_pack()... no
checking for sqlite3_initialize()... yes
checking for sqlite3_backup_init()... yes
checking for sqlite3_column_database_name()... no
checking for sqlite3_enable_load_extension()... no
checking for sqlite3_load_extension()... no
checking for sqlite3_open_v2()... yes
checking for sqlite3_prepare_v2()... yes
checking for sqlite3_int64 in sqlite3.h... yes
checking for sqlite3_uint64 in sqlite3.h... yes
creating Makefile

make "DESTDIR=" clean

make "DESTDIR="
compiling backup.c
compiling database.c
database.c:300:1: warning: control may reach end of non-void function [-Wreturn-type]
}
^
1 warning generated.
compiling exception.c
compiling sqlite3.c
compiling statement.c
linking shared-object sqlite3/sqlite3_native.bundle
clang: error: unknown argument: '-multiply_definedsuppress' [-Wunused-command-line-argument-hard-error-in-future]
clang: note: this will be a hard error (cannot be downgraded to a warning) in the future
make: *** [sqlite3_native.bundle] Error 1

make failed, exit code 2

Gem files will remain installed in /var/folders/pk/2wfx1lm90gzb2mnzsgkntf480000gp/T/bundler20140702-7691-10in5mk/sqlite3-1.3.9/gems/sqlite3-1.3.9 for inspection.
Results logged to /var/folders/pk/2wfx1lm90gzb2mnzsgkntf480000gp/T/bundler20140702-7691-10in5mk/sqlite3-1.3.9/extensions/universal-darwin-13/2.0.0/sqlite3-1.3.9/gem_make.out
An error occurred while installing sqlite3 (1.3.9), and Bundler cannot continue.
Make sure that `gem install sqlite3 -v '1.3.9'` succeeds before bundling.
         run  bundle exec spring binstub --all
/Library/Ruby/Gems/2.0.0/gems/bundler-1.6.3/lib/bundler/resolver.rb:357:in `resolve': Could not find gem 'uglifier (>= 1.3.0) ruby' in the gems available on this machine. (Bundler::GemNotFound)
    from /Library/Ruby/Gems/2.0.0/gems/bundler-1.6.3/lib/bundler/resolver.rb:164:in `start'
    from /Library/Ruby/Gems/2.0.0/gems/bundler-1.6.3/lib/bundler/resolver.rb:129:in `resolve'
    from /Library/Ruby/Gems/2.0.0/gems/bundler-1.6.3/lib/bundler/definition.rb:203:in `resolve'
    from /Library/Ruby/Gems/2.0.0/gems/bundler-1.6.3/lib/bundler/definition.rb:133:in `specs'
    from /Library/Ruby/Gems/2.0.0/gems/bundler-1.6.3/lib/bundler/definition.rb:178:in `specs_for'
    from /Library/Ruby/Gems/2.0.0/gems/bundler-1.6.3/lib/bundler/definition.rb:167:in `requested_specs'
    from /Library/Ruby/Gems/2.0.0/gems/bundler-1.6.3/lib/bundler/environment.rb:18:in `requested_specs'
    from /Library/Ruby/Gems/2.0.0/gems/bundler-1.6.3/lib/bundler/runtime.rb:13:in `setup'
    from /Library/Ruby/Gems/2.0.0/gems/bundler-1.6.3/lib/bundler.rb:120:in `setup'
    from /Library/Ruby/Gems/2.0.0/gems/bundler-1.6.3/lib/bundler/setup.rb:17:in `<top (required)>'
    from /Library/Ruby/Site/2.0.0/rubygems/core_ext/kernel_require.rb:55:in `require'
    from /Library/Ruby/Site/2.0.0/rubygems/core_ext/kernel_require.rb:55:in `require'
Gem::Ext::BuildError:错误:无法生成Gem本机扩展。
/System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/bin/Ruby extconf.rb
正在检查sqlite3.h。。。对
正在-lsqlite3中检查sqlite3\u libversion\u number()。。。对
正在检查rb_进程()。。。对
正在检查rb_integer_pack()。。。不
正在检查sqlite3_initialize()。。。对
正在检查sqlite3\u backup\u init()。。。对
正在检查sqlite3列数据库名称()。。。不
正在检查sqlite3\u启用\u加载\u扩展()。。。不
正在检查sqlite3\u加载\u扩展()。。。不
正在检查sqlite3\u open\u v2()。。。对
正在检查sqlite3\u prepare\u v2()。。。对
正在检查sqlite3.h中的sqlite3\u int64。。。对
正在检查sqlite3.h中的sqlite3_uint64。。。对
创建Makefile
使“DESTDIR=”干净
使“DESTDIR=”
编译backup.c
编译database.c
database.c:300:1:警告:控件可能到达非无效函数的末尾[-Wreturn type]
}
^
生成1个警告。
编译exception.c
编译sqlite3.c
汇编报表.c
链接共享对象sqlite3/sqlite3_native.bundle
叮当声:错误:未知参数:'-multiply_definedsuppress'[-Wunused命令行参数将来硬错误]
叮当声:注意:这将是一个硬错误(不能降级为警告)在未来
make:**[sqlite3_native.bundle]错误1
make失败,退出代码2
Gem文件将继续安装在/var/folders/pk/2wfx1lm90gzb2mnzsgcntf48000gp/T/bundler20140702-7691-10in5mk/sqlite3-1.3.9/gems/sqlite3-1.3.9中以供检查。
结果记录到/var/folders/pk/2wfx1lm90gzb2mnzsgntf48000gp/T/bundler20140702-7691-10in5mk/sqlite3-1.3.9/extensions/universal-darwin-13/2.0.0/sqlite3-1.3.9/gem_make.out
安装sqlite3(1.3.9)时出错,绑定程序无法继续。
在绑定之前,请确保'gem install sqlite3-v'1.3.9'成功。
运行bundle exec spring binstub--所有
/Library/Ruby/Gems/2.0.0/Gems/bundler-1.6.3/lib/bundler/resolver.rb:357:“解析”中:在这台计算机上可用的Gems中找不到gem“uglifier(>=1.3.0)Ruby”。(绑定器::GemNotFound)
from/Library/Ruby/Gems/2.0.0/Gems/bundler-1.6.3/lib/bundler/resolver.rb:164:in'start'
from/Library/Ruby/Gems/2.0.0/Gems/bundler-1.6.3/lib/bundler/resolver.rb:129:in'resolve'
from/Library/Ruby/Gems/2.0.0/Gems/bundler-1.6.3/lib/bundler/definition.rb:203:in'resolve'
from/Library/Ruby/Gems/2.0.0/Gems/bundler-1.6.3/lib/bundler/definition.rb:133:in'specs'
from/Library/Ruby/Gems/2.0.0/Gems/bundler-1.6.3/lib/bundler/definition.rb:178:in'specs_for'
来自/Library/Ruby/Gems/2.0.0/Gems/bundler-1.6.3/lib/bundler/definition.rb:167:“请求的规格”中
来自/Library/Ruby/Gems/2.0.0/Gems/bundler-1.6.3/lib/bundler/environment.rb:18:in“请求的规格”
from/Library/Ruby/Gems/2.0.0/Gems/bundler-1.6.3/lib/bundler/runtime.rb:13:in'setup'
from/Library/Ruby/Gems/2.0.0/Gems/bundler-1.6.3/lib/bundler.rb:120:in'setup'
from/Library/Ruby/Gems/2.0.0/Gems/bundler-1.6.3/lib/bundler/setup.rb:17:in`'
from/Library/Ruby/Site/2.0.0/rubygems/core\u ext/kernel\u require.rb:55:in'require'
from/Library/Ruby/Site/2.0.0/rubygems/core\u ext/kernel\u require.rb:55:in'require'

我研究过这个话题,在不同的论坛上找到了不同的建议,但每次我都会得到同样的错误。非常感谢您的建议……

看来您的sqlite3 gem安装失败了。下面是我用来在mac中设置新ruby环境的说明

  • 安装自制软件。使用自制软件,您只需使用如下命令即可安装sqlite3或mysql brew安装sqlite3

  • 安装rvm

  • 使用rvm安装ruby和rails


  • 尼克森,谢谢你。我想我已经安装了自制软件,因为命令brew--version返回0.9.5。另外,我想我已经安装了sqlite3,因为命令sqlite3--version返回3.8.4.3。我想我安装了ruby,因为命令ruby--version返回ruby 2.0.0p247。