Ubuntu 12.04 上的 gcloud 安装权限问题

gcloud installation permission issue on Ubuntu 12.04

我先安装了 PHP App Engine SDK。然后,我安装了 Google Cloud SDK 使用:

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

但是安装时显示错误。

然后,我从 zip 文件安装 Google Cloud SDK,但在安装的最后阶段显示错误:

  /home/nikhil/google-cloud-sdk/install.sh
Welcome to the Google Cloud SDK!
Traceback (most recent call last):
  File "/home/nikhil/google-cloud-sdk/bin/bootstrapping/install.py", line 20, in <module>
    from googlecloudsdk.gcloud import gcloud
  File "/home/nikhil/google-cloud-sdk/bin/bootstrapping/../../lib/googlecloudsdk/gcloud/gcloud.py", line 190, in <module>
    _cli = CreateCLI()
  File "/home/nikhil/google-cloud-sdk/bin/bootstrapping/../../lib/googlecloudsdk/gcloud/gcloud.py", line 188, in CreateCLI
    return loader.Generate()
  File "/home/nikhil/google-cloud-sdk/bin/bootstrapping/../../lib/googlecloudsdk/calliope/cli.py", line 304, in Generate
    cli = self.__MakeCLI(top_group)
  File "/home/nikhil/google-cloud-sdk/bin/bootstrapping/../../lib/googlecloudsdk/calliope/cli.py", line 467, in __MakeCLI
    log.AddFileLogging(self.__logs_dir)
  File "/home/nikhil/google-cloud-sdk/bin/bootstrapping/../../lib/googlecloudsdk/core/log.py", line 547, in AddFileLogging
    _log_manager.AddLogsDir(logs_dir=logs_dir)
  File "/home/nikhil/google-cloud-sdk/bin/bootstrapping/../../lib/googlecloudsdk/core/log.py", line 331, in AddLogsDir
    log_file = self._SetupLogsDir(logs_dir)
  File "/home/nikhil/google-cloud-sdk/bin/bootstrapping/../../lib/googlecloudsdk/core/log.py", line 408, in _SetupLogsDir
    os.makedirs(day_dir_path)
  File "/usr/lib/python2.7/os.py", line 157, in makedirs
    mkdir(name, mode)
OSError: [Errno 13] Permission denied: '/home/nikhil/.config/gcloud/logs/2015.07.03'

我应该怎么做才能完成安装?

然后,我在终端上尝试 gcloud info,但它显示以下错误:

nikhil@nikhil-Aspire-S3-391:~$ gcloud info
Traceback (most recent call last):
  File "/home/nikhil/google-cloud-sdk/./lib/googlecloudsdk/gcloud/gcloud.py", line 190, in <module>
    _cli = CreateCLI()
  File "/home/nikhil/google-cloud-sdk/./lib/googlecloudsdk/gcloud/gcloud.py", line 188, in CreateCLI
    return loader.Generate()
  File "/home/nikhil/google-cloud-sdk/./lib/googlecloudsdk/calliope/cli.py", line 304, in Generate
    cli = self.__MakeCLI(top_group)
  File "/home/nikhil/google-cloud-sdk/./lib/googlecloudsdk/calliope/cli.py", line 467, in __MakeCLI
    log.AddFileLogging(self.__logs_dir)
  File "/home/nikhil/google-cloud-sdk/./lib/googlecloudsdk/core/log.py", line 547, in AddFileLogging
    _log_manager.AddLogsDir(logs_dir=logs_dir)
  File "/home/nikhil/google-cloud-sdk/./lib/googlecloudsdk/core/log.py", line 331, in AddLogsDir
    log_file = self._SetupLogsDir(logs_dir)
  File "/home/nikhil/google-cloud-sdk/./lib/googlecloudsdk/core/log.py", line 408, in _SetupLogsDir
    os.makedirs(day_dir_path)
  File "/usr/lib/python2.7/os.py", line 157, in makedirs
    mkdir(name, mode)
OSError: [Errno 13] Permission denied: '/home/nikhil/.config/gcloud/logs/2015.07.04'

这看起来像是创建目录 /home/nikhil/.config/gcloud/logs/2015.07.04 时的文件权限错误。你能检查所有父目录的存在和文件权限吗?

ls -ld /home/nikhil/
ls -ld /home/nikhil/.config
ls -ld /home/nikhil/.config/gcloud
ls -ld /home/nikhil/.config/gcloud/logs
ls -ld /home/nikhil/.config/gcloud/logs/2015.07.04

然后将输出上传到这个问题。

我的直觉是你已经 运行 一个 Cloud SDK 命令作为 root 用户(通常不推荐),它创建了 /home/nikhil/.config/gcloud 目录,root 作为所有者。如果是这种情况,命令:

sudo chown -R nikhil /home/nikhil/.config/gcloud

可能会解决问题。


顺便说一句,命令 sudo curl https://sdk.cloud.google.com | bash 不会执行您希望它执行的操作;它以 root 身份执行 curl,但实际安装不会以 root 用户身份进行。 Cloud SDK无需root权限即可安装,所以我推荐简单curl https://sdk.cloud.google.com | bash.