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

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

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

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

目前尚未安装“rails”程序。 您可以通过输入以下命令安装它:sudo apt-get install rails rails:command not found

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

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

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

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

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

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

刚刚遇到同样的问题,只需在你的.bashrc中添加以下内容即可

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

假设安装了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下行添加到.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 

而且,它应该工作。

如果你正在运行rbenv,你需要运行rbenv rehash go get access to rails-api命令。

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

我认为这不是解决此问题的正确方法。 但我所做的是,我在我的可执行文件目录中创建了一个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 : /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命令获取可执行路径

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

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

PATH = “$ {PATH}:$ {HOME} / RVM /gem/ruby1.9.3-P327 /斌/”

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

 eval "$(rbenv init -)" 

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

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

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

引用,

.bash_profile添加到.bash_profile

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

结束语

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