找不到gcloud命令 - 安装Google Cloud SDK时

时间:2015-06-24 21:21:12

标签: terminal installation google-cloud-storage google-cloud-platform gcloud

我在Mac上,正在尝试使用终端中的此命令安装Google Cloud SDK(包括gcloud命令行实用程序)

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

https://cloud.google.com/sdk/

它一直到最后都已完成,但即使在我重新启动shell之后,gcloud命令仍然说它未找到。

为什么这个安装不起作用?

32 个答案:

答案 0 :(得分:89)

以下是我之前对这个问题的解决方法,但事实证明它不是永久性的。它可以工作,但每次重启终端时,你都必须做同样的事情,这是不切实际的。

因此,我建议您删除当前的google-cloud-sdk目录,然后重做安装。确保(如Zachary所提到的)对提示Modify profile to update your $PATH and enable bash completion? (Y/n)回答是(Y)。

这是我的旧答案,但只是重做安装:

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!

答案 1 :(得分:38)

同样在这里,我试试

select 
    a.meb_id
    ,sum(case when a.meb_id = b.left_id then 1 else 0 end) left_count
    ,sum(case when a.meb_id = b.right_id then 1 else 0 end) right_count 
    ,sum(case when a.meb_id = b.left_id and active = 1 then 1 else 0 end) active_left  
    ,sum(case when a.meb_id = b.right_id and active = 1 then 1 else 0 end) active_right 
from (
    select meb_id from user_count union
    select left_id from user_count union
    select right_id from user_count
) a
cross join user_count b
group by a.meb_id
order by a.meb_id

然后,它工作

答案 2 :(得分:22)

这个对我有用:

source ~/.bash_profile

答案 3 :(得分:22)

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

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

答案 4 :(得分:17)

我今天遇到了这个问题,并在sudo添加install command修复了我在maxOS Sierra上的问题!

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

答案 5 :(得分:11)

我知道这个问题已得到解答,但这是我的两分钱。 安装gcloud之后,您需要在能够执行gcloud命令之前重新启动shell。

如何执行此操作,主要取决于保留shell配置的文件。大多数文件都是.bashrc_profile.bashrc.zshrc

现在可以使用

重新启动

source ~/.bashrc_profile

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

或者如果您不关心您拥有的文件,可以在Mac或Linux上重新启动shell。

exec -l $SHELL

答案 6 :(得分:10)

安装SDK时我使用了这种方法:

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

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

答案 7 :(得分:5)

我必须找到我的bash_profile文件。为此,

  1. 打开终端会话。
  2. 在该会话类型中: 来源.bash_profile然后按回车
  3. 现在,gcloud命令应该可以正常工作

答案 8 :(得分:5)

您只需以root身份执行此命令

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

重启终端就是这样。现在所有命令都应该以root身份执行

答案 9 :(得分:5)

我正在运行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

这假设您已从official docs

在主目录中安装了软件包

