找不到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或其他Shell一起使用。安装程序中的zsh支持即将到来。y安装程序提示时您回答了Modify profile to update your $PATH and enable bash completion? (Y/n)?吗?
扎卡里·纽曼

确实是的,我看到了,但实际上并没有提示我。它没有等待我的回应,所以我没有说是。因此,安装程序没有执行该步骤。我想知道现在如何进行更永久的修复,因为看来我的修复只用了一次,而今天我不得不再次做一次以修复它。有什么建议吗?
smntx

1
实际上,这次我只是重新安装了它,提示也起作用了,所以现在我很好。谢谢
smntx

1
当我安装gcloud时,安装程​​序修改了配置文件(例如~/.bash_profile),但无法重新加载它。运行source ~/.bash_profile修复它。
尼克

Answers:


119

因此,下面是我先前针对此问题的解决方案,但事实证明它不是永久性的。它可以工作,但是每次重新启动Terminal时,您都必须做同样的事情,这是不实际的。

因此,这就是为什么我建议您删除当前的google-cloud-sdk目录,然后仅重做安装的原因。确保(如Zachary所述)对提示回答是(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.inccompletion.zsh.inc文件。
扎卡里·纽曼

3
好答案。这使我免于头痛。
亚历克斯

6
好吧,以我
为例

1
不幸的是,在最新的install.sh中,这不再是一个问题
Phil

1
当前的gcloud安装软件包已经以某种方式分叉了这一步。
乔尼

44

同样在这里,我尝试

source ~/.bashrc

然后,它起作用了


2
没有这样的文件或目录
LKM 2015年


26

在Mac / Linux上,您需要在中输入以下条目~/.bashrc

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

它也可以在Mac上运行。PATH变量将需要设置。
Parth Bhoiwala

@ParthBhoiwala感谢您告诉我,我已经更新了答案。:)
Mapsy

仅在没有“向路径添加变量”提示的新版本中使用答案。
Stanislasdrg恢复莫妮卡的

这个为我工作。我的安装没有自行更新.bashrc。
肖恩·墨菲

20

我今天有这个问题,并加入sudoinstall command对MAXOS塞拉利昂固定我的问题!

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

3
这是唯一帮助我解决Sierra的问题-其他答案均无效。
paqash

2
这也解决了我在macOS v10.13“ High Sierra”上的问题
Maikel

当安装程序要求使用您的bash文件时,您需要放入.zshrc。因此,您需要输入以下内容:/Users/YOU-NAME-USER/.zshrc
Richard Rebeco 18-10-17

17

在Mac OS HIGH Sierra上重新启动后,如何安装GCloud并始终运行:

  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 DONT CLOSE OLD 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之后,需要重新启动Shell才能执行gcloud命令。

如何执行此操作,主要取决于保留Shell配置的文件。大部分文件是.bashrc_profile.bashrc.zshrc

您现在可以重新启动

source ~/.bashrc_profile

您可以将文件替换为您拥有的文件。

或者,如果您不在乎所拥有的文件,则可以在Mac或Linux上重新启动Shell。

exec -l $SHELL


12

安装SDK时,我使用了以下方法:

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

使用原始作者的此方法时,请确保您已接受Mac设置中的安全性首选项,以允许从应用程序商店下载的应用程序和确定的开发人员。


这非常有帮助。谢谢!
蒙娜·贾拉

2
我必须在前面添加sudo
Mike Axle,

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

重新启动终端,一切都将按预期工作!


可以确认这也对我
有用

4

这为我工作:

说后YModify 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

导致“没有这样的文件或目录”

在Windows上:

  1. 转到c /用户/
  2. 按住shift键的同时,右键单击.bashrc文件,然后选择“复制为路径”
  3. 在bash中: source <pasteCopiedPathHere>->例如:source "C:\Users\John\.bashhrc"

2

如果您在MacOS中运行ZSH Shell,则应重新运行安装程序,并在系统询问此问题时:

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_profilegcloud工作中实际添加以下代码行:

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 OS并使用.zsh shell,请执行以下操作:

  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
    

查看更多@ Official Docs


0

我有同样的问题,这是因为语句~/.bash_profile无效fi

解决方法:

  1. 执行命令 sudo nano ~/.bash_profile
  2. 删除了结束fi声明(那些缺少开头的声明if
  3. 保存.bash_profile更改
  4. 执行命令 source ~/.bash_profile


0

现在,在运行install.shMac OS,谷歌本身会提供运行信息completion.bash.incpath.bash.inc

如果您使用zsh终端,它将要求您运行completion.zsh.incpath.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

并能够成功运行安装。但是,我仍然需要激活具有python2命令run的pyenv 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

它不会显示错误。


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

* 原答案中缺少第三行的双方括号

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.