Befehl gcloud nicht gefunden - während der Installation von Google Cloud SDK


116

Ich bin auf einem Mac und versuche, das Google Cloud SDK (einschließlich des Befehlszeilenprogramms gcloud) mit diesem Befehl im Terminal zu installieren

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

wie unter https://cloud.google.com/sdk/ zu sehen

Es ging bis zum Ende und endete, aber selbst nachdem ich meine Shell neu gestartet habe, gcloudsagt der Befehl immer noch, dass es nicht gefunden wurde.

Warum funktioniert diese Installation nicht?


4
Welche Shell benutzt du? Das Installationsprogramm fordert Sie zum Aktualisieren Ihrer .bashrcDatei auf, funktioniert jedoch (noch) nicht mit zsh oder anderen Shells. Die zsh-Unterstützung im Installationsprogramm ist unterwegs. Haben Sie geantwortet, yals das Installationsprogramm Sie dazu aufforderte Modify profile to update your $PATH and enable bash completion? (Y/n)??
Zachary Newman

Eigentlich ja, das habe ich gesehen, aber es hat mich nicht dazu veranlasst. Es hat nicht auf meine Antwort gewartet, also konnte ich nicht JA sagen. Daher hat das Installationsprogramm diesen Schritt nicht ausgeführt. Ich frage mich, wie ich jetzt eine dauerhaftere Korrektur vornehmen kann, da meine Korrektur anscheinend nur einmal funktioniert hat und ich sie heute erneut ausführen musste, um sie erneut zu beheben. Vorschläge?
smntx

1
Eigentlich habe ich es dieses Mal einfach neu installiert und die Eingabeaufforderung hat funktioniert, also bin ich jetzt alle gut. Danke
smntx

1
Bei der Installation von gcloud hat die Installation das Profil geändert (z. B. ~/.bash_profile), konnte es jedoch nicht neu laden. Laufen source ~/.bash_profilebehoben.
Nick

Antworten:


119

Unten ist meine vorherige Lösung für dieses Problem aufgeführt, aber es stellt sich heraus, dass es nicht dauerhaft ist. Es funktioniert, aber jedes Mal, wenn Sie Terminal neu starten, müssen Sie dasselbe tun, was nicht praktikabel ist.

Aus diesem Grund schlage ich vor, dass Sie das aktuelle Verzeichnis google-cloud-sdk löschen und die Installation wiederholen. Stellen Sie sicher (wie Zachary erwähnt hat), dass Sie die Eingabeaufforderung mit Ja (Y) beantworten Modify profile to update your $PATH and enable bash completion? (Y/n).

Hier ist meine alte Antwort, aber wiederholen Sie einfach die 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
Für zsh gibt es entsprechende path.zsh.incund completion.zsh.incDateien.
Zachary Newman

3
Gute Antwort. Das hat mich vor Kopfschmerzen bewahrt.
Alex

6
Nun Leute in meinem Fall, ich habe nur vergessen, das Terminalfenster nach der Installation zu schließen und zu öffnen ... hoffe, dies hilft jedem Körper: D
NFRiaCowboy

1
Leider ist dies keine Frage mehr in der neuesten install.sh
Phil

1
Das aktuelle gcloud-Installationspaket hat diesen Schritt irgendwie beschleunigt.
Jonny

44

Gleich hier versuche ich

source ~/.bashrc

Dann hat es funktioniert


2
Keine solche Datei oder Verzeichnis
LKM

29

Dieser hat für mich gearbeitet:

source ~/.bash_profile

2
Arbeitete auch für mich
Mike Boutin

zuerst export PATH="/usr/lib/google-cloud-sdk/bin:$PATH"dann dieser Befehl oben.
Bira

26

Unter Mac / Linux müssen Sie den folgenden Eintrag in Ihr Feld eingeben ~/.bashrc:

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

Es funktionierte auch auf dem Mac. Die Variable PATH muss gesetzt werden.
Parth Bhoiwala

@ParthBhoiwala Danke, dass du mich informiert hast, ich habe die Antwort aktualisiert. :)
Mapsy

Beantworten Sie nur die Arbeit mit der neuen Version, bei der die Eingabeaufforderung "Variablen zum Pfad hinzufügen" fehlt.
Stanislasdrg Reinstate Monica

Dieser hat für mich gearbeitet. Meine Installation hat .bashrc nicht selbst aktualisiert.
Sean Murphy

20

Ich hatte dieses Problem heute und fügte hinzu sudo, dass install commandmein Problem auf maxOS Sierra behoben wurde!

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

3
Dies ist das einzige, was mir in Sierra geholfen hat - keine der anderen Antworten hat funktioniert.
Paqash

2
Dies hat auch mein Problem auf macOS v10.13 "High Sierra"
Maikel

Sie müssen die .zshrc-Datei einfügen, wenn das Installationsprogramm nach der von Ihnen verwendeten Datei-Bash fragt. Also müssen Sie einige davon setzen: /Users/YOU-NAME-USER/.zshrc
Richard Rebeco

