【问题标题】:SSH + Rails: Run Rails (and Capistrano) commands with ssh session in one lineSSH + Rails:在一行中使用 ssh 会话运行 Rails(和 Capistrano)命令
【发布时间】:2017-11-07 17:25:05
【问题描述】:

我想知道是否有办法做类似的事情

ssh user@host "cap production rails:console"

其中host是我的Rails开发环境,然后就可以使用远程控制台了。

当我尝试该命令时,它显示:bash: cap: command not found

然后我尝试运行

ssh user@host "bundle exec cap production rails:console"

但它显示bash: bundle: command not found

请注意,我使用的是rvm。

我的.bashrc(摘录):

....
# If not running interactively, don't do anything
case $- in
    *i*) ;;
      *) return;;
esac

...

#linuxbrew
export PATH="$HOME/.linuxbrew/bin:$PATH"
export MANPATH="$HOME/.linuxbrew/share/man:$MANPATH"
export INFOPATH="$HOME/.linuxbrew/share/info:$INFOPATH"

# Add RVM to PATH for scripting. Make sure this is the last PATH variable 
change. export PATH="$PATH:$HOME/.rvm/bin"

# for transcriber service
export SOUNDNOTATION_TRANSCRIBER_BINARY_PATH="$HOME/transcriber/SoundnotationTranscriber"
# sidekiq
export TRANSCRIPTION_API_HOST_PORT='localhost:4040'

# wkhtmltopdf
export WKHTMLTOPDF="/home/soundnotation/.rvm/gems/ruby-2.3.1/bin/wkhtmltopdf"

eval "$(ssh-agent -s)"
ssh-add ~/.ssh/id_rsa

【问题讨论】:

    标签: ruby-on-rails bash ssh capistrano


    【解决方案1】:

    您是否尝试过使用完整路径来设置上限:

    ssh user@host "/Users/anton/.rvm/gems/ruby-2.3.1@gotoweb/bin/cap production rails:console"
    

    ?

    【讨论】:

    • 当我登录时,默认路径是应用程序路径,所以是的。即使手动添加应用路径,结果也是一样的
    • 尝试使用绝对路径作为上限。更新了我的答案。
    • 现在的错误是:/usr/bin/env: ‘ruby_executable_hooks’: No such file or directory
    • 它看起来也与PATH有关。据我所知, ssh 没有正确加载您的路径变量。我看到了一些关于生成 binstub 的解决方案。试试看rvm @global do gem regenerate_binstubs; gem regenerate_binstubs。
    猜你喜欢
    • 1970-01-01
    • 2014-09-19
    • 2013-11-24
    • 2015-01-24
    • 1970-01-01
    • 1970-01-01
    • 2019-05-20
    • 1970-01-01
    • 2010-12-10
    相关资源
    最近更新 更多