30

我正在使用 Ubuntu 9.10 Karmic Koala 和 Ruby 1.9.1。

我使用 安装了 Rails sudo gem install rails,它为我安装了所有库。

当我rails在终端输入时,它会说。

当前未安装程序“rails”。您可以通过键入安装它: sudo apt-get install rails rails: command not found

我可以找到 rake,它在 rake1.9.1 下,但是找不到 Rails,有人能指出我正确的方向吗?

编辑:红宝石的路径不是问题,问题是rails在哪里?我该如何执行它?rails 只是不起作用,可执行文件在哪里生活?

4

11 回答 11

22

正如其他人所说,这很可能是 bashrc/bash_profile 文件中的 PATH 变量问题。

您可以学习如何更改 PATH。.

您可以通过键入获取当前 PATH 变量echo $PATH

于 2009-12-23T17:30:59.953 回答
18

如果您在安装 rails 后立即运行 rails 命令,则需要重新启动终端才能识别您的命令。

于 2012-10-31T00:26:09.757 回答
13

刚刚遇到同样的问题,只需将以下内容放入您的 .bashrc

PATH="${PATH}:/var/lib/gems/1.8/bin/"
于 2010-09-25T21:17:47.307 回答
4

假设ruby-2.0.0-p247已安装,rails位于以下位置。

prayag@prayag$ ls -l ~/.rvm/gems/ruby-2.0.0-p247/bin/
total 60
-rwxr-xr-x 1 prayag prayag 484 Oct  2 00:20 cap
-rwxr-xr-x 1 prayag prayag 487 Oct  2 00:20 capify
-rwxr-xr-x 1 prayag prayag 475 Oct  1 21:13 erubis
-rwxr-xr-x 1 prayag prayag 469 Oct  1 21:13 rackup
-rwxr-xr-x 1 prayag prayag 480 Oct  1 21:18 rails
-rwxr-xr-x 1 prayag prayag 494 Oct  2 00:27 restclient
-rwxrwxr-x 1 prayag prayag 368 Oct  1 21:10 ruby_executable_hooks
-rwxr-xr-x 1 prayag prayag 467 Oct  2 00:27 sass
-rwxr-xr-x 1 prayag prayag 475 Oct  2 00:27 sass-convert
-rwxr-xr-x 1 prayag prayag 467 Oct  2 00:27 scss
-rwxr-xr-x 1 prayag prayag 487 Oct  1 21:20 sprockets
-rwxr-xr-x 1 prayag prayag 483 Oct  2 00:29 stripe-console
-rwxr-xr-x 1 prayag prayag 467 Oct  1 21:17 thor
-rwxr-xr-x 1 prayag prayag 467 Oct  1 21:20 tilt
-rwxr-xr-x 1 prayag prayag 474 Oct  1 21:16 tt

[1] .bash_profile应该已经包含以下行,如果不添加。

 [[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm" # Load RVM into a shell session *as a function*

[2]将以下行添加到.bashrc.

PATH=$PATH:$HOME/.rvm/bin # Add RVM to PATH for scripting
PATH="${PATH}:${HOME}/.rvm/gems/ruby-2.0.0-p247/bin/"

[3]重新加载~/.bashrc

$ source ~/.bashrc

而且,它应该工作。

于 2013-10-02T17:33:57.483 回答
3

如果您正在运行 rbenv,则需要运行 rbenv rehash 访问 rails-api 命令。

于 2014-08-19T09:41:29.647 回答
1

gem应该将 rails 可执行脚本放在与 ruby​​ 相同的位置。我会在那里查看并确保权限设置正确并且是可执行的。

于 2009-12-23T18:52:33.987 回答
1

我认为这不是解决此问题的正确方法。但是我所做的是,我在我的可执行目录中创建了一个 rails.rb 文件,因为当我打开该目录时,该目录文件不存在并放入以下内容。

#!/usr/bin/env ruby_noexec_wrapper
#
# This file was generated by RubyGems.
#
# The application 'railties' is installed as part of a gem, and
# this file is here to facilitate running it.
#

require 'rubygems'

version = ">= 0"

if ARGV.first =~ /^_(.*)_$/ and Gem::Version.correct? $1 then
  version = $1
  ARGV.shift
end

gem 'railties', version
load Gem.bin_path('railties', 'rails', version)

然后我尝试rails s在我的项目及其作品中运行..

但在此之前,请确保可执行目录在您的路径中,就像我已经在我的机器中一样: /home/anand/.rvm/gems/ruby-1.9.3-p286/bin:/home/anand/.rvm/gems/ruby-1.9.3-p286@global/bin:/home/anand/.rvm/rubies/ruby-1.9.3-p286/bin:/home/anand/.rvm/bin

根据 TK 所说,您可以使用gem environment命令获取可执行路径

于 2012-12-03T06:01:53.753 回答
1

我在我的 .bashrc 文件中添加了以下几行,它起作用了。

[[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm" # 将 RVM作为函数加载到 shell 会话中

PATH="${PATH}:${HOME}/.rvm/gems/ruby-1.9.3-p327/bin/"

于 2012-12-09T17:12:35.317 回答
1

如果您正在使用rbenv不要忘记添加

eval "$(rbenv init -)"

进入您的.bash_profile或其他启动脚本。rbenv rehash还需要运行。

于 2016-09-29T04:24:28.613 回答
0

一个可能的解决方案是不维护两个不同的配置文件.bash_profile.bashrc

在这篇优秀的文章中建议从您的文件中获取.bash_profile.bashrc来源之间的区别,然后将 PATH 和常用设置放入..bashrc.bash_profile.bashrc

引用,

将以下行添加到.bash_profile

if [ -f ~/.bashrc ]; then source ~/.bashrc fi

结束报价

于 2014-12-12T07:44:33.837 回答
-1

您可能希望在 bashrc 文件中包含 Ruby/Jruby 文件夹的路径。这将确保您能够从任何地方运行它。不要忘记重新启动终端或“source .bashrc”以重新加载终端中的变量。

于 2009-12-23T17:18:15.330 回答