如何配置实验室的服务器

实验室的服务器是多用户共享物理机 ,但系统会给每个账号分配「独立的用户目录」(你的目录就是 /home/你的用户名/),所有用户之间互相隔离、互不影响:

  • 别人装的 python/conda/pytorch,都在别人的 /home/xxx/ 目录下,你的账号完全访问不到;
  • 你自己装的所有软件,也只会存在于你的个人目录,别人看不到、用不了,也不会被别人的操作覆盖 / 搞崩;
  • 你没有管理员权限 (没有sudo命令),根本没法把软件装到服务器的「系统公用目录」(比如/usr/bin),只能装在自己目录里,这是服务器的安全规则。

1. nvidia-smi → 属于【NVIDIA 显卡驱动】,是服务器公用的

  • 服务器物理机上,管理员已经装好了NVIDIA 显卡驱动 ,这个驱动是给所有用户共享的,只要显卡硬件在,所有账号都能执行 nvidia-smi 查看显卡信息;
  • 显卡驱动是系统级的底层程序,负责让服务器识别显卡。
  • 显卡驱动版本,决定了你能安装的「CUDA Toolkit 最高版本」

2. nvcc → 属于【CUDA Toolkit 工具包】,一般是没有的,需要自己装

  • nvcc 是 CUDA 编译器 ,是 CUDA Toolkit 这个软件包里的核心命令,不是显卡驱动自带的;
  • 当服务器没有装系统级的 CUDA Toolkit ,系统找不到nvcc这个命令,就会报 command not found;
  • 解决方案:在个人目录下,装一个「私有版 CUDA Toolkit」,仅自己可用 ,支持在一台服务器上装多个版本 (比如~/applications/cuda-11.8和~/applications/cuda-12.8共存)

3. 【PyTorch/k2 内置的 CUDA Runtime】→ 虚拟环境内、库级、和 Toolkit解耦(torch.version.cuda查这个)

  • 命令:python -c "import torch; print(torch.version.cuda)" → 查的是这个
  • 归属:属于每个 Python 虚拟环境的私有依赖 ,装在conda env或venv里,不同环境可以完全不同版本

以安装CUDA Toolkit 12.8为例

从 CUDA 12.x 版本开始,默认不再提供 tar.gz 格式的离线包,仅保留 runfile 和 deb 格式

1. 创建用户安装目录

复制代码
mkdir applications

2. 进入用户安装目录

复制代码
cd applications

3. 下载CUDA Toolkit 12.8

复制代码
wget https://developer.download.nvidia.com/compute/cuda/12.8.0/local_installers/cuda_12.8.0_570.86.10_linux.run

4. 执行安装

复制代码
sudo sh cuda_12.8.0_570.86.10_linux.run

输密码报错

复制代码
xxx is not in the sudoers file.

账号没有服务器管理员权限(sudo 权限 ),完全不能用sudo执行任何命令

用已下载的.run包,无sudo
复制代码
sh cuda_12.8.0_570.86.10_linux.run --silent --toolkit --no-drm --override --installpath=$HOME/applications/cuda-12.8
  • --silent:静默安装,无弹窗、无交互,一路自动安装;
  • --toolkit:只装 CUDA Toolkit 工具包(包含 nvcc 编译器、核心库),不装显卡驱动、不装 samples,这是唯一需要的;
  • --no-drm:跳过驱动相关的权限检查,普通用户必加;
  • --override:跳过版本兼容性检查,解决普通用户目录的权限警告;
  • --installpath=xxx:指定安装到个人目录,核心中的核心,无 sudo 的关键!

5. 配置环境变量

编辑~/.bashrc
复制代码
vim ~/.bashrc
在末尾添加以下内容
复制代码
# >>> CUDA >>>
export CUDA_HOME=~/applications/cuda-12.8
export PATH=$CUDA_HOME/bin:$PATH
export LD_LIBRARY_PATH=$CUDA_HOME/lib64:$LD_LIBRARY_PATH
# <<< CUDA <<<
生效配置
复制代码
source ~/.bashrc
6. 验证 nvcc
复制代码
nvcc --version
还有一种安装方法
提取runfile内容(仅解压,不安装),指定提取路径为你的用户目录
复制代码
./cuda_12.8.0_570.86.10_linux.run --extract=~/applications/cuda-12.8-extract
进入提取后的目录,找到cuda_toolkit目录(包含nvcc等工具)
复制代码
cd ~/applications/cuda-12.8-extract
把toolkit文件复制到~/applications/cuda-12.8(统一路径)
复制代码
mkdir -p ~/applications/cuda-12.8
cp -r ./cuda_toolkit/* ~/applications/cuda-12.8/
配置环境变量,与前面一致
相关推荐
一个天蝎座 白勺 程序猿6 小时前
KingbaseES数据库归档重做日志文件管理:从配置到运维的实战指南
运维·数据库·oracle·kingbasees·金仓数据库
天诰8 小时前
SA-K-11 检索会消失吗与四个未解问题
java·服务器·人工智能·python·机器学习·ai编程
分布式存储与RustFS9 小时前
镜像仓库的层别堆本地盘:用 RustFS 给 Docker Registry 当 S3 后端
运维·云原生·开源·对象存储·分布式存储·s3·性能基准
陈希12310 小时前
Linux 防火墙配置实战:firewalld、iptables 与云安全组
linux·运维·服务器
女神下凡11 小时前
芯参谋(95):嵌入式文件系统_开发指南
linux·服务器·arm开发·驱动开发·设计规范
@兽血沸腾11 小时前
Windows系统安装Jenkins部署应用至远程Windows服务器操作指南
运维·服务器·jenkins
讯捷蓝达17 小时前
戴尔R720xd服务器卡死在 “Configuring Memory...Done“,换了内存还是卡?问题根本不在内存
运维·服务器
数字新视界19 小时前
动环监控信创适配在智能机房管理中的应用价值与未来展望
大数据·服务器·数据库·动环监控系统·动力与环境监控系统
爱和冰阔落19 小时前
【Linux网络】TCP 服务器如何并发处理多个客户端?从 fork、僵尸进程到双重 fork
linux·运维·服务器·网络
lisanmengmeng20 小时前
alertmanger 标签 rules 打上分组标签
linux·运维·服务器