Mina: Консоль Mina 'bash: bundle: команда не найдена'

Созданный на 24 янв. 2017  ·  8Комментарии  ·  Источник: mina-deploy/mina

mina console вызывает ошибку bash: bundle: command not found

Когда я просматриваю исходный код, mina console делает следующее:

  1. cd к current_path
  2. выполнить rails c

Однако, когда мы используем rvm или rben, нам нужно сначала загрузить версию ruby ​​с gemset.

Самый полезный комментарий

Это работает для меня с rbenv:

```
задача :среда сделать
# Если вы используете rbenv, используйте это для загрузки среды rbenv.
# Убедитесь, что ваша .ruby-версия или .rbenv-версия зафиксирована в вашем репозитории.
вызвать :' rbenv: загрузить '

# Для тех, кто использует RVM, используйте это для загрузки версии RVM@gemset.
# вызывать :' rvm:use [ruby-1.9. 3-p125@по умолчанию ]'
конец


desc "Запускает интерактивную консоль rails."
задача :c => :среда делать
вызвать: 'консоль'
конец
```

Все 8 Комментарий

Я написал ту же проблему https://github.com/mina-deploy/mina/issues/476

У меня такая же проблема.

Это работает для меня с rbenv:

```
задача :среда сделать
# Если вы используете rbenv, используйте это для загрузки среды rbenv.
# Убедитесь, что ваша .ruby-версия или .rbenv-версия зафиксирована в вашем репозитории.
вызвать :' 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

Есть ли более практичный способ исправить это?

мина 1.1.0 представила local_environment и remote_environment https://github.com/mina-deploy/mina/commit/972a26ce354e8031a0656c16783c02390c821e33

Вы можете использовать это

Была ли эта страница полезной?
0 / 5 - 0 рейтинги