Ubuntu18.04安装Google Cloud SDK遇权限错误求助
先还原你遇到的错误场景:
我在Ubuntu 18.04系统中按照官方文档安装Google Cloud SDK,运行
./google-cloud-sdk/install.sh时出现以下错误:
欢迎使用Google Cloud SDK!为改进产品质量,我们会收集匿名使用数据及崩溃时的匿名堆栈跟踪;详情请见相关说明。数据处理遵循隐私政策。您可选择现在加入收集(在下方提示选择'Y'),或之后通过命令gcloud config set disable_usage_reporting false随时加入。
是否帮助改进Google Cloud SDK (y/N)? N回溯(最近调用最后):
File "/home/vineet/./google-cloud-sdk/bin/bootstrapping/install.py", line 225, in
main()
File "/home/vineet/./google-cloud-sdk/bin/bootstrapping/install.py", line 200, in main
Prompts(pargs.usage_reporting)
File "/home/vineet/./google-cloud-sdk/bin/bootstrapping/install.py", line 123, in Prompts
scope=properties.Scope.INSTALLATION)
File "/home/vineet/google-cloud-sdk/lib/googlecloudsdk/core/properties.py", line 2406, in PersistProperty
config.EnsureSDKWriteAccess()
File "/home/vineet/google-cloud-sdk/lib/googlecloudsdk/core/config.py", line 198, in EnsureSDKWriteAccess
raise exceptions.RequiresAdminRightsError(sdk_root)
googlecloudsdk.core.exceptions.RequiresAdminRightsError: You cannot perform this action because you do not have permission to modify the Google Cloud SDK installation directory [/home/vineet/google-cloud-sdk]. Re-run the command with sudo: sudo /home/vineet/google-cloud-sdk/bin/gcloud ...
下面是几个可以尝试的解决思路:
1. 检查并修复安装目录的权限归属
首先确认/home/vineet/google-cloud-sdk目录的所有者是不是你的用户账号(vineet),运行这个命令查看:
ls -ld /home/vineet/google-cloud-sdk
如果输出里的所有者不是vineet:vineet,说明目录权限归属有误,用下面的命令修正:
sudo chown -R vineet:vineet /home/vineet/google-cloud-sdk
修改完成后重新运行安装脚本:
./google-cloud-sdk/install.sh
2. 使用用户级安装模式(推荐)
如果不想折腾系统权限,直接添加--user参数做用户级安装即可。这种模式下SDK会安装到你用户专属的目录中,完全不需要管理员权限,后续使用gcloud命令也不用加sudo:
./google-cloud-sdk/install.sh --user
个人用户用这种方式最省心,能避免很多权限混乱的问题。
3. 系统级安装的正确操作
如果确实需要给多个用户共享SDK,那就按照错误提示的方式用sudo操作:
- 要么直接用sudo运行安装脚本:
sudo ./google-cloud-sdk/install.sh
- 要么先跑完安装脚本,遇到权限提示后执行指定的sudo命令:
sudo /home/vineet/google-cloud-sdk/bin/gcloud init
注意:系统级安装后,部分gcloud命令可能需要sudo才能执行,或者你需要调整SDK目录的权限,让其他用户也能访问。
4. 重新下载解压SDK包
要是上面的方法都无效,可能是你之前解压的SDK目录本身权限就有问题,重新下载官方包再解压试试:
# 下载x86_64架构的最新SDK包(其他架构可替换对应下载链接) wget https://dl.google.com/dl/cloudsdk/channels/rapid/downloads/google-cloud-sdk-457.0.0-linux-x86_64.tar.gz # 解压到当前用户目录 tar -xvf google-cloud-sdk-457.0.0-linux-x86_64.tar.gz # 进入目录运行安装脚本 cd google-cloud-sdk ./install.sh
内容的提问来源于stack exchange,提问作者Vineet

