已安装的Rails但rails命令表明它未安装

时间:2009-12-23 17:00:55

标签: ruby-on-rails ruby rubygems gem

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

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

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

目前尚未安装“rails”程序。您可以输入以下命令安装它: sudo apt-get install rails rails:找不到命令

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

编辑:ruby的路径不是问题,问题是哪里有rails?我该如何执行呢? rails只是不起作用,exectuable在哪里生活?

11 个答案:

答案 0 :(得分:21)

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

You can learn how to change PATH.

您可以通过键入echo $PATH

来获取当前的PATH变量

答案 1 :(得分:16)

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

答案 2 :(得分:12)

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

即可
PATH="${PATH}:/var/lib/gems/1.8/bin/"

答案 3 :(得分:3)

假设安装了 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

而且,它应该有效。

答案 4 :(得分:2)

如果您正在运行rbenv,则需要运行rbenv rehash,以获取对rails-api命令的访问权限。

答案 5 :(得分:1)

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

答案 6 :(得分: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命令

获取可执行路径

答案 7 :(得分:1)

我将以下几行添加到我的.bashrc文件中并且有效。

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

PATH = “$ {PATH}:$ {HOME} / RVM /宝石/红宝石1.9.3-P327 / bin中/”

答案 8 :(得分:1)

如果您使用的是rbenv,请不要忘记添加

eval "$(rbenv init -)"

进入.bash_profile或其他启动脚本。

答案 9 :(得分:0)

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

在这篇优秀的帖子中建议.bash_profile.bashrc之间的区别是从.bashrc文件中获取.bash_profile,然后将PATH和常见文件放在一起.bashrc中的设置。

引用,

将以下行添加到.bash_profile

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

结束语

答案 10 :(得分:-1)

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