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

我在一台 Mac 电脑上,正试图在终端中使用这个命令安装 Google Cloud SDK (包括 gcloud 命令行实用程序)

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

就像在 https://cloud.google.com/sdk/上看到的那样

它一直运行到最后并且完成了,但是即使在我重新启动 shell 之后,gcloud命令仍然表示找不到它。

为什么这个装置不工作了?

320298 次浏览

因此,下面是我以前对这个问题的修复,但它并不是永久性的。它工作,但每次你重新启动终端,你必须做同样的事情,这是不切实际的。

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

这是我以前的答案,但只需要重新安装:

我也有同样的问题,gcloud不适合我。但是,在我刚刚安装的 google-cloud-sdk文件夹(我的 home目录)的同一个目录中,我找到了这个名为 test的文件。在这个 test文件中,我发现了两个命令:

# 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'

在终端运行这两个 source命令后,gcloud工作了!

我必须找到 bash _ profile 文件的源代码,

  1. 打开终端会话。
  2. 在该会话类型中: Bash _ profile,然后按回车

现在,gcloud 命令应该可以工作了

我也是

source ~/.bashrc

然后,成功了

我在我的 ~/.bash_profile中发现了不正确的 if-fi语句 (在下一个块中没有 if 条件)

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

fi

我只需要删除 "fi"和运行 "source ~/.bash_profile"使它工作。

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

解决办法:

  1. 执行命令 sudo nano ~/.bash_profile
  2. 删除了结束 fi语句 (缺少一个开口 if)
  3. 保存. bash _ profile 更改
  4. 执行命令 source ~/.bash_profile
$ sudo su
$ /opt/google-appengine-sdk/bin/gcloud components update
$ su <yourusername>

这个对我很管用:

source ~/.bash_profile

这对我很有效:

在说完 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来更改路径。

这将覆盖谷歌建议的默认位置。

然后,我只需要做 source ~/.bashrc和一切工作现在!

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

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

如果逃跑的话

source ~/.bashrc

结果是“没有这样的文件或目录”

在窗户上:

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

安装后的说明不清楚:

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

我今天有这个问题,并添加 sudoinstall command固定我的问题在 maxOS 塞拉利昂!

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

我正在运行 zsh,发现这个要点非常有用: https://gist.github.com/dwchiang/10849350

编辑 ~/. zhrc文件以包括以下两行:

# 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

这假设您从 官方文件安装了主目录中的包

现在在 Mac OS中运行 install.sh之后,google 自己给出了运行 completion.bash.incpath.bash.inc的信息。

如果你使用 zsh终端,它会要求你运行 completion.zsh.incpath.zsh.inc。请看下面的图像

enter image description here

您只需以 root 用户身份执行这个命令

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

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

我知道这个问题已经得到了答案,但这是我的两分钱。 在安装 gcloud 之后,需要重新启动 shell,然后才能使用 gcloud 命令。

你如何做到这一点,主要取决于你的文件保持你的外壳配置。大多数文件是 .bashrc_profile.bashrc.zshrc

现在可以使用

source ~/.bashrc_profile

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

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

exec -l $SHELL

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

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

在使用这个方法时,请确保您已经接受了 Mac 设置中的安全首选项,以允许从应用程序商店下载应用程序并确定开发人员。

如何安装 GCloud 并在 Mac OS 重启后始终工作

  1. 下载安装包 这里

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

  3. 打开终端,进入你的文件夹,输入以下命令:

     ./google-cloud-sdk/install.sh
    
  4. "Modify profile to update your $PATH and enable bash completion?"
    Yes

  5. Enter this path to modify:
    /Users/USERNAME_COMPUTER/.bashrc
  6. After all install, enter this:

      source ~/.bashrc
    
  7. Enter this to check install gcloud:

    gcloud - -version

  8. Open new window terminal cmd+n DONT CLOSE OLD WINDOW and enter in new window gcloud version

    if: «command not found» go to step 9

    else: Congratulations GCloud work in terminal

  9. Return to old window and enter echo $PATH and copy path to GCloud

  10. Open BASH_PROFILE:

    open ~/.bash_profile
    
  11. Enter path to new Bash:

    « export PATH="/Users/USERNAME_COMPUTER/google-cloud-sdk/bin:$PATH" »
    
  12. Return to step 8

如果您在 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]:

回答(你的 zhrc 路径) : /Users/your_user/.zshrc

重新启动终端,就这样。

为了在 MacOSSierra 上启动它,在安装 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

重新启动终端和所有成为工作的预期!

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

我在根目录下运行了这个程序,它运行了,我正在运行 macOS Mojave Version 10.14.3。

我在这里有一个非常不同的故事,原来是由我的 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命令的 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。

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

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

关闭终端或打开一个新窗口,如日志所述:

= = > 启动一个新的 shell 以使更改生效。

一旦安装完成,请尝试使用 glcloud 命令安装任何软件包:

gcloud components install app-engine-php

它不会显示错误。

如果你使用的是 MAC 操作系统,并且使用的是 < em > . 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. Create new file named path.zsh.inc under your home directory(/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
    

Checkout more @ Official Docs

简而言之:

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 上找不到命令

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

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

* 原答案中第三行的双方括号不见了

除了上述答案之外,根据您的发行版,在调用 gsutil 命令之前,可能需要从命令行执行 bash 命令。对于默认使用 tcsh 或其他 shell 的发行版就是这种情况。通过键入“ bash”,源代码将更改为。Bashrc 文件,并执行该文件。

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

您必须将该命令添加到路径中

快跑

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)

如果您是 macOS 自制 zsh 用户:

  1. brew cask install google-cloud-sdk

  2. 更新你的 ~/. zhrc:

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

安装失败的原因:

  • 我正在运行一个 zsh 终端,并且 install.shpath.bash.inc插入到我的 .bash_profile

修正:

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

配置:

  • MacOS Catalina

参考文献:

这招对我很管用:

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

在运行 ./google-cloud-sdk/install.sh --help检查安装 zip 之后,参数 --path-update对我起作用了,

./google-cloud-sdk/install.sh --path-update true

它将自动将 PATH 更新添加到。BashRC(有关不同的 rc 文件,请参见 --rc-path参数)。为无交互性添加 --quiet参数。

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

然后

Enter a path to an rc file to update, or leave blank to use
[/Users/uer/.bash_profile]:  "/usr/lib/google-cloud-sdk/bin:$PATH"

结果:

["/usr/lib/google-cloud-sdk/bin:$PATH"] has been updated.

如果您在 Mac 中使用 zsh,那么在安装和 初始化之后,您只需要使用 source ~./zshrc来应用更改。

如果你已经通过 snap安装了 google-cloud-sdk,你必须修改路径可用 这招对我很管用。

在我的例子中,在安装 Google Cloud SDK 之后,我将终端从 bash 切换到 zsh,因此它显示了‘ zsh: command not found: gcloud’错误。

逃跑就解决了

source ~/.zshrc

我做错的事情是没有为我的操作系统选择正确的下载。我不小心选择了苹果英特尔而不是苹果硅谷。尽管安装看起来可以工作,但是我无法使用 gcloud命令。一旦我删除了文件夹并重新安装了正确的苹果硅版本,一切对我来说都很好。

对于 oh-my-zsh,安装后在终端上运行

source ~/.zshrc