我正在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-get , rvm或rbenv :
打开一个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中找到可执行文件。