Команда gcloud не найдена - при установке Google Cloud SDK

116

Я использую Mac и пытаюсь установить Google Cloud SDK (включая утилиту командной строки gcloud) с помощью этой команды в терминале

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

как показано на https://cloud.google.com/sdk/

Он дошел до конца и закончил, но даже после того, как я перезапустил свою оболочку, gcloudкоманда все еще говорит, что не найдена.

Почему эта установка не работает?

smntx
источник
4
Какую оболочку вы используете? Программа установки предложит обновить .bashrcфайл, но (пока) не работает с zsh или другими оболочками. Поддержка zsh в установщике находится на подходе. Вы ответили, yкогда установщик запросил Modify profile to update your $PATH and enable bash completion? (Y/n)??
Zachary Newman,
На самом деле да, я это видел, но на самом деле это меня не подсказало. Он не дождался моего ответа, поэтому я не смог сказать ДА. Следовательно, установщик не выполнил этот шаг. Мне интересно, как сделать более постоянное исправление сейчас, потому что похоже, что мое исправление сработало только один раз, и мне пришлось сделать это снова сегодня, чтобы исправить это снова. Предложения?
smntx
1
На самом деле я просто переустановил его на этот раз, и подсказка сработала, так что теперь у меня все в порядке. Спасибо
smntx
1
Когда я установил gcloud, установка изменила профиль (например ~/.bash_profile), но не смогла его перезагрузить. Бег source ~/.bash_profileисправил это.
nick

Ответы:

119

Итак, ниже представлено мое предыдущее исправление этой проблемы, но оказалось, что это не навсегда. Это работает, но каждый раз, когда вы перезапускаете Терминал, вам придется делать то же самое, что непрактично.

Вот почему я предлагаю вам удалить текущий каталог google-cloud-sdk и просто повторить установку. Обязательно (как упомянул Захари) ответьте утвердительно (Y) на приглашение Modify profile to update your $PATH and enable bash completion? (Y/n).

Вот мой старый ответ, но просто повторите установку:

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!
smntx
источник
20
Для Zsh, имеются соответствующие path.zsh.incи completion.zsh.incфайлы.
Zachary Newman,
3
Отличный ответ. Это избавило меня от головной боли.
Alex
6
Ну, ребята, в моем случае я просто забыл закрыть и открыть окно терминала после установки .... надеюсь, что это поможет любому телу: D
NFRiaCowboy
1
К сожалению, в последней версии install.sh это больше не вопрос
Фил
1
Текущий установочный пакет gcloud каким-то образом развил этот шаг.
Джонни
44

То же самое, я пытаюсь

source ~/.bashrc

Затем это сработало

nvcken
источник
2
Нет такого файла или каталога
LKM
29

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

source ~/.bash_profile
Мирза Ву
источник
2
Майк
сначала, export PATH="/usr/lib/google-cloud-sdk/bin:$PATH"затем эту команду выше.
Бира
26

На Mac / Linux вам нужно будет ввести следующую запись в свой ~/.bashrc:

export PATH="/usr/lib/google-cloud-sdk/bin:$PATH"
Mapsy
источник
Он работал и на Mac. Переменная PATH должна быть установлена.
Парт Бхойвала
@ParthBhoiwala Спасибо, что сообщили мне, я обновил ответ. :)
Mapsy 09
Отвечайте только при работе с новой версией, где отсутствует подсказка «добавить переменные в путь».
Stanislasdrg Reinstate Monica
Этот сработал для меня. Моя установка не обновляла .bashrc сама по себе.
Шон Мерфи
20

У меня была эта проблема сегодня, и я добавил sudoк install commandисправленной моей проблеме на maxOS Sierra!

sudo ./google-cloud-sdk/install.sh
Ибрагим
источник
3
Это единственное, что помогло мне на Sierra - ни один из других ответов не помог.
paqash
2
Это также устранило мою проблему на macOS v10.13 «High Sierra»
Майкель
вам нужно поместить .zshrc, когда программа установки запросит файл bash, который вас использует. так что вам нужно поставить несколько таких: /Users/YOU-NAME-USER/.zshrc
Ричард Ребеко
17

