为什么会有这么奇怪的事,是因为新的GPU机器是一个runpod
持久化卷是网络的,但是pod一重启,系统便被洗的干干净净,重新出生了,那难道每次重启都重新安装nodejs python go ?
那可太烦了,我们把这些固定软件指定安装到持久化卷上,重启后只要引入资源文件,就恢复原样,那就完事大吉了
一、nodejs
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/master/install.sh | NVM_DIR=/workspace/nvm bash
export NVM_DIR="/workspace/nvm"
[ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh"
[ -s "$NVM_DIR/bash_completion" ] && . "$NVM_DIR/bash_completion"
这样nvm就装好了,然后装node
nvm list
nvm ls-remote
nvm install 24
# 顺手装个codex
npm i -g @openai/codex
二、python
curl -LsSf https://astral.sh/uv/install.sh | UV_INSTALL_DIR=/workspace/uv sh
source /workspace/uv/env
这样uv就装好了,然后装python
uv python list
# 建议用到时再用venv初始化python
uv venv --python 3.12
三、go
wget https://go.dev/dl/go1.25.11.linux-amd64.tar.gz
tar zxvf go1.25.11.linux-amd64.tar.gz
mv go /workspace/go
export GOROOT=/workspace/go
export PATH=$GOROOT/bin:$PATH
四、整合bashrc
# 类似screen的软件
https://github.com/coder/boo/releases/download/v0.6.4/boo-x86_64-linux.tar.gz
# smart cd的软件
https://github.com/ajeetdsouza/zoxide/releases/download/v0.10.0/zoxide-0.10.0-x86_64-unknown-linux-musl.tar.gz
# 下载后是boo和zoxide,放到/workspace/bin目录下
/workspace/bin/boo /workspace/bin/zoxide
整合/workspace/bashrc
export HOME=/workspace
export NVM_DIR="/workspace/nvm"
[ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh"
[ -s "$NVM_DIR/bash_completion" ] && . "$NVM_DIR/bash_completion"
source /workspace/uv/env
export GOROOT=/workspace/go
export PATH=$GOROOT/bin:$PATH
export PATH=$HOME/bin:$PATH
eval "$(zoxide init bash)"
然后每次pod重启后,我们直接. /workspace/bashrc就可以恢复正常了
我们也可以把这一句加入/root/.bashrc就自动执行,这样下次重启之前,重新ssh登录就可以直接恢复