Mina: Mina 控制台“bash:捆绑:找不到命令”

创建于 2017-01-24  ·  8评论  ·  资料来源: mina-deploy/mina

mina console引发错误bash: bundle: command not found

当我查看源代码时,mina 控制台所做的是

  1. cd 到 current_path
  2. 执行rails c

但是,当我们使用 rvm 或 rben 时,我们需要先用 gemset 加载 ruby​​ 版本。

最有用的评论

这对我来说适用于 rbenv:

```
任务:环境做
# 如果您使用的是 rbenv,请使用它来加载 rbenv 环境。
# 请务必将您的 .ruby-version 或 .rbenv-version 提交到您的存储库。
调用:' rbenv:加载'

# 对于那些使用 RVM 的用户,使用它来加载 RVM版本@gemset。
# 调用 :' rvm:use [ruby-1.9. 3-p125@默认]'
结尾


desc "启动交互式 Rails 控制台。"
任务:c =>:环境做
调用:'控制台'
结尾
```

所有8条评论

我有同样的问题。

这对我来说适用于 rbenv:

```
任务:环境做
# 如果您使用的是 rbenv,请使用它来加载 rbenv 环境。
# 请务必将您的 .ruby-version 或 .rbenv-version 提交到您的存储库。
调用:' rbenv:加载'

# 对于那些使用 RVM 的用户,使用它来加载 RVM版本@gemset。
# 调用 :' rvm:use [ruby-1.9. 3-p125@默认]'
结尾


desc "启动交互式 Rails 控制台。"
任务:c =>:环境做
调用:'控制台'
结尾
```

@hovancik谢谢,它对我有用。

但是如何解决呢? 开箱即用,无需任何技巧

请看一下https://github.com/mina-deploy/mina/blob/master/docs/faq.md# --command-not-found-bundle

关于这个,我仍然有这个问题

在我的情况下是因为我需要先加载 rbenv 然后运行bundle

$ mina console -s --trace
** Invoke console (first_time)
** Execute console
** Invoke debug_configuration_variables (first_time)
** Execute debug_configuration_variables
** Invoke run_commands (first_time)
** Execute run_commands
** Invoke environment (first_time)
** Execute environment
** Invoke rbenv:load (first_time)
** Execute rbenv:load
** Invoke nvm:load (first_time)
** Execute nvm:load
#!/usr/bin/env bash
# Executing the following via 'ssh [email protected] -i config/deployment_key -p 22 -tt':
#
echo "-----> Loading rbenv"
export RBENV_ROOT="$HOME/.rbenv"
export PATH="$HOME/.rbenv/bin:$PATH"
if ! which rbenv >/dev/null; then
  echo "! rbenv not found"
  echo "! If rbenv is installed, check your :rbenv_path setting."
  exit 1
fi
eval "$(rbenv init -)"
echo "-----> Loading nvm"
[ -s "/home/deployer/.nvm/nvm.sh" ] && . "/home/deployer/.nvm/nvm.sh"
(cd /home/deployer/app/current && RAILS_ENV="production" bundle exec rails console && cd -)
echo "-----> Loading rbenv"
export RBENV_ROOT="$HOME/.rbenv"
export PATH="$HOME/.rbenv/bin:$PATH"
if ! which rbenv >/dev/null; then
  echo "! rbenv not found"
  echo "! If rbenv is installed, check your :rbenv_path setting."
  exit 1
fi
eval "$(rbenv init -)"
echo "-----> Loading nvm"
[ -s "/home/deployer/.nvm/nvm.sh" ] && . "/home/deployer/.nvm/nvm.sh"

       Elapsed time: 0.00 seconds

正如您在上面的输出中看到的, environment任务在console之后调用。 rbenv:load任务也被调用了两次。

目前我正在这样做:

# This task is the environment that is loaded for all remote run commands, such as
# `mina deploy` or `mina rake`.
task :load_env do
  # If you're using rbenv, use this to load the rbenv environment.
  # Be sure to commit your .ruby-version or .rbenv-version to your repository.
  invoke :'rbenv:load'
  invoke :'nvm:load'
end
task environment: :load_env
task console: :load_env

有没有更实用的方法来解决这个问题?

mina 1.1.0 引入了local_environmentremote_environment https://github.com/mina-deploy/mina/commit/972a26ce354e8031a0656c16783c02390c821e33

你可以用那个

此页面是否有帮助?
0 / 5 - 0 等级