【问题标题】:Cannot run bundle command on remote server from local computer无法从本地计算机在远程服务器上运行捆绑命令
【发布时间】:2021-03-03 14:11:55
【问题描述】:

我创建了一个将 tar 文件复制到远程服务器的脚本,然后执行一些操作:

[..]

kill $(lsof -i :3000 -t)

# Bundle up
cd $DIR && \
  bundle install && \
  RAILS_ENV=production bundle exec rake assets:precompile && \
  rails s -e production -p 3000 -d

如果我直接在远程服务器上运行这个./my-script.sh param,一切都很好。当我从本地计算机调用此脚本时,它不起作用。它抱怨

./my-script.sh:第 18 行:捆绑:找不到命令

当我在远程服务器上运行 which bundle 时,我回来了:

/usr/share/rvm/gems/ruby-3.0.0/bin/bundle

在我的脚本中使用上面的内容会出现大量错误。从本地计算机调用脚本时如何通过该错误?

【问题讨论】:

    标签: ruby-on-rails ruby bundler


    【解决方案1】:

    您应该将所有 ruby​​ 和 bundler 环境变量设置为使用 bundle exec

    如果使用了 rvm,你应该加载它:

    [[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm"
    

    尝试通过以下方式在 ruby​​ 用户下了解服务器上 rvm 的所有环境: rvm env

    它像ssh example.com < ./bundle.sh一样运行

    #!/bin/bash +ex
    # bundle.sh
    
    export PATH="/home/user/.rvm/gems/ruby-2.6.4/bin:/home/user/.rvm/gems/ruby-2.6.4@global/bin:/home/user/.rvm/rubies/ruby-2.6.4/bin:$PATH"
    export GEM_HOME='/home/user/.rvm/gems/ruby-2.6.4'
    export GEM_PATH='/home/user/.rvm/gems/ruby-2.6.4:/home/user/.rvm/gems/ruby-2.6.4@global'
    export MY_RUBY_HOME='/home/user/.rvm/rubies/ruby-2.6.4'
    export IRBRC='/home/user/.rvm/rubies/ruby-2.6.4/.irbrc'
    unset MAGLEV_HOME
    unset RBXOPT
    export RUBY_VERSION='ruby-2.6.4'
    source "$HOME/.rvm/scripts/rvm"
    
    export RAILS_ENV=production
    
    cd /path/ && bundle exec rails db:migrate:status
    cd $DIR && \
      bundle install && \
      bundle exec rake assets:precompile && \
      rails s -e production -p 3000 -d
    

    【讨论】:

    • 它工作正常ssh example.com < ./bundle.sh
    • 问一下,我们把那个脚本放了吗?
    • 你能提供一个我拥有的代码的例子吗?
    • 好的,它工作但不清楚。我必须将 rvm env 的内容复制到我的脚本中才能正常工作。你的第一个代码的目的是什么?
    • source "$HOME/.rvm/scripts/rvm" - 加载 rvm 当然 rvm env 应该从 ruby​​ 用户下的服务器获取并且最好对所有 bundle 和 rails 命令使用相同的环境 export RAILS_ENV=production 对于整个 bundle 脚本是比仅对某些命令使用 env inline 以及以不同的方式使用更好。
    猜你喜欢
    • 1970-01-01
    • 2017-01-21
    • 2021-11-27
    • 2014-08-17
    • 1970-01-01
    • 1970-01-01
    • 2022-08-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多