web-dev-qa-db-fra.com

Pourquoi la commande Sudo: bundle est-elle introuvable?

Pourquoi la commande "bundle" est-elle introuvable lors de l'utilisation de Sudo:

[root@desktop gitlab]# Sudo -u git -H bundle exec rake gitlab:setup Rails_ENV=production
Sudo: bundle: command not found
[root@desktop gitlab]#

mais existe quand vous n'utilisez pas Sudo:

[root@desktop 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...
[root@desktop gitlab]#

La raison pour laquelle je pose cette question est que je suis https://github.com/gitlabhq/gitlab-recipes/tree/master/install/centos et qu'il est indiqué d'utiliser Sudo.

J'ai essayé d'ajouter un indicateur -i comme décrit par L'utilisation de $ Sudo bundle exec ... soulève une erreur 'bundle: command not found' , mais obtenez le message "Ce compte n'est pas disponible pour le moment".

11
user1032531

Vérifiez si la PATH a les mêmes valeurs avec et sans Sudo. Apparemment, il ne peut pas trouver bundle simplement parce qu'il ne figure pas dans PATH

Vous pouvez comparer les sorties des deux lignes suivantes

$ echo 'echo $PATH' | sh
$ echo 'echo $PATH' | Sudo sh

Idéalement, Sudo est supposé laisser PATH intact. Mais cela pourrait être un problème secondaire de votre distribution d'hébergement.

Modifier par affiche originale. La sortie est:

[root@desktop 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
[root@desktop etc]# echo 'echo $PATH' | Sudo sh
/sbin:/bin:/usr/sbin:/usr/bin:/user/local/bin
[root@desktop etc]#
18
deimus

L'utilisateur a été créé sans un login bash Shell. Changez cela en centos en utilisant system-config-users. Ensuite, entrez dans/home/git et allez dans le répertoire gitlab. Exécutez les commandes bundle sans la balise Sudo. La prochaine erreur que vous rencontrerez est le fichier database.yml manquant dans le répertoire de configuration. corrigez cela avec le mot de passe correct (copiez le sample mysql ou postgres et éditez-le).

1
user1573865

Essayez:

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

d'utiliser la même PATH que l'utilisateur actuel.

0
Simon Oualid