【问题标题】:Changing Ruby and Rails version with capistrano and rvm使用 capistrano 和 rvm 更改 Ruby 和 Rails 版本
【发布时间】:2018-03-02 21:08:44
【问题描述】:

使用rmv更改ruby和rails版本时更改项目配置的正确步骤是什么。

比如我要在deploy.rb中改set :rvm_ruby_version, '2.4.0@5.1',但是还有什么呢?

我无法让 Capistrano 使用正确的 rvm gemset,并且总是尝试使用旧的 rvm gemset bundle install

我必须在生产服务器中更改某些内容吗?我想是的,但以某种顺序,在部署之前,然​​后在部署其他一些更改之后......¿?

我尝试过 capistrano-rvm 、 rvm-capistrano,最后是 rvm1-capistrano3

当我运行 cap production depoly 时,我收到这些错误,全部围绕“无法确定要使用哪个 Ruby”

 DEBUG [e2eccae9] Running /home/rails/www/digitalshelving/rvm1scripts/rvm-auto.sh . bundle check --path /home/rails/www/digitalshelving/shared/bundle as rails@46.101.100.14

 DEBUG [e2eccae9] Command: cd /home/rails/www/digitalshelving/releases/20180303130204 && /home/rails/www/digitalshelving/rvm1scripts/rvm-auto.sh . bundle check --path /home/rails/www/digitalshelving/shared/bundle

 DEBUG [e2eccae9]   Could not determine which Ruby to use; . should contain .rvmrc or .versions.conf or .ruby-version or .rbfu-version or .rbenv-version, or an appropriate line in Gemfile.

 DEBUG [e2eccae9]   Can not find ruby for '.'.

 DEBUG [e2eccae9] Finished in 0.684 seconds with exit status 103 (failed).

  INFO [c22dc933] Running /home/rails/www/digitalshelving/rvm1scripts/rvm-auto.sh . bundle install --path /home/rails/www/digitalshelving/shared/bundle --without development test --deployment --quiet as rails@46.101.100.14

 DEBUG [c22dc933] Command: cd /home/rails/www/digitalshelving/releases/20180303130204 && /home/rails/www/digitalshelving/rvm1scripts/rvm-auto.sh . bundle install --path /home/rails/www/digitalshelving/shared/bundle --without development test --deployment --quiet

 DEBUG [c22dc933]   Could not determine which Ruby to use; . should contain .rvmrc or .versions.conf or .ruby-version or .rbfu-version or .rbenv-version, or an appropriate line in Gemfile.

 DEBUG [c22dc933]   Can not find ruby for '.'.

谢谢

【问题讨论】:

    标签: ruby-on-rails-5 capistrano3


    【解决方案1】:

    在 Rails.root 中创建名称为 .ruby-version 和以下内容的文件:

    2.3.3
    

    或任何你想要的版本。当您或 capistrano cd 到根文件夹时,rvm 将根据文件内容更改 ruby​​ 版本

    【讨论】:

    • 这不是和.rmvrv文件一样吗?我已经在使用它了,我要问的是用 capistrano 重现更改 ruby​​ 或 rails 版本(肯定是另一个 rvm 文件夹)的步骤是什么。 capistrano 可以自行执行 rvm 安装吗?或者这是我之前必须做的事情?,以什么顺序?...等
    • 只有在 fitt deploy 之前,您必须使用 rvm install 2.3.3 等在目标机器上安装适当的 ruby​​ 版本。之后,您可以在 deploy.rb 文件集中:rvm_ruby_version, IO.read(' .ruby-version') 和 capistrano 将尊重指定版本
    • 我终于可以让它工作了,但有一些失误。我没说像你说的那么容易,我做的第一件事是`set :rvm1_ruby_version, '2.4.0@5.1',这个“rvm1_ruby...”是指gem,我多次更改gem ...但是,无论如何,下次我会按照你的说法再次尝试这个。感谢您的关注
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-17
    • 2022-01-05
    • 2012-01-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多