答案 10 :(得分: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,现在一切正常!

答案 11 :(得分:3)

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

  1. 下载安装包 Here

  2. 已完成的文件并放入您的文件夹

  3. 打开终端,转到包含文件的文件夹,然后输入以下命令:

     ./google-cloud-sdk/install.sh
    
  4. “修改个人资料以更新您的$PATH并启用bash完成吗?”
      

  5. 输入此路径进行修改:
    /Users/USERNAME_COMPUTER/.bashrc
  6. 所有安装后,输入以下内容:

      source ~/.bashrc
    
  7. 输入此内容以检查安装gcloud:

    gcloud--version

  8. 打开新窗口终端cmd+n 不要关闭旧窗口 ,然后在新窗口中输入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

答案 12 :(得分:2)

如果正在运行

source ~/.bashrc

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

在Windows上:

  1. 转到c / Users /
  2. 在按住shift键的同时,右键单击.bashrc文件并选择“Copy as path”
  3. 在bash中:source <pasteCopiedPathHere> - &gt;例如:source "C:\Users\John\.bashhrc"

答案 13 :(得分:2)

我在if-fi中发现了错误的~/.bash_profile语句 (如果下一个区块中的条件,则为no)

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

fi

我只需删除"fi"并运行"source ~/.bash_profile"即可使其正常运行。

答案 14 :(得分:2)

要在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

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

答案 15 :(得分:2)

除了以上答案外,取决于您的发行版,可能有必要在调用gsutil命令之前从命令行执行bash命令。对于使用tcsh或其他shell作为默认发行版的发行版,就是这种情况。通过输入“ bash”,源将更改为.bashrc文件并执行该文件。

# Step 1
bash
# Step 2
gsutil 
#Step 3: profit!

答案 16 :(得分:2)

使用.zsh shell,您可以尝试在glcoud文件的plugin list中添加~/.zshrc

plugins=(
  gcloud
)

如果这不起作用,请尝试以下操作:(更新的Krishna's答案)

  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
原始答案中缺少第三行的

* 双方括号

答案 17 :(得分: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'

答案 18 :(得分:1)

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

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

answer YES

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

answer(您的zshrc路径):/Users/your_user/.zshrc

仅需重启终端即可。

答案 19 :(得分:1)

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

我在根目录中运行了它,并成功了。我正在运行macOS Mojave版本10.14.3。

答案 20 :(得分:1)

您必须将命令添加到路径

运行

brew info --cask google-cloud-sdk

并找到要附加到~/.zshrc

的行

要添加的行可以从上一个命令的输出中获取。对于zsh用户,应该是这样的:

export CLOUDSDK_PYTHON="/usr/local/opt/python@3.8/libexec/bin/python"
source "/usr/local/Caskroom/google-cloud-sdk/latest/google-cloud-sdk/path.zsh.inc"
source "/usr/local/Caskroom/google-cloud-sdk/latest/google-cloud-sdk/completion.zsh.inc"

(或根据您使用的Shell从命令输出中选择合适的

答案 21 :(得分:0)

通过运行 walk (if type == "array" then map(select( if type == "object" and (.previous and .previous.startDateTime<3 or .current.startDateTime<3) then empty else . end) ) else . end) 检查安装 zip 后,参数 ./google-cloud-sdk/install.sh --help 对我有用。如下使用,

--path-update

它会自动将 PATH 更新添加到 .bashrc(对于不同的 rc 文件,请参阅 ./google-cloud-sdk/install.sh --path-update true 参数)。添加 --rc-path 参数以获得无交互性。

答案 22 :(得分:0)

我的安装失败的原因:

  • 我正在运行zsh终端,std::formatinstall.sh插入我的path.bash.inc

修复:

  1. .bash_profile
  2. cd [whereever]/google-cloud-sdk && ./install.sh
  3. vi ~/.bash_profile的所有实例替换为path.bash.inc

操作系统配置:

  • macOS Catalina
  • zsh

参考:

答案 23 :(得分:0)

如果您是macOS自制zsh用户:

  1. brew cask install google-cloud-sdk

  2. 更新您的〜/ .zshrc:

plugins=(
  ...
  gcloud
)
  1. 打开新外壳。

答案 24 :(得分: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: command not found on Mac

答案 25 :(得分:0)

如果您使用的是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. 在您的主目录(/ Users / USER_NAME /)下创建名为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
    

Official Docs中查看更多内容

答案 26 :(得分:0)

尝试在Ubuntu / Linux上执行以下命令:

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

关闭终端或打开新窗口,日志显示:

  

==>启动新的外壳程序以使更改生效。

完成后,尝试通过glcloud命令安装任何软件包:

gcloud components install app-engine-php

它不会显示错误。

答案 27 :(得分: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命令以运行gcloud的pyenv。

为什么

如果您查看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。因此安装崩溃了。

答案 28 :(得分:0)

我遇到了同样的问题,原因是~/.bash_profile的语句无效fi

修复:

  1. 执行命令sudo nano ~/.bash_profile
  2. 删除了结束fi语句(缺少空缺if
  3. 保存.bash_profile更改
  4. 执行命令source ~/.bash_profile

答案 29 :(得分:0)

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

答案 30 :(得分:0)

现在,在install.sh中运行Mac OS后,Google自己会提供运行completion.bash.incpath.bash.inc的信息。

如果您正在使用zsh终端,则会要求您运行completion.zsh.incpath.zsh.inc。请参阅下面的图片

enter image description here

答案 31 :(得分:-1)

它对我有用:

  1. https://cloud.google.com/sdk/docs/install 下载 SDK
  2. 将存档解压缩到我的主目录(我的家是“nintran”)
  3. 运行“./google-cloud-sdk/bin/gcloud init”