Команда gcloud не знайдена - під час встановлення Google Cloud SDK


116

Я на Mac і намагаюся встановити Google Cloud SDK (включаючи утиліту командного рядка gcloud) за допомогою цієї команди в терміналі

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

як видно на https://cloud.google.com/sdk/

Він закінчився до кінця і закінчився, але навіть після того, як я перезапустив свою оболонку, gcloudкоманда все ще говорить, що її не знайдено.

Чому ця установка не працює?


4
Яку оболонку ви використовуєте? Інсталятор вимагає оновити .bashrcфайл, але не працює (ще) з zsh або іншими оболонками. Підтримка zsh у програмі встановлення. Ви відповіли, yколи інсталятор запропонував Modify profile to update your $PATH and enable bash completion? (Y/n)??
Захарій Ньюмен

Насправді так, я це бачив, але насправді це не підказало мені. Він не дочекався моєї відповіді, тому я не зміг сказати ТАК. Тому інсталятор цього кроку не зробив. Мені цікаво, як зробити більш постійне виправлення зараз, тому що, здається, моє виправлення працювало лише один раз, і мені довелося це зробити ще раз сьогодні, щоб знову його виправити. Пропозиції?
smntx

1
Насправді я цього разу лише заново встановив його, і підказки спрацювали, тому зараз у мене все добре. Дякую
smntx

1
Коли я встановив gcloud, установка змінила профіль (наприклад ~/.bash_profile), але не вдалося його перезавантажити. Запуск source ~/.bash_profileвиправлено це.
нік

Відповіді:


119

Отже нижче моє попереднє виправлення цієї проблеми, але виявляється, воно не є постійним. Це працює, але щоразу, коли ви перезапускаєте Terminal, вам доведеться робити те саме, що не практично.

Тому я пропоную видалити поточний каталог 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!

20
Для zsh є відповідні path.zsh.incта completion.zsh.incфайли.
Захарій Ньюмен

3
Чудова відповідь. Це врятувало мене від головного болю.
Олексій

6
Ну, хлопці, у моєму випадку я просто забув закрити та відкрити вікно терміналу після встановлення .... сподіваюся, що це допоможе будь-якому органу: D
NFRiaCowboy

1
На жаль, це вже не питання в останньому install.sh
Phil

1
Поточний пакет встановлення gcloud якось посилив цей крок.
Jonny

44

Тут же я і намагаюся

source ~/.bashrc

Потім, це спрацювало


2
Немає такого файлу чи каталогу
LKM


26

Для Mac / Linux вам потрібно буде ввести наступний запис у своєму ~/.bashrc:

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

Це працювало і на mac. Потрібно встановити змінну PATH.
Parth Bhoiwala

@ParthBhoiwala Дякую за те, що повідомили мені, що я оновив відповідь. :)
Mapsy

Відповідайте лише на роботу з новою версією, де рядок "додавання змінних до шляху" відсутній.
Станісладрг відновлює Моніку

Цей працював на мене. Моя установка не оновила .bashrc самостійно.
Шон Мерфі

20

Сьогодні у мене був це питання, і додавши sudoдо install commandфіксованим моїх проблем на MaxOS Sierra!

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

3
Це єдине, що мені допомогло на Сьєррі - жодна з інших відповідей не спрацювала.
paqash

2
Це також вирішило мою проблему на macOS v10.13 "Висока Сьєрра"
Майкл

вам потрібно поставити .zshrc, коли програма інсталяції запитає файл файлу, який використовує вас. тому вам потрібно поставити щось подібне: /Users/YOU-NAME-USER/.zshrc
Річард Ребеко

17

Як встановити GCloud і завжди працює після перезавантаження на Mac OS HIGH Sierra:

  1. Завантажте інсталяційний пакет тут

  2. Отриманий файл і папка у вашій папці

  3. Відкрийте термінал, перейдіть до папки з файлом і введіть цю команду:

     ./google-cloud-sdk/install.sh
    
  4. "Змінити профіль, щоб оновити свою програму $PATHта включити баш?"
    Так

  5. Введіть цей шлях, щоб змінити:
    /Users/USERNAME_COMPUTER/.bashrc
  6. Після встановлення введіть це:

      source ~/.bashrc
    
  7. Введіть це, щоб перевірити встановлення gcloud:

    gcloud - -вертання

  8. Відкрийте новий термінал вікна cmd+n DONT CLOSE WARDDON WINDOW і введіть у нове вікноgcloud version

    якщо: «команда не знайдена» перейдіть до кроку 9

    інше: Вітаємо роботу 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


12

Під час встановлення SDK я використовував цей метод:

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

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


Це було дуже корисно. Дякую!
Мона Джалал

2
Мені довелося додати судо попереду
Майк Вісь

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 і натисніть клавішу Enter

Тепер команда gcloud повинна працювати


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

Перезапустіть термінал і всі приступайте до роботи, як очікувалося!


Можу підтвердити, що це працювало і для мене (з zsh)
SJoshi

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і все працює зараз!


Це вирішило мою проблему. Я вводив ~ / .bash_profile, і установка не оновлювала шлях, але також не виводила помилку.
Джуд Осборн

2

Я знайшов неправильні if-fiтвердження у своєму ~/.bash_profile (ні, якщо умова в наступному блоці)

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

fi

Мені просто довелося зняти "fi"і запустити, "source ~/.bash_profile"щоб це спрацювало.


2

Якщо працює

source ~/.bashrc

призводить до "Немає такого файлу чи каталогу"

На вікнах:

  1. Перейти до c / Користувачі /
  2. Утримуючи зрушення, клацніть правою кнопкою миші файл .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.


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під домашнім каталогом (/ Користувачі / 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

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

Якщо ви використовуєте zshтермінал, він попросить вас запустити completion.zsh.incі path.zsh.inc. Будь ласка, дивіться зображення нижче

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


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, а також не повертається до нуля. Так установка зазнала краху.


0

Спробуйте виконати цю команду в Ubuntu / Linux:

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

Закрийте термінал або відкрийте нове вікно, коли в журналі написано:

==> Запустіть нову оболонку, щоб зміни набрали чинності.

Після цього спробуйте встановити будь-який пакет командою glcloud:

gcloud components install app-engine-php

Він не відображатиме помилку.


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

* подвійні квадратні дужки в третьому рядку відсутні в початковій відповіді

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.