Ruby on rails 中的捆绑错误

Posted

技术标签:

【中文标题】Ruby on rails 中的捆绑错误【英文标题】:Bundle error in Ruby on rails 【发布时间】:2011-07-05 08:37:35 【问题描述】:

我在一个 ror 项目中运行 bundle,导致以下错误。

我无法理解缺少什么。

[root@kracekumar canvas-lms]# 捆绑 获取 http://rubygems.org/ 的源索引 使用耙子 (0.8.7) 使用抽象 (1.0.0) 安装 activesupport (2.3.11) 使用机架 (1.1.0) 安装动作包 (2.3.11) 安装 actionmailer (2.3.11) 安装 activerecord (2.3.11) 安装活动资源 (2.3.11) 安装 authlogic (2.1.3) 使用构建器 (2.1.2) 使用 mime 类型 (1.16) 安装 xml-simple (1.0.12) 安装 aws-s3 (0.6.2) 使用本机扩展安装 bluecloth (2.0.10) /usr/lib/ruby/site_ruby/1.8/rubygems/installer.rb:481:in `build_extensions':错误:无法构建 gem 原生扩展。 (Gem::Installer::ExtensionBuildError) /usr/bin/ruby extconf.rb mkmf.rb 在 /usr/lib/ruby/ruby.h 找不到 ruby​​ 的头文件 Gem 文件将继续安装在 /usr/lib/ruby/gems/1.8/gems/bluecloth-2.0.10 中以供检查。 结果记录到 /usr/lib/ruby/gems/1.8/gems/bluecloth-2.0.10/ext/gem_make.out 来自 /usr/lib/ruby/site_ruby/1.8/rubygems/installer.rb:446:in `each' 来自 /usr/lib/ruby/site_ruby/1.8/rubygems/installer.rb:446:in `build_extensions' 来自 /usr/lib/ruby/site_ruby/1.8/rubygems/installer.rb:198:in `install' 来自 /usr/lib/ruby/gems/1.8/gems/bundler-1.0.10/lib/bundler/source.rb:96:in `install' 来自 /usr/lib/ruby/gems/1.8/gems/bundler-1.0.10/lib/bundler/installer.rb:55:in `run' 来自 /usr/lib/ruby/gems/1.8/gems/bundler-1.0.10/lib/bundler/spec_set.rb:12:in `each' 来自 /usr/lib/ruby/gems/1.8/gems/bundler-1.0.10/lib/bundler/spec_set.rb:12:in `each' 来自 /usr/lib/ruby/gems/1.8/gems/bundler-1.0.10/lib/bundler/installer.rb:44:in `run' 来自 /usr/lib/ruby/gems/1.8/gems/bundler-1.0.10/lib/bundler/installer.rb:8:in `install' 来自 /usr/lib/ruby/gems/1.8/gems/bundler-1.0.10/lib/bundler/cli.rb:226:in `install' 来自 /usr/lib/ruby/gems/1.8/gems/bundler-1.0.10/lib/bundler/vendor/thor/task.rb:22:in `send' 来自 /usr/lib/ruby/gems/1.8/gems/bundler-1.0.10/lib/bundler/vendor/thor/task.rb:22:in `run' 来自 /usr/lib/ruby/gems/1.8/gems/bundler-1.0.10/lib/bundler/vendor/thor/invocation.rb:118:in `invoke_task' 来自 /usr/lib/ruby/gems/1.8/gems/bundler-1.0.10/lib/bundler/vendor/thor.rb:246:in `dispatch' 来自 /usr/lib/ruby/gems/1.8/gems/bundler-1.0.10/lib/bundler/vendor/thor/base.rb:389:in `start' 来自 /usr/lib/ruby/gems/1.8/gems/bundler-1.0.10/bin/bundle:13 来自 /usr/bin/bundle:19:in `load' 来自 /usr/bin/bundle:19 [root@kracekumar canvas-lms]#

【问题讨论】:

【参考方案1】:

对于 Red Hat 系统,您可以像这样安装先决条件:

sudo yum -y install make gcc ruby-devel

它应该正确安装本地 gem 安装所需的依赖项。

这假设你已经安装了 Gems,如果没有,也安装它:

sudo yum -y install rubygems

(在使用 yum 的 Amazon EC2 实例上测试。)

【讨论】:

为我解决了这个问题! yum -y install make gcc ruby​​-devel【参考方案2】:

对于您的 ubuntu,您需要安装:

ruby 开发者包

sudo apt-get install ruby1.8-dev ruby1.8 ri1.8 rdoc1.8 irb1.8
sudo apt-get install libreadline-ruby1.8 libruby1.8 libopenssl-ruby

【讨论】:

【参考方案3】:

看起来您可能正在使用 Ubuntu。确保为 Ruby 标头安装 ruby-dev 包。

sudo apt-get install ruby-dev

或者,您可以考虑使用 RVM 来处理 Ruby/RubyGems。

【讨论】:

我正在使用 Fedora,所以我做了 yum install ruby​​-dev 并且它正常工作。 . .

以上是关于Ruby on rails 中的捆绑错误的主要内容,如果未能解决你的问题,请参考以下文章

ruby on rails - 问题捆绑安装nokogiri 1.7.2 on ruby on rails 4.x.

Ruby on Rails Eventmachine 段错误

ruby on rails 中的 Coffeescript 编译错误

Ruby on rails 中的资源未找到错误

如何修复错误:Ruby on Rails 中的“Sass::SyntaxError in Posts#index”?

ruby on rails中的Unix命令(ls)或ls-a命令错误[关闭]