Почему команда sudo: bundle не найдена?

Почему команда "bundle" не найдена при использовании sudo:

[[email protected] gitlab]# sudo -u git -H bundle exec rake gitlab:setup RAILS_ENV=production
sudo: bundle: command not found
[[email protected] gitlab]#

но существует, когда не используется sudo:

[[email protected] gitlab]# bundle exec rake gitlab:setup RAILS_ENV=production
 Warning
  You are running as user root, we hope you know what you are doing.
  Things may work/fail for the wrong reasons.
  For correct results you should run this as user git.

This will create the necessary database tables and seed the database.
You will lose any previous data stored in the database.
Do you want to continue (yes/no)? no
Quitting...
[[email protected] gitlab]#

Я прошу, я следую https://github.com/gitlabhq/gitlab-recipes/tree/master/install/centos, и он указывает на использование sudo.

Я попытался добавить флаг -i, как описано Использование $sudo bundle exec... raises 'bundle: command not found' error, но получить "В настоящее время эта учетная запись недоступна".

Ответ 1

Проверьте, имеет ли значение PATH одинаковые значения как с, так и без sudo. По-видимому, он не может найти bundle только потому, что он не указан в PATH

Вы можете сравнить выходы следующих двух строк

$ echo 'echo $PATH' | sh
$ echo 'echo $PATH' | sudo sh

В идеале sudo предполагается оставить PATH нетронутым. Но это может быть побочным явлением вашего хостинга.

Редактировать по оригинальному плакату. Выход:

[[email protected] etc]# echo 'echo $PATH' | sh
/usr/lib64/qt-3.3/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
[[email protected] etc]# echo 'echo $PATH' | sudo sh
/sbin:/bin:/usr/sbin:/usr/bin:/user/local/bin
[[email protected] etc]#

Ответ 2

Пользователь был создан без оболочки входа bash. Измените это в centos, используя системных-config-пользователей. Затем su git в /home/ git и перейдите в каталог gitlab. Выполните команды пакета без тэга sudo. Следующая ошибка, с которой вы столкнетесь, - это отсутствующая database.yml в каталоге config. исправьте это с помощью правильного пароля (т.е. скопируйте образец mysql или postgres и отредактируйте).

Ответ 3

У меня была эта проблема, я думал, что мой gitlab установлен из источника, и я получил ту же ошибку. но после попытки омнибуса методом резервного копирования моя проблема решена с помощью этой команды:

sudo gitlab-rake gitlab:backup:create

Ответ 4

Попробуйте:

sudo -u git -H env PATH=$PATH && bundle exec rake gitlab:check RAILS_ENV=production

использовать тот же PATH, что и текущий пользователь.