首先,我在 Fedora 25 上安装了独立的 gsutil,它运行了几个月。然后我安装了 Cloud SDK,从那以后我的 Google Cloud 凭据就被破坏了。
毕竟我不需要 Cloud SDK。我只想再次使用 gsutil。有没有办法从 Linux 卸载 Cloud SDK 和凭据?或者也许卸载所有 Google Cloud 产品并重新安装独立的 gsutil?
首先,我在 Fedora 25 上安装了独立的 gsutil,它运行了几个月。然后我安装了 Cloud SDK,从那以后我的 Google Cloud 凭据就被破坏了。
毕竟我不需要 Cloud SDK。我只想再次使用 gsutil。有没有办法从 Linux 卸载 Cloud SDK 和凭据?或者也许卸载所有 Google Cloud 产品并重新安装独立的 gsutil?
为了解释发生这种情况的可能原因:
当您安装 Cloud SDK 时,需要一些步骤来确保当您gsutil
从 shell 键入时,它会解析为 Cloud SDK 版本(取决于安装方法,它可能会在 中制作一些可执行脚本/usr/local/bin/
,或者放在/path/to/cloud/sdk/bin
前面您的 PATH 环境变量)。这个用于 gsutil 的 Cloud SDK 包装脚本执行一些额外的身份验证逻辑,加载一个额外的 .boto 文件,该文件包含运行时生成的凭据gcloud auth login
。运行时可以看到这个额外的 .boto 文件gcloud version -l
:
$ gsutil version -l
[...]
using cloud sdk: True
config path(s): /home/USER/.boto, /home/USER/.config/gcloud/legacy_credentials/USER@gmail.com/.boto
[...]
该额外 .boto 文件中的身份验证凭据可能会覆盖您$HOME/.boto
文件中的凭据。
如何再次使用独立 gsutil:
您需要确保gsutil
您的 shell 找到的第一个是独立版本。这实质上意味着包含独立 gsutil 可执行文件的目录应该位于 PATH 环境变量中的 cloud sdk 目录之前。这可以通过将其添加到 PATH 变量中来完成,方法是在 .bashrc 文件的末尾添加类似的内容:
if [ -d "/path/to/standalone/gsutil/directory" ]; then
PATH="/path/to/standalone/gsutil/directory:$PATH"
fi
完成此操作后,您可以运行此命令以重新加载 .bashrc 文件并检查 gsutil 信息的“使用云 sdk”值:
$ source "$HOME/.bashrc"; gsutil version -l
如果这仍然表明您使用的是 Cloud SDK 版本的 gsutil,则您可能为 gsutil 定义了一个别名 - 您可以通过运行以下命令进行检查:
$ type gsutil
如果您在使用独立版本的 gsutil 时仍然遇到身份验证问题,则需要生成新的凭据:
$ gsutil config