如何在 bash shell 脚本中使用特定的捆绑器版本

How to use specific bundler version inside bash shell script

我正在 运行 在 bash 脚本中进行一些捆绑安装和 rake 迁移,但使用的捆绑版本不是我需要的版本。我怎样才能让它使用不同的捆绑包版本

#!/bin/bash

function run_setup {
    echo "Running setup and DB migrations"
    cd $cwd/apps/rails_app
    gem install bundler -v 1.3
    bundle -v                      # SHOWS version 1.15
    bundle install                 # Errors out
    rake db:migrate
}

当我运行上面的bash函数时,bash使用bundle版本1.15。我需要它在调用 bundle install 之前使用它正在安装的 1.3 版本。谢谢

您可以像这样将版本传递给捆绑命令:

bundle _X.X.X_ install

所以你的函数看起来像这样:

#!/bin/bash

function run_setup {
    echo "Running setup and DB migrations"
    cd $cwd/apps/rails_app
    gem install bundler -v 1.3
    bundle _1.3_ install
    rake db:migrate
}