如何在我的Ubuntu服务器上启动rails控制台

我正在debugging我的Ubuntu服务器上的rails应用程序的问题,我试图启动rails控制台来运行一个命令,但是当我尝试启动控制台时会发生这种情况:

myuser@rails-server1:/var/www/myapp/current$ rails c The program 'rails' can be found in the following packages: * ruby-railties-3.2 * ruby-railties-4.0 Try: sudo apt-get install <selected package> 

Rails肯定是安装的,因为我的应用程序正在运行,并且gem安装在这个目录中:

 /var/www/myapp/shared/bundle/ruby/2.0.0/gems 

那么我如何才能真正启动导轨控制台?

bundle exec到救援:

 $ bundle exec rails console 

我曾经有过同样的问题。 在我的情况下,它必须与RVM。

添加到你的〜/ .bashrc

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

每次加载新的终端会话时,都会加载rvm。

看起来像rails不在你的路径,所以你需要指定一个路径(通常来说,不是在任何合理配置的* nix框的路径)

所以试试/var/www/myapp/current

 RAILS_ENV=production ./bin/rails console 

这应该使用安装在您的软件包中的rails版本来获得控制台,并让您进入正确的环境。

首先,让我们来看看你是如何安装Ruby的:通过apt-getrvmrbenv

打开一个shell并输入

 # type rbenv | head -1 # type rvm | head -1 

每个命令将返回“xxx是一个函数”“-bash:type:xxx:not found” (其中“xxx”是“rbenv”或“rvm”)。

“xxx是一个函数”意味着你已经通过xxx方法安装了。

如果两个命令都返回“xxx:not found”,那么你已经通过apt-get安装了,你需要通过rbenv或者rvm来重新安装。

现在你知道你使用的管理器了,让我们试着解决这个问题。

如果您通过RVM安装,请尝试以下操作:

 # \curl -sSL https://get.rvm.io | bash -s -- --ignore-dotfiles # echo "source $HOME/.rvm/scripts/rvm" >> ~/.bash_profile 

如果您通过RBENV安装,请尝试以下操作:

 # echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bashrc 

关闭终端,重新打开并重新尝试你的“轨道C”

PS:如果没有这个工作,尝试安装另一个管理器(如果您使用的是RVM,请尝试通过RBENV进行安装,反之亦然)。

运行rails特定命令时最好使用bundler

“bundle exec RAILS_TASK”就像在这种情况下“bundle exec rails s”一样。 当使用bundler的时候,它会在安装ruby的时候在GEM_PATH中找到可执行文件。