17

So installieren Sie GCloud und funktioniert immer nach dem Neustart unter Mac OS HIGH Sierra:

  1. Installationspaket hier herunterladen

  2. Datei erreicht und in Ihrem Ordner ablegen

  3. Öffnen Sie das Terminal, gehen Sie zu Ihrem Ordner mit der Datei und geben Sie den folgenden Befehl ein:

     ./google-cloud-sdk/install.sh
    
  4. "Profil ändern, um Ihr $PATHBash zu aktualisieren und den Bash-Abschluss zu aktivieren?"
    Ja

  5. Geben Sie diesen Pfad zum Ändern ein:
    /Users/USERNAME_COMPUTER/.bashrc
  6. Geben Sie nach der Installation Folgendes ein:

      source ~/.bashrc
    
  7. Geben Sie dies ein, um die Installation von gcloud zu überprüfen:

    gcloud - -Version

  8. Öffnen Sie das neue Fensterterminal. cmd+n Schließen Sie nicht das alte Fenster und betreten Sie das neue Fenstergcloud version

    Wenn: «Befehl nicht gefunden», fahren Sie mit Schritt 9 fort

    sonst: Herzlichen Glückwunsch GCloud Arbeit im Terminal

  9. echo $PATH Kehren Sie zum alten Fenster zurück und geben Sie den Pfad zu GCloud ein und kopieren Sie ihn

  10. Öffnen Sie BASH_PROFILE:

    open ~/.bash_profile
    
  11. Pfad zum neuen Bash eingeben:

    « export PATH="/Users/USERNAME_COMPUTER/google-cloud-sdk/bin:$PATH" »
    
  12. Kehren Sie zu Schritt 8 zurück


13

Ich weiß, dass diese Frage beantwortet wurde, aber hier sind meine zwei Cent. Nach der Installation von gcloud müssen Sie die Shell neu starten, bevor Sie den Befehl gcloud ausführen können.

Wie Sie dies tun, hängt hauptsächlich von der Datei ab, in der Sie Ihre Shell-Konfiguration beibehalten. Die meisten Dateien sind .bashrc_profile, .bashrc, .zshrc.

Sie können jetzt mit neu starten

source ~/.bashrc_profile

Sie können die Datei durch die Datei ersetzen, die Sie haben.

Wenn Ihnen die Datei egal ist, können Sie die Shell unter Mac oder Linux neu starten.

exec -l $SHELL


12

Bei der Installation des SDK habe ich folgende Methode verwendet:

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

Wenn Sie diese Methode des ursprünglichen Autors verwenden, stellen Sie sicher, dass Sie die Sicherheitseinstellungen in Ihren Mac-Einstellungen akzeptiert haben, damit Apps aus dem App Store heruntergeladen und Entwickler identifiziert werden können.


Das war sehr hilfreich. Vielen Dank!
Mona Jalal

2
Ich musste den Sudo vorne hinzufügen
Mike Axle

10

Sie müssen diesen Befehl nur als root ausführen

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

Starten Sie das Terminal neu und fertig. Jetzt sollten alle Befehle als root ausgeführt werden


9

Ich verwende zsh und fand dieses Wesentliche sehr hilfreich: https://gist.github.com/dwchiang/10849350

Bearbeiten Sie die Datei ~ / .zshrc so , dass diese beiden Zeilen enthalten sind:

# 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

Dies setzt voraus, dass Sie das Paket aus den offiziellen Dokumenten in Ihrem Hauptverzeichnis installiert haben


7

Ich musste meine bash_profile-Datei als Quelle angeben. Um dies zu tun,

  1. Öffnen Sie eine Terminalsitzung.
  2. Geben Sie in dieser Sitzung Folgendes ein: source .bash_profile und drücken Sie die Eingabetaste

Jetzt sollte der Befehl gcloud funktionieren


5

Um es auf MacOs Sierra zu starten, habe ich nach der Installation von gcloud mein .bash_profile geändert

Originallinien:

# 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

aktualisiert auf:

# 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

Starten Sie das Terminal neu und alle funktionieren wie erwartet!


Kann bestätigen, dass dies auch für mich funktioniert hat (mit zsh)
SJoshi

4

Das hat bei mir funktioniert:

Nachdem ich Yzu gesagt habeModify profile to update your $PATH and enable bash completion? (Y/n)?

Die Google-Initiierung fordert dies auf: Enter a path to an rc file to update, or leave blank to useund der Standardpfad war: [/Users/MY_USERSAME/.bash_profile]:Aber anstatt zu drücken enter, schrieb ich: /Users/MY_USERNAME/.bashrcum den Pfad zu ändern.

Dies würde den von Google vorgeschlagenen Standardspeicherort überschreiben.

Damals musste ich nur noch source ~/.bashrcund jetzt funktioniert alles!


Dies hat mein Problem behoben. Ich habe ~ / .bash_profile eingegeben und die Installation hat den Pfad nicht aktualisiert, sondern auch keinen Fehler ausgegeben.
Jude Osborn

2

Ich habe falsche if-fiAnweisungen in meinem gefunden ~/.bash_profile (nein, wenn Bedingung im nächsten Block)

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

fi

Ich musste nur entfernen "fi"und rennen "source ~/.bash_profile", damit es funktioniert.


2

Wenn läuft

source ~/.bashrc

führt zu "Keine solche Datei oder Verzeichnis"

Unter Windows:

  1. Gehen Sie zu c / Users /
  2. Klicken Sie bei gedrückter Umschalttaste mit der rechten Maustaste auf die .bashrc-Datei und wählen Sie "Als Pfad kopieren".
  3. In bash: source <pasteCopiedPathHere>-> zum Beispiel:source "C:\Users\John\.bashhrc"

2

Wenn Sie die ZSH-Shell unter MacOS ausführen, sollten Sie die Installation erneut ausführen und wenn Sie nach dieser Frage gefragt werden:

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

Antworten YES

und

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

Antwort (Ihr zshrc-Pfad): /Users/your_user/.zshrc

Starten Sie das Terminal neu und das ist alles.


1

Anweisungen nach der Installation sind nicht klar:

==> 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.

Ich musste tatsächlich die folgenden Codezeilen in meinem hinzufügen .bash_profilefür gcloudzu arbeiten:

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

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

Ich habe dies im Stammverzeichnis ausgeführt und es hat funktioniert. Ich verwende macOS Mojave Version 10.14.3.


1

Wenn Sie unter MAC OS arbeiten und die .zsh- Shell verwenden, gehen Sie wie folgt vor:

  1. Bearbeiten Sie Ihre .zshrcund fügen Sie Folgendes hinzu

    # 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. Erstellen Sie eine neue Datei mit dem Namen path.zsh.incunter Ihrem Home-Verzeichnis (/ 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
    

Kasse mehr @ Official Docs


0

Ich hatte das gleiche Problem und es lag daran, dass die Aussagen ~/.bash_profileungültig waren fi.

Die Reparatur:

  1. Befehl ausführen sudo nano ~/.bash_profile
  2. Abschließende fiAnweisungen entfernt (diejenigen, denen eine Öffnung fehlt if)
  3. Speichern Sie die Änderungen an .bash_profile
  4. Befehl ausführen source ~/.bash_profile

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

0

Jetzt nach dem Laufen install.shin Mac OS, Google selbst die Informationen geben zu laufen completion.bash.incund path.bash.inc.

Wenn Sie ein zshTerminal verwenden, werden Sie aufgefordert, completion.zsh.incund auszuführen path.zsh.inc. Bitte sehen Sie das Bild unten

Geben Sie hier die Bildbeschreibung ein


0

Ich hatte hier eine ganz andere Geschichte, die sich durch meine virtuellen Python-Umgebungen verursachte .

Irgendwo mitten im Laufen curl https://sdk.cloud.google.com | bashbekam ich einen Fehler :

~/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

Lösung Ich habe das google-cloud-sdk/install.shSkript geändert :

# 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

und konnte die Installation erfolgreich ausführen. Ich muss jedoch noch mein pyenv aktivieren, das den python2Befehl zum Ausführen hat gcloud.

warum so

Wenn Sie sich das google-cloud-sdk/install.shSkript ansehen , werden Sie feststellen, dass es tatsächlich sehr brutal nach Python-Versionen sucht :

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

Auf meinem Computer wird python2jedoch nicht auf Python-Binärdateien verwiesen, und es wird auch keine Null zurückgegeben. Also stürzte die Installation ab.


0

Versuchen Sie diesen Befehl unter Ubuntu / Linux auszuführen:

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

Schließen Sie das Terminal oder öffnen Sie ein neues Fenster, wie im Protokoll angegeben:

==> Starten Sie eine neue Shell, damit die Änderungen wirksam werden.

Versuchen Sie anschließend, ein Paket mit dem Befehl glcloud zu installieren:

gcloud components install app-engine-php

Der Fehler wird nicht angezeigt.


0

Zusamenfassend:

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'

Die im folgenden Artikel vorgeschlagene Lösung funktioniert für mich:

Referenz: http://www.javatronic.fr/tips/2014/10/17/installing_google_cloud_sdk_on_ubuntu_with_oh-my-zsh.html

Überprüfen Sie meine Lösung: -bash: gcloud: Befehl auf Mac nicht gefunden


0

Verwenden .zsh shellSie können nur versuchen , hinzuzufügen , glcoudin Plugin - Liste in der ~/.zshrcDatei.

plugins=(
  gcloud
)

Wenn das nicht funktioniert, versuchen Sie Folgendes: (aktualisierte Krishnas Antwort)

  1. Aktualisieren Sie die ~/.zshrcDatei
# 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. Aktualisieren Sie die google-cloud-sdk/path.zsh.incDatei wie folgt
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

* Doppelte eckige Klammern in der dritten Zeile fehlten in der ursprünglichen Antwort

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.