Commande gcloud introuvable - lors de l'installation du SDK Google Cloud


116

Je suis sur un Mac et j'essaie d'installer le SDK Google Cloud (y compris l'utilitaire de ligne de commande gcloud) à l'aide de cette commande dans le terminal

curl https://sdk.cloud.google.com | bash

comme on le voit sur https://cloud.google.com/sdk/

Il est arrivé jusqu'à la fin et s'est terminé, mais même après avoir redémarré mon shell, la gcloudcommande dit toujours qu'il n'est pas trouvé.

Pourquoi cette installation ne fonctionne-t-elle pas?


4
Quelle coque utilisez-vous? Le programme d'installation vous demande de mettre à jour votre .bashrcfichier, mais ne fonctionne pas (encore) avec zsh ou d'autres shells. La prise en charge de zsh dans le programme d'installation est en cours. Avez-vous répondu yà l'invite du programme d'installation Modify profile to update your $PATH and enable bash completion? (Y/n)??
Zachary Newman

En fait, oui, j'ai vu ça, mais ça ne m'a pas vraiment incité. Il n'a pas attendu ma réponse, donc je n'ai pas pu dire OUI. Par conséquent, le programme d'installation n'a pas effectué cette étape. Je me demande comment faire un correctif plus permanent maintenant, car il semble que mon correctif n'a fonctionné qu'une seule fois et que j'ai dû le refaire aujourd'hui pour le réparer à nouveau. Suggestions?
smntx

1
En fait, je viens de le réinstaller cette fois et l'invite a fonctionné, alors maintenant je vais bien. Merci
smntx

1
Lorsque j'ai installé gcloud, l'installation a modifié le profil (par exemple ~/.bash_profile) mais n'a pas réussi à le recharger. Courir l'a source ~/.bash_profilecorrigé.
pseudo

Réponses:


119

Voici donc mon correctif précédent pour ce problème, mais il s'avère que ce n'est pas permanent. Cela fonctionne mais chaque fois que vous redémarrez Terminal, vous devrez faire la même chose, ce qui n'est pas pratique.

C'est pourquoi je vous suggère de supprimer le répertoire google-cloud-sdk actuel et de simplement refaire l'installation. Assurez-vous (comme Zachary l'a mentionné) de répondre oui (O) à l'invite Modify profile to update your $PATH and enable bash completion? (Y/n).

Voici ma vieille réponse, mais il suffit de refaire l'installation:

I had the same problem, `gcloud` wasn't working for me.
But then, in the same directory as my `google-cloud-sdk` folder which I had just installed (my `home` directory), I found this file called `test`.
Inside this `test` file I found two commands:


    # The next line updates PATH for the Google Cloud SDK.
    source '[path-to-my-home]/google-cloud-sdk/path.bash.inc'
    # The next line enables bash completion for gcloud.
    source '[path-to-my-home]/google-cloud-sdk/completion.bash.inc'

After I ran these two `source` commands in terminal, `gcloud` worked!

20
Pour zsh, il existe des fichiers path.zsh.incet correspondants completion.zsh.inc.
Zachary Newman

3
Très bonne réponse. Cela m'a sauvé des maux de tête.
Alex

6
Eh bien les gars dans mon cas, j'ai juste oublié de fermer et d'ouvrir la fenêtre du terminal après l'installation .... j'espère que cela aidera tout le monde: D
NFRiaCowboy

1
Malheureusement, ce n'est plus une question dans le dernier install.sh
Phil

1
Le package d'installation actuel de gcloud a en quelque sorte bifurqué cette étape.
Jonny

44

Pareil ici, j'essaye

source ~/.bashrc

Ensuite, cela a fonctionné


2
Aucun fichier ou répertoire de ce type
LKM

29

Celui-ci a fonctionné pour moi:

source ~/.bash_profile

2
A travaillé pour moi aussi
Mike Boutin

d'abord export PATH="/usr/lib/google-cloud-sdk/bin:$PATH"puis cette commande ci-dessus.
Bira

26

Sur Mac / Linux, vous devrez saisir l'entrée suivante dans votre ~/.bashrc:

export PATH="/usr/lib/google-cloud-sdk/bin:$PATH"

Cela a également fonctionné sur mac. La variable PATH devra être définie.
Parth Bhoiwala

@ParthBhoiwala Merci de m'avoir fait savoir, j'ai mis à jour la réponse. :)
Mapsy

Répondez uniquement en travaillant avec la nouvelle version, où l'invite «ajouter des variables au chemin» est absente.
Stanislasdrg réintègre Monica

Celui-ci a fonctionné pour moi. Mon installation n'a pas mis à jour .bashrc d'elle-même.
Sean Murphy

20

J'ai eu ce problème aujourd'hui, et l'ajout sudoà la install commandrésolution de mon problème sur maxOS Sierra!

sudo ./google-cloud-sdk/install.sh

3
C'est la seule chose qui m'a aidé sur Sierra - aucune des autres réponses n'a fonctionné.
paqash

2
Cela a également résolu mon problème sur macOS v10.13 "High Sierra"
Maikel

vous devez mettre le .zshrc lorsque le programme d'installation demande le fichier bash qui vous utilise. vous devez donc en mettre comme ceci: /Users/YOU-NAME-USER/.zshrc
Richard Rebeco

17

Comment installer GCloud et fonctionne toujours après le redémarrage sur Mac OS HIGH Sierra:

  1. Téléchargez le package d'installation ici

  2. Fichier réalisé et déposer dans votre dossier

  3. Ouvrez le terminal, allez dans votre dossier avec fichier et entrez cette commande:

     ./google-cloud-sdk/install.sh
    
  4. "Modifier le profil pour mettre à jour votre $PATHet activer la complétion bash?"
    Oui

  5. Entrez ce chemin à modifier:
    /Users/USERNAME_COMPUTER/.bashrc
  6. Après toute installation, entrez ceci:

      source ~/.bashrc
    
  7. Entrez ceci pour vérifier l'installation de gcloud:

    gcloud - -version

  8. Ouvrir une nouvelle fenêtre terminal cmd+n NE FERMER ANCIENNE FENÊTRE et entrer dans une nouvelle fenêtregcloud version

    si: «commande non trouvée» passer à l'étape 9

    else: Félicitations pour le travail de GCloud dans le terminal

  9. Revenez à l'ancienne fenêtre et entrez echo $PATH et copiez le chemin vers GCloud

  10. Ouvrez BASH_PROFILE:

    open ~/.bash_profile
    
  11. Entrez le chemin vers le nouveau Bash:

    « export PATH="/Users/USERNAME_COMPUTER/google-cloud-sdk/bin:$PATH" »
    
  12. Revenir à l'étape 8


13

Je sais que cette question a reçu une réponse, mais voici mes deux centimes. Après avoir installé gcloud, vous devez redémarrer le shell avant de pouvoir exécuter la commande gcloud.

La façon dont vous faites cela dépend principalement du fichier dans lequel vous conservez la configuration de votre shell. La plupart des fichiers sont .bashrc_profile, .bashrc, .zshrc.

Vous pouvez maintenant redémarrer avec

source ~/.bashrc_profile

Vous pouvez remplacer le fichier par le fichier dont vous disposez.

Ou si vous ne vous souciez pas du fichier que vous avez, sur Mac ou Linux, vous pouvez redémarrer le shell.

exec -l $SHELL


12

Lors de l'installation du SDK, j'ai utilisé cette méthode:

curl https://sdk.cloud.google.com | bash

Lorsque vous utilisez cette méthode de l'auteur d'origine, assurez-vous d'avoir accepté les préférences de sécurité dans les paramètres de votre Mac pour autoriser les applications téléchargées depuis l'App Store et les développeurs identifiés.


Cela a été très utile. Merci!
Mona Jalal

2
J'ai dû ajouter le sudo devant
Mike Axle

10

Il vous suffit d'exécuter cette commande en tant que root

$ curl https://sdk.cloud.google.com | bash

Redémarrez le terminal et c'est tout. Maintenant, toutes les commandes doivent être exécutées en tant que root


9

J'exécute zsh et j'ai trouvé cet élément très utile: https://gist.github.com/dwchiang/10849350

Modifiez le fichier ~ / .zshrc pour inclure ces deux lignes:

# The next line updates PATH for the Google Cloud SDK.
source /Users/YOUR_USERNAME/google-cloud-sdk/path.zsh.inc

# The next line enables zsh completion for gcloud.
source /Users/YOUR_USERNAME/google-cloud-sdk/completion.zsh.inc

Cela suppose que vous avez installé le package dans votre répertoire principal à partir des documents officiels


7

J'ai dû trouver mon fichier bash_profile. Faire cela,

  1. Ouvrez une session Terminal.
  2. Dans ce type de session: source .bash_profile, puis appuyez sur Entrée

Maintenant, la commande gcloud devrait fonctionner


5

Pour le lancer sur MacOs Sierra, après l'installation de gcloud, j'ai modifié mon .bash_profile

Lignes originales:

# The next line updates PATH for the Google Cloud SDK.
if [ -f '/Users/alejandro/google-cloud-sdk/path.bash.inc' ]; then . '/Users/alejandro/google-cloud-sdk/path.bash.inc'; fi

# The next line enables shell command completion for gcloud.
if [ -f '/Users/alejandro/google-cloud-sdk/completion.bash.inc' ]; then . '/Users/alejandro/google-cloud-sdk/completion.bash.inc'; fi

mis à jour à:

# The next line updates PATH for the Google Cloud SDK.
if [ -f '/Users/alejandro/google-cloud-sdk/path.bash.inc' ]; then source '/Users/alejandro/google-cloud-sdk/path.bash.inc'; fi

# The next line enables shell command completion for gcloud.
if [ -f '/Users/alejandro/google-cloud-sdk/completion.bash.inc' ]; then source '/Users/alejandro/google-cloud-sdk/completion.bash.inc'; fi

Redémarrez le terminal et tous fonctionnent comme prévu!


Peut confirmer que cela a fonctionné pour moi aussi (avec zsh)
SJoshi

4

Cela a fonctionné pour moi:

Après avoir dit YàModify profile to update your $PATH and enable bash completion? (Y/n)?

L'initiation de Google invite ceci: Enter a path to an rc file to update, or leave blank to useet le chemin par défaut était: [/Users/MY_USERSAME/.bash_profile]:mais au lieu d'appuyer sur enter, j'ai écrit: /Users/MY_USERNAME/.bashrcpour changer le chemin.

Cela écraserait l'emplacement par défaut suggéré par Google.

Ensuite, je n'avais plus qu'à faire source ~/.bashrcet tout fonctionne maintenant!


Cela a résolu mon problème. Je tapais ~ / .bash_profile et l'installation ne mettait pas à jour le chemin, mais ne produisait pas non plus d'erreur.
Jude Osborn

2

J'ai trouvé des if-fidéclarations incorrectes dans ma ~/.bash_profile (condition non si dans le bloc suivant)

source '/Users/yorko/google-cloud-sdk/path.bash.inc'

fi

Je devais juste retirer "fi"et courir "source ~/.bash_profile"pour le faire fonctionner.


2

Si vous courez

source ~/.bashrc

entraîne "Aucun fichier ou répertoire de ce type"

Sur Windows:

  1. Accédez à c / Users /
  2. Tout en maintenant la touche Maj enfoncée, cliquez avec le bouton droit sur le fichier .bashrc et sélectionnez "Copier comme chemin"
  3. Dans bash: source <pasteCopiedPathHere>-> par exemple:source "C:\Users\John\.bashhrc"

2

Si vous exécutez le shell ZSH sous MacOS, vous devez réexécuter l'installation et lorsque cette question vous sera posée:

Modify profile to update your $PATH and enable shell command 
completion?

répondre YES

et

Enter a path to an rc file to update, or leave blank to use 
    [/Users/your_user/.bash_profile]:

réponse (votre chemin zshrc): /Users/your_user/.zshrc

Redémarrez Terminal et c'est tout.


1

Les instructions après l'installation ne sont pas claires:

==> Source [/.../google-cloud-sdk/completion.bash.inc] in your profile to enable shell command completion for gcloud.
==> Source [/.../google-cloud-sdk/path.bash.inc] in your profile to add the Google Cloud SDK command line tools to your $PATH.

J'ai dû en fait ajouter les lignes de code suivantes dans mon .bash_profilefor gcloudto work:

source '/.../google-cloud-sdk/completion.bash.inc'
source '/.../google-cloud-sdk/path.bash.inc'

1
sudo ./google-cloud-sdk/install.sh

J'ai couru ceci dans le répertoire racine et cela a fonctionné. J'utilise macOS Mojave version 10.14.3.


1

Si vous utilisez MAC OS et utilisez le shell .zsh , procédez comme suit:

  1. Modifiez votre .zshrcet ajoutez ce qui suit

    # The next line updates PATH for the Google Cloud SDK.
    source /Users/USER_NAME/google-cloud-sdk/path.zsh.inc
    
    # The next line enables zsh completion for gcloud.
    source /Users/USER_NAME/google-cloud-sdk/completion.zsh.inc
    
  2. Créez un nouveau fichier nommé path.zsh.incsous votre répertoire personnel (/ Users / USER_NAME /):

    script_link="$( readlink "$0" )" || script_link="$0"
    apparent_sdk_dir="${script_link%/*}"
    if [ "$apparent_sdk_dir" == "$script_link" ]; then
     apparent_sdk_dir=.
    fi
    sdk_dir="$( cd -P "$apparent_sdk_dir" && pwd -P )"
    bin_path="$sdk_dir/bin"
    export PATH=$bin_path:$PATH
    

En savoir plus sur la documentation officielle


0

J'ai eu le même problème et c'était parce que les déclarations ~/.bash_profileétaient invalides fi.

Le correctif:

  1. Exécuter la commande sudo nano ~/.bash_profile
  2. Suppression des fidéclarations de clôture (celles manquant une ouverture if)
  3. Enregistrer les modifications .bash_profile
  4. Exécuter la commande source ~/.bash_profile

0
$ sudo su
$ /opt/google-appengine-sdk/bin/gcloud components update
$ su <yourusername>

0

Maintenant , après l' exécution install.shen Mac OS, Google se donnant les informations à exécuter completion.bash.incetpath.bash.inc .

Si vous utilisez un zshterminal, il vous demandera d'exécuter completion.zsh.incet path.zsh.inc. S'il vous plaît voir l'image ci-dessous

entrez la description de l'image ici


0

J'ai eu une histoire très différente ici qui s'est avérée être causée par mes environnements virtuels Python .

Quelque part au milieu de l'exécution curl https://sdk.cloud.google.com | bash, j'obtenais une erreur :

~/google-cloud-sdk/install.sh
Welcome to the Google Cloud SDK!
pyenv: python2: command not found

The `python2' command exists in these Python versions:
  2.7.14
  miniconda2-latest

solution J'ai modifié le google-cloud-sdk/install.shscript:

# if CLOUDSDK_PYTHON is empty
if [ -z "$CLOUDSDK_PYTHON" ]; then
  # if python2 exists then plain python may point to a version != 2
  #if _cloudsdk_which python2 >/dev/null; then
  #  CLOUDSDK_PYTHON=python2
  if _cloudsdk_which python2.7 >/dev/null; then
    # this is what some OS X versions call their built-in Python
    CLOUDSDK_PYTHON=python2.7

et a pu exécuter l'installation avec succès. Cependant, je dois toujours activer mon pyenv qui a une python2commande à exécuter gcloud.

pourquoi donc

Si vous regardez le google-cloud-sdk/install.shscript, vous verrez qu'il vérifie en fait les versions de Python de manière très brute:

if [ -z "$CLOUDSDK_PYTHON" ]; then
  # if python2 exists then plain python may point to a version != 2
  if _cloudsdk_which python2 >/dev/null; then
    CLOUDSDK_PYTHON=python2

Cependant, sur ma machine, python2ne pointe pas vers le binaire Python, ni ne renvoie null. Donc l'installation a planté.


0

Essayez de faire cette commande sur Ubuntu / Linux:

sudo ./google-cloud-sdk/install.sh

Fermez le terminal ou ouvrez une nouvelle fenêtre comme le dit le journal:

==> Démarrer un nouveau shell pour que les modifications prennent effet.

Une fois que c'est fait, essayez d'installer n'importe quel paquet par la commande glcloud:

gcloud components install app-engine-php

Cela ne montrera pas l'erreur.


0

En bref:

emacs -nw ~/.zshrc
And add following line at the beginning:

# The next line updates PATH for the Google Cloud SDK.
source '/home/lesaint/GOOGLE_CLOUD/google-cloud-sdk/path.zsh.inc'

#The next lines enables bash completion in Zsh for gcloud. 
autoload -U compinit compdef
compinit
source '/home/lesaint/GOOGLE_CLOUD/google-cloud-sdk/completion.zsh.inc'

La solution proposée par l'article suivant fonctionne pour moi:

Référence: http://www.javatronic.fr/tips/2014/10/17/installing_google_cloud_sdk_on_ubuntu_with_oh-my-zsh.html

Vérifiez ma solution: -bash: gcloud: commande introuvable sur Mac


0

L' utilisation , .zsh shellvous pouvez juste essayer d'ajouter glcouddans la liste du plugin dans le ~/.zshrcfichier.

plugins=(
  gcloud
)

Si cela ne fonctionne pas, essayez ceci: ( réponse mise à jour de Krishna )

  1. Mettre à jour le ~/.zshrcfichier
# Updates PATH for the Google Cloud SDK.
source /Users/austris/google-cloud-sdk/path.zsh.inc

# Enables zsh completion for gcloud.
source /Users/austris/google-cloud-sdk/completion.zsh.inc
  1. Mettez à jour le google-cloud-sdk/path.zsh.incfichier avec les éléments suivants
script_link="$( readlink "$0" )" || script_link="$0" 
apparent_sdk_dir="${script_link%/*}" 
if [[ "$apparent_sdk_dir" == "$script_link" ]]; then
  apparent_sdk_dir=. 
fi
sdk_dir="$( cd -P "$apparent_sdk_dir" && pwd -P )" 
bin_path="$sdk_dir/bin" 
export PATH=$bin_path:$PATH

* il manquait deux crochets à la troisième ligne dans la réponse originale

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.