如何让通过SSH在Google Cloud VM安装的库对所有用户生效?
问题原因及解决办法
核心原因
你通过SSH连接GCE实例时,默认登录的是普通用户(通常是ubuntu),而brew默认会安装在当前用户的专属目录下(比如/home/ubuntu/.linuxbrew/),并且仅将brew的路径添加到该普通用户的环境变量PATH中。当你以root账户登录时,root的PATH变量不包含brew所在的目录,所以shell无法找到brew命令;而你在普通用户下创建的文件/目录对root可见,是因为root拥有系统最高权限,能读取其他用户的home目录内容,但这和环境变量无关。
解决办法
1. 切换到安装brew的普通用户使用brew
在root终端中执行切换用户命令:
su - ubuntu
此时终端会加载该普通用户的环境变量,就能正常使用brew了。
2. 将brew路径添加到root的环境变量中
- 先切换到普通用户,查看brew的安装路径:
输出类似which brew/home/ubuntu/.linuxbrew/bin/brew,我们需要的是该命令所在的目录/home/ubuntu/.linuxbrew/bin/。 - 切换回root,将该目录添加到root的
~/.bashrc配置文件中:echo 'export PATH="/home/ubuntu/.linuxbrew/bin:$PATH"' >> ~/.bashrc - 重新加载配置文件使修改生效:
之后root终端就能直接找到brew命令了。source ~/.bashrc
3. 不推荐:以root身份重新安装brew
brew官方不建议使用root账户安装,这可能导致后续权限问题和软件包管理混乱,因此不推荐此方法。
内容的提问来源于stack exchange,提问作者Setu Kumar Basak
相关产品推荐
相关产品推荐

