我在Mac上,正在尝试使用终端中的此命令安装Google Cloud SDK(包括gcloud命令行实用程序)
curl https://sdk.cloud.google.com | bash
见https://cloud.google.com/sdk/
它一直到最后都已完成,但即使在我重新启动shell之后,gcloud
命令仍然说它未找到。
为什么这个安装不起作用?
答案 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文件。为此,
现在,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)
这对我有用:
说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
,现在一切正常!
答案 11 :(得分:3)
如何在Mac OS HIGH Sierra上重新启动后安装GCloud并始终运行:
下载安装包 Here
已完成的文件并放入您的文件夹
打开终端,转到包含文件的文件夹,然后输入以下命令:
./google-cloud-sdk/install.sh
“修改个人资料以更新您的$PATH
并启用bash完成吗?”
是
/Users/USERNAME_COMPUTER/.bashrc
所有安装后,输入以下内容:
source ~/.bashrc
输入此内容以检查安装gcloud:
gcloud--version
打开新窗口终端cmd+n
不要关闭旧窗口 ,然后在新窗口中输入gcloud version
如果:«未找到命令»,请转到步骤9
其他:祝贺GCloud在终端中工作
返回旧窗口并输入echo $PATH
并将路径复制到GCloud
打开BASH_PROFILE:
open ~/.bash_profile
输入新Bash的路径:
« export PATH="/Users/USERNAME_COMPUTER/google-cloud-sdk/bin:$PATH" »
返回到步骤8
答案 12 :(得分:2)
如果正在运行
source ~/.bashrc
导致“没有这样的文件或目录”
在Windows上:
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答案)
~/.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
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)
我的安装失败的原因:
std::format
将install.sh
插入我的path.bash.inc
修复:
.bash_profile
cd [whereever]/google-cloud-sdk && ./install.sh
vi ~/.bash_profile
的所有实例替换为path.bash.inc
操作系统配置:
参考:
答案 23 :(得分:0)
如果您是macOS自制zsh用户:
brew cask install google-cloud-sdk
更新您的〜/ .zshrc:
plugins=(
...
gcloud
)
答案 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,请执行以下操作:
编辑您的.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
在您的主目录(/ 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
。
修复:
sudo nano ~/.bash_profile
fi
语句(缺少空缺if
) 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.inc
和path.bash.inc
的信息。
如果您正在使用zsh
终端,则会要求您运行completion.zsh.inc
和path.zsh.inc
。请参阅下面的图片
答案 31 :(得分:-1)
它对我有用: