Ubuntu 12.04上的gcloud安装权限问题

nkR*_*cks 9 google-app-engine ubuntu-12.04 google-cloud-platform gcloud

我先安装了PHP App Engine SDK.然后,我使用以下方法安装了Google Cloud SDK:

sudo curl https://sdk.cloud.google.com | bash
Run Code Online (Sandbox Code Playgroud)

但它在安装时显示错误.

然后,我从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'
Run Code Online (Sandbox Code Playgroud)

我该怎么办才能完成安装?

然后,我尝试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'
Run Code Online (Sandbox Code Playgroud)

Zac*_*man 33

这看起来像创建目录时的文件权限错误/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
Run Code Online (Sandbox Code Playgroud)

然后将输出上传到此问题.

我的预感是你以root用户身份运行Cloud SDK命令(通常不推荐),它以所有者的身份创建了/home/nikhil/.config/gcloud目录root.如果是这种情况,命令:

sudo chown -R nikhil /home/nikhil/.config/gcloud
Run Code Online (Sandbox Code Playgroud)

可以解决这个问题.


顺便说一句,命令sudo curl https://sdk.cloud.google.com | bash不会做你想做的事情; 它curl以root身份执行,但实际安装不会以root用户身份执行.可以在没有root权限的情况下安装Cloud SDK,因此我建议简单curl https://sdk.cloud.google.com | bash.