Как установить GCloud и всегда работать после перезагрузки в Mac OS HIGH Sierra:

  1. Загрузите установочный пакет здесь

  2. Получил файл и закинул в свою папку

  3. Откройте терминал, перейдите в папку с файлом и введите эту команду:

     ./google-cloud-sdk/install.sh
    
  4. "Изменить профиль, чтобы обновить ваш $PATHи включить завершение bash?"
    да

  5. Введите этот путь для изменения:
    /Users/USERNAME_COMPUTER/.bashrc
  6. После установки введите следующее:

      source ~/.bashrc
    
  7. Введите это, чтобы проверить установку gcloud:

    gcloud - -версия

  8. Открыть новое окно терминала cmd+n НЕ ЗАКРЫВАЙТЕ СТАРОЕ ОКНО и войдите в новое окноgcloud version

    если: «команда не найдена» перейти к шагу 9

    else: Поздравляем, GCloud работает в терминале

  9. Вернитесь в старое окно, введите echo $PATH и скопируйте путь к GCloud

  10. Откройте BASH_PROFILE:

    open ~/.bash_profile
    
  11. Введите путь к новому Bash:

    « export PATH="/Users/USERNAME_COMPUTER/google-cloud-sdk/bin:$PATH" »
    
  12. Вернуться к шагу 8

Максим Вакурин
источник
13

Я знаю, что на этот вопрос есть ответ, но вот мои два цента. После установки gcloud вам необходимо перезапустить оболочку, прежде чем вы сможете использовать команду gcloud.

Как вы это делаете, в основном зависит от файла, в котором вы храните конфигурацию оболочки. Большинство файлов .bashrc_profile, .bashrc, .zshrc.

Теперь вы можете перезапустить

source ~/.bashrc_profile

Вы можете заменить файл на уже имеющийся.

Или, если вам все равно, какой файл у вас есть, на Mac или Linux вы можете перезапустить оболочку.

exec -l $SHELL

Kanyi
источник
12

При установке SDK я использовал такой метод:

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

При использовании этого метода от первоначального автора убедитесь, что вы приняли параметры безопасности в настройках Mac, чтобы приложения могли загружаться из магазина приложений и идентифицированных разработчиков.

IOT Интернет вещей
источник
Это было очень полезно. Спасибо!
Мона Джалал,
2
Мне пришлось добавить sudo впереди
Майк Эксл
10

Вам просто нужно выполнить эту команду как root

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

Перезагрузите терминал и все. Теперь все команды должны выполняться от имени root

Джон Салазар
источник
9

Я запускаю zsh и считаю эту суть очень полезной: https://gist.github.com/dwchiang/10849350

Отредактируйте файл ~ / .zshrc, включив в него эти две строки:

# 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

Предполагается, что вы установили пакет в свой основной каталог из официальных документов.

Коннор Лич
источник
7

Мне пришлось использовать файл bash_profile. Для этого

  1. Откройте сеанс терминала.
  2. В этом типе сеанса: source .bash_profile, а затем нажмите ввод

Теперь команда gcloud должна работать

MG Денвер
источник
5

Чтобы запустить его на MacOs Sierra, после установки gcloud я изменил свой .bash_profile

Исходные строки:

# 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

обновлено до:

# 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

Перезагрузите терминал и все станет работать как положено!

Alejandro
источник
Могу подтвердить, что это сработало и для меня (с zsh)
Джоши
4

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

После того, как говорят YвModify profile to update your $PATH and enable bash completion? (Y/n)?

Инициация Google предлагает это:, Enter a path to an rc file to update, or leave blank to useа путь по умолчанию был: [/Users/MY_USERSAME/.bash_profile]:но вместо нажатия enterя написал: /Users/MY_USERNAME/.bashrcизменить путь.

Это перезапишет местоположение по умолчанию, предложенное Google.

Тогда мне оставалось только сделать, source ~/.bashrcи теперь все работает!

Thierry
источник
Это устранило мою проблему. Я набирал ~ / .bash_profile, и установка не обновляла путь, но и не выводила ошибку.
Джуд Осборн
2

Я нашел неправильные if-fiутверждения в моем ~/.bash_profile (нет условия if в следующем блоке)

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

fi

Мне просто пришлось снять "fi"и бежать, "source ~/.bash_profile"чтобы он заработал.

Kashnitsky
источник
2

Если работает

source ~/.bashrc

приводит к "Нет такого файла или каталога"

В окнах:

  1. Перейдите в c / Users /
  2. Удерживая нажатой клавишу Shift, щелкните правой кнопкой мыши файл .bashrc и выберите «Копировать как путь».
  3. В bash: source <pasteCopiedPathHere>-> например:source "C:\Users\John\.bashhrc"
Себастьян
источник
2

Если вы используете оболочку ZSH в MacOS, вам следует перезапустить установку, и когда вам будет задан этот вопрос:

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

ответ YES

и

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

ответ (ваш путь zshrc): /Users/your_user/.zshrc

Перезагрузите Терминал и все.

Фелипе Перейра
источник
1

Инструкции после установки неясны:

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

Я должен был на самом деле добавить следующие строки кода по моему .bash_profileдля gcloudк работе:

source '/.../google-cloud-sdk/completion.bash.inc'
source '/.../google-cloud-sdk/path.bash.inc'
отрицать это
источник
1
sudo ./google-cloud-sdk/install.sh

Я запустил это в корневом каталоге, и это сработало. Я использую macOS Mojave версии 10.14.3.

user3552803
источник
1

Если вы работаете в ОС MAC и используете оболочку .zsh, сделайте следующее:

  1. Отредактируйте свой .zshrcи добавьте следующие

    # 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. Создайте новый файл с именем path.zsh.incв вашем домашнем каталоге (/ 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
    

Узнать больше в официальных документах

Кришна
источник
0

У меня была такая же проблема, потому что ~/.bash_profileу меня были недопустимые fiутверждения.

Исправление:

  1. Выполнить команду sudo nano ~/.bash_profile
  2. Удалены закрывающие fiзаявления (те, у которых отсутствует начало if)
  3. Сохраните изменения .bash_profile
  4. Выполнить команду source ~/.bash_profile
Джон Доэрти
источник
0
$ sudo su
$ /opt/google-appengine-sdk/bin/gcloud components update
$ su <yourusername>
Тьяго Феррейра
источник
0

Теперь после запуска install.shв Mac OS, Google сам дает информацию для запуска completion.bash.incи path.bash.inc.

Если вы используете zshтерминал, он попросит вас запустить completion.zsh.incи path.zsh.inc. См. Изображение ниже

введите описание изображения здесь

arthankamal
источник
0

У меня здесь была совсем другая история, которая, как оказалось, была вызвана моим виртуальными средами Python .

Где-то в середине работы curl https://sdk.cloud.google.com | bashя получал ошибку :

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

решение Я изменил google-cloud-sdk/install.shсценарий:

# 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

и смог успешно запустить установку. Однако мне все еще нужно активировать мой pyenv, у которого есть python2команда для запускаgcloud .

почему так

Если вы посмотрите на google-cloud-sdk/install.shскрипт, вы увидите, что он на самом деле очень грубо проверяет версии Python:

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

Однако на моем компьютере python2не указывает на двоичный файл Python и не возвращает значение null. Так что установка рухнула.

алиса
источник
0

Попробуйте выполнить эту команду в Ubuntu / Linux:

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

Закройте терминал или откройте новое окно, как говорится в журнале:

==> Запустите новую оболочку, чтобы изменения вступили в силу.

Как только это будет сделано, попробуйте установить любой пакет командой glcloud:

gcloud components install app-engine-php

Ошибка не будет отображаться.

Jaymin
источник
0

Коротко:

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'

Мне подходит решение, предложенное в следующей статье:

Ссылка: http://www.javatronic.fr/tips/2014/10/17/installing_google_cloud_sdk_on_ubuntu_with_oh-my-zsh.html.

Проверьте мое решение: -bash: gcloud: команда не найдена на Mac

Фрэнсис Хэ
источник
0

Использование .zsh shellВы можете просто попытаться добавить glcoudв плагин список в ~/.zshrcфайле.

plugins=(
  gcloud
)

Если это не сработает, попробуйте следующее: (обновленный ответ Кришны )

  1. Обновите ~/.zshrcфайл
# 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. Обновите google-cloud-sdk/path.zsh.incфайл следующим образом
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

* в исходном ответе отсутствовали двойные квадратные скобки в третьей строке

Аустрис Цирулниекс
источник