新的Rails项目:'捆绑安装'无法在gemfile中安装rails

时间:2014-03-17 17:19:05

标签: ruby-on-rails ruby

我安装了一个新的rails项目:

$ rails new site

然后执行并到达:

bundle install

但是当我看来尝试安装依赖

时,我得到了这个错误
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 libkern/OSAtomic.h... yes
creating Makefile

make "DESTDIR=" clean

make "DESTDIR="
compiling atomic_reference.c
atomic_reference.c:57:59: warning: incompatible pointer types passing 'void **' to      parameter of type 'volatile int64_t *' (aka 'volatile long long *') [-Wincompatible-pointer-types]
if (OSAtomicCompareAndSwap64(expect_value, new_value, &DATA_PTR(self))) {
                                                      ^~~~~~~~~~~~~~~
/usr/include/libkern/OSAtomic.h:507:93: note: passing argument to parameter '__theValue'   here
bool    OSAtomicCompareAndSwap64( int64_t __oldValue, int64_t __newValue, volatile int64_t   *__theValue );
                                                                                        ^
1 warning generated.
linking shared-object atomic_reference.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: *** [atomic_reference.bundle] Error 1

make failed, exit code 2

Gem files will remain installed in /Users/mikeguppy/.bundler/tmp/26234/gems/atomic-1.1.16 for inspection.
Results logged to /Users/mikeguppy/.bundler/tmp/26234/extensions/universal-darwin-13/2.0.0/atomic-1.1.16/gem_make.out
An error occurred while installing atomic (1.1.16), and Bundler cannot continue.
Make sure that `gem install atomic -v '1.1.16'` succeeds before bundling.

然后我尝试使用以下方法独立安装原子:

gem install atomic

再次没有运气。

我在Mac OS 10.9.2上运行Ruby 2.0


非常感谢任何帮助!

9 个答案:

答案 0 :(得分:4)

这对我有用: sudo ARCHFLAGS=-Wno-error=unused-command-line-argument-hard-error-in-future gem install rails

答案 1 :(得分:2)

我遇到了同样的问题,对我来说有用的是安装RVM,安装Ruby 2.1.1(从小牛队打包的2.0升级版)......

rvm get stable
rvm reinstall 2.1.1

(使用最新版本,对我来说是2.1.1)

...然后运行rvm use 2.1.1以确保我已切换到使用该版本。

之后,我的gem安装顺利进行。

答案 2 :(得分:1)

这似乎是与Mavericks(2.0.0p247)打包的系统Ruby相关的问题,请参阅此处的错误详情:https://bugs.ruby-lang.org/issues/9624

我通过安装rbenv(或RVM,如果您愿意)然后安装Ruby 2.1.1以避免篡改系统Ruby版本来解决这个问题。在安装原子宝石时你仍会收到警告,但它至少不会失败。

rbenv在这里:https://github.com/sstephenson/rbenv

答案 3 :(得分:1)

安装导轨时遇到同样的问题。 我的ruby版本是1.9.3 p448,OS是OS X Mavericks(10.9.2)。

这是我尝试过的并且有效。

$ gem install rails --version 4.0.4

[参考] http://ruby.railstutorial.org/chapters/beginning#top

答案 4 :(得分:0)

首先卸载任何现有的atomic gem

gem uninstall atomic

然后使用

重新安装
gem install atomic -v '1.1.16'

此后尝试创建新的rails应用程序

rails new projectname

我不知道您当前使用的是哪个版本的Rails。有时,将Rails重新安装到稳定版本似乎有所帮助。如果上述步骤无法解决问题,您可能也想尝试一下。

答案 5 :(得分:0)

我最近遇到了类似的问题,原因是Xcode自动更新为5.1。此版本包含gcc的错误/问题。

线索在这里:

-Wunused-command-line-argument-hard-error-in-future]
clang: note: this will be a hard error (cannot be downgraded to a warning)

可悲的是,我不得不降级Xcode - 可用here

答案 6 :(得分:0)

通过 rvm 安装了原子1.1.16的Maverick上的Ruby 2.1.5没有问题。

答案 7 :(得分:0)

如果您使用错误版本的ruby捆绑捆绑包,则会发生此错误。检查Gemfile以查找ruby版本,然后检查protected void ddlNumber_SelectedIndexChanged(object sender, EventArgs e) { ddlText.Enabled = ddlNumber.SelectedValue == ""; ddlNumber.Enabled = ddlText.SelectedValue == ""; } 的输出。如果版本不匹配,请使用rvm确保使用相同版本的ruby,然后重新捆绑。

我收到了这个确切的错误并通过更改我正在使用的ruby版本来修复它。

答案 8 :(得分:0)

这些都不适合我。我提出了自己的解决方案。问题在于json版本小于2.0。当我尝试升级json时,我收到有关rails和sdoc的依赖性问题的错误消息。这就是我最终做的事情:

  1. 打开您的Gemfile。
  2. 注释掉sdoc和rails的行。
  3. 添加此行: gem 'json', '> 2'
  4. 运行捆绑安装。
  5. 为我工作。