Google Cloud Shell根目录重置:安装的apt包重启后丢失如何解决
问题原因
Google Cloud Shell 运行的是临时分配的虚拟机实例,会话结束后实例会被销毁,仅 $HOME 目录下的内容会持久保留,所有系统级目录(如 /usr、/etc、/bin 等)的修改都会被重置。通过apt默认安装的软件包均写入系统目录,因此重新打开Cloud Shell后就会消失。
解决方法
方法1:启动时自动安装(适合体积较小的软件包)
将apt安装命令写入用户目录下的Shell启动配置文件,每次Cloud Shell启动时自动执行安装,操作如下:
- 编辑
~/.bashrc文件:nano ~/.bashrc - 在文件末尾添加安装命令,需加上
-y参数跳过交互确认,以安装tmux为例:
其中sudo apt update && sudo apt install -y tmux > /dev/null 2>&1> /dev/null 2>&1用于屏蔽安装过程的输出,避免每次启动都打印安装日志,不需要可删除。 - 保存退出后执行
source ~/.bashrc即可立即生效,后续每次打开Cloud Shell都会自动完成软件安装。
方法2:安装到持久化的$HOME目录(适合无强制系统级依赖的软件)
将软件安装到$HOME/.local这类用户专属目录,目录内的内容会被永久保留,不需要每次启动重新安装:
- 源码编译安装时指定安装路径:
./configure --prefix=$HOME/.local make && make install - 若使用
apt获取二进制包,可手动提取到用户目录:# 下载软件包(以tmux为例) apt download tmux # 提取包内容到本地用户目录 dpkg -x tmux_*.deb ~/.local/
最后将用户目录的可执行文件路径加入环境变量,在~/.bashrc中添加:
export PATH=$HOME/.local/bin:$PATH
执行source ~/.bashrc后即可正常调用安装的软件。
方法3:使用自定义环境镜像(适合需要大量自定义系统配置的场景)
如果需要安装的软件包较多、每次启动安装耗时过长,可以使用Cloud Shell的自定义环境功能,构建专属的容器镜像作为运行环境,所有系统级修改都会永久保留。
内容的提问来源于stack exchange,提问作者aflamaroc
相关产品推荐
相关产品推荐

