我正在尝试在我今天刚刚安装的 Lubuntu 机器上安装 RoR,我已经安装了所有 rvm 要求安装的 Ruby。当我去安装rails时,我不断收到这个错误。
运行命令sudo gem install rails -V
,它看起来像是在尝试为 ruby 1.9.1 提取源代码,但我有 1.9.2,然后它失败了,无法加载此类文件 --mkmf (LoadError)。
任何帮助将不胜感激,这是我对 Ruby 的第一次冒险,所以这是我的第一次设置。问任何问题,我会回答。
我正在尝试在我今天刚刚安装的 Lubuntu 机器上安装 RoR,我已经安装了所有 rvm 要求安装的 Ruby。当我去安装rails时,我不断收到这个错误。
运行命令sudo gem install rails -V
,它看起来像是在尝试为 ruby 1.9.1 提取源代码,但我有 1.9.2,然后它失败了,无法加载此类文件 --mkmf (LoadError)。
任何帮助将不胜感激,这是我对 Ruby 的第一次冒险,所以这是我的第一次设置。问任何问题,我会回答。
不要sudo
用来安装您的 rails gem,因为这将切换到其他用户,该用户无权访问您的 RVM 安装。只需使用gem install rails
.
我仍然建议卸载系统 Ruby。
首先,您需要一些 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 终端的“作为登录 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.
首先:您似乎根本没有使用 rvm 安装它。使用 rvm 时,它应该安装在您的家中或 /usr/share 中。/usr/lib 上的这个安装是关于 ruby 的正常安装。
要将它安装在系统上而不是 rvm 上,你应该安装 ruby 包的开发版本,比如
apt-get install ruby1.9-dev
但是,如果你想不使用 rvm,因为我认为你想要你应该安装它
rvm install 1.9.3.
如果不是你的情况,请告诉我。