【问题标题】:Rails failing when attempting to install from gem 1.9.2尝试从 gem 1.9.2 安装时 Rails 失败
【发布时间】:2012-11-08 22:37:07
【问题描述】:

我正在尝试在我今天刚刚安装的 Lubuntu 机器上安装 RoR,我已经安装了所有 rvm 要求安装的 Ruby。当我去安装 rails 时,我不断收到此错误。

运行命令sudo gem install rails -V 看起来它正在尝试为 ruby​​ 1.9.1 提取源代码,但我有 1.9.2,然后它失败了,无法加载此类文件 --mkmf (LoadError)。

任何帮助将不胜感激,这是我对 Ruby 的第一次冒险,所以这是我的第一次设置。问任何问题,我会回答。

【问题讨论】:

  • 我安装了 rvm 要求中安装 ruby​​ 所需的所有东西,所以我假设它已在其中列出。
  • 你不应该像sudo一样运行gem install,只要运行gem install rails,或者如果你从root安装了rvm,就使用rvmsudo
  • 在输入type rvm | head -1 时也应该输出rvm is a function

标签: ruby-on-rails ruby gem rvm ubuntu-12.04


【解决方案1】:

首先,您需要一些 RVM 预安装,打开终端并输入:

$> sudo apt-get install curl git ruby1.8

然后下载并安装 RVM 本身:

$> curl -L get.rvm.io | bash -s stable

安装完成后,加载RVM:

$> source ~/.rvm/scripts/rvm

要检查 RVM 是否作为函数安装,请键入:

$> type rvm | head -1

(it should output "rvm is a function")

为了工作,RVM 需要安装一些它自己的依赖项。你可以看到它们在使用什么:

$> rvm requirements

对于 Ruby / Ruby HEAD(MRI、Rubinius 和 REE),安装以下内容:

$> sudo apt-get install build-essential openssl libreadline6 libreadline6-dev curl git-core zlib1g zlib1g-dev libssl-dev libyaml-dev libsqlite3-dev sqlite3 libxml2-dev libxslt-dev autoconf libc6-dev ncurses-dev automake libtool bison subversion pkg-config

一旦你使用了 RVM,安装 Ruby 就很容易了:

$> rvm install 1.9.3

在较新版本的 Rails 中,您还需要一个 Javascript 运行时,所以:

$> sudo apt-add-repository ppa:chris-lea/node.js
$> sudo apt-get update
$> sudo apt-get install nodejs

我们可以继续使用 RVM 安装 gems:

$> rvm rubygems current

一切就绪后,就该安装 Rails了:

$> gem install rails

附言

安装后和故障排除。

当我们禁用 GNOME 终端的“Run command as login shell”时,rvm 无法作为函数加载,所以输入:

$> type rvm | head -1

输出类似“rvm is /home/mercurial/.rvm/bin/rvm”的内容。

为了解决这个问题,编辑 ~/.bashrc 并在文件末尾添加以下行:

[[ -s "$HOME/.rvm/scripts/rvm" ]] && . "$HOME/.rvm/scripts/rvm" # This loads RVM into a shell session.

【讨论】:

  • fan-f*ck!ng-tastic!谢谢,这个问题困扰了好久!!!开始写一些 Ruby 代码感觉很好!
【解决方案2】:

不要使用sudo 来安装您的rails gem,因为这会切换到另一个无权访问您的RVM 安装的用户。只需使用gem install rails

我仍然建议卸载系统 Ruby。

【讨论】:

  • 嘿 Ryan,我从 RVM 安装了 ruby​​,而不是从源代码。我实际上是按照您的教程进行操作的。
  • 在尝试安装 Rails 之前,您确实切换到了 1.9.2 (ala rvm 1.9.2),对吧?
  • 完全更新了我的答案。很抱歉错过了您sudo'd 的重要部分。请只使用gem install,而不是sudo gem install。我认为我的导游确实也说要这样做..
【解决方案3】:

首先:您似乎根本没有使用 rvm 安装它。使用 rvm 时,它应该安装在您的家中或 /usr/share 中。在 /usr/lib 上的这个安装是关于 ruby​​ 的正常安装。

要在系统上安装它而不是 rvm,你应该安装 ruby​​ 包的 dev 版本,比如

apt-get install ruby1.9-dev

但是,如果您想使用 rvm 安装它,我认为您应该使用 rvm 安装它

rvm install 1.9.3.

如果不是你的情况,请告诉我。

【讨论】:

  • 这是使用 RVM 安装的
  • 好吧,如果你尝试重新安装 rvm。用户 'rvm implode' 将其擦除,然后重新开始。这种错误是知识过程的一部分。 =)
猜你喜欢
  • 2014-09-21
  • 2014-08-18
  • 2011-12-03
  • 2018-12-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-11-07
相关资源
最近更新 更多