[教程] Linux 服务器无 Root (Sudo) 权限安装 CUDA Toolkit 终极指南
在实验室或公司的公共服务器上开发深度学习/HPC 程序时,我们经常会遇到这样的尴尬:
服务器明明有很强的显卡(如 RTX 4090),nvidia-smi 也能看到驱动正常,但是一运行编译命令就报错:
bash
Error: nvcc not found. Please set CUDA_HOME or add nvcc to PATH.
找管理员装 CUDA 往往流程繁琐,或者服务器自带的 CUDA 版本太老不满足需求。其实,安装 CUDA Toolkit 根本不需要 sudo 权限。只要显卡驱动(Driver)已经装好,我们完全可以在自己的用户目录下安装一套独立的 CUDA。
本文将演示如何将 CUDA 安装到自定义目录(以 ~/Tools 为例),实现开发环境的完全自主可控。
前置说明:关于安装目录
在本文演示中,我将把 CUDA 安装到 ~/Tools 目录下(这是我个人存放工具的习惯)。
- 请注意 :
~/Tools只是一个演示路径。 - 你可以根据自己的习惯修改为任何你有写入权限的目录,比如
~/software、~/cuda或~/app等。在执行后续命令时,请务必将路径替换为你实际使用的目录。
第一步:确认显卡驱动与版本兼容性
首先,确保服务器已经由管理员安装了显卡驱动。
在终端输入:
bash
nvidia-smi
重点关注右上角的 CUDA Version (例如 12.4)。
- 这代表当前驱动最高支持的 CUDA 版本。
- 你安装的 CUDA Toolkit 版本不能高于这个数字,但可以低于它(向下兼容)。
第二步:下载 CUDA Toolkit 安装包
前往 NVIDIA 官方下载页面,选择 Linux -> x86_64 -> Ubuntu (或其他发行版) -> runfile (local)。
不要直接下载,右键复制下载链接 ,然后在服务器上使用 wget 下载。
以 CUDA 12.4 为例(假设你的驱动支持):
bash
# 建议先进入你的安装包存放目录
cd ~/Tools
wget https://developer.download.nvidia.com/compute/cuda/12.4.1/local_installers/cuda_12.4.1_550.54.15_linux.run
第三步:执行安装(核心步骤)
这是最关键的一步。直接运行 .run 文件通常会试图安装驱动(这需要 sudo),导致失败。我们需要使用命令行参数来"只安装工具包"并"指定路径"。
运行以下命令(请记得将 path 修改为你自己的目录):
bash
# 1. 赋予执行权限
chmod +x cuda_12.4.1_550.54.15_linux.run
# 2. 静默安装到指定目录
# --silent: 不显示交互界面(防止因无权限报错)
# --toolkit: 只安装 CUDA 工具包(不装驱动)
# --toolkitpath: 指定你的安装目标目录(关键!)
# --override: 忽略编译器版本检查(可选,防止gcc版本报错)
./cuda_12.4.1_550.54.15_linux.run --silent --toolkit --toolkitpath=$HOME/Tools/cuda-12.4 --override
等待几十秒到一分钟,如果没有报错信息输出,通常就是安装成功了。
第四步:配置环境变量
安装完成后,你需要告诉系统去哪里找 nvcc。我们需要修改 ~/.bashrc 文件。
- 打开配置文件:
bash
nano ~/.bashrc
- 在文件末尾添加以下内容(注意替换为你实际的安装路径):
bash
# User Installed CUDA
export CUDA_HOME=$HOME/Tools/cuda-12.4
export PATH=$CUDA_HOME/bin:$PATH
export LD_LIBRARY_PATH=$CUDA_HOME/lib64:$LD_LIBRARY_PATH
- 保存退出(
Ctrl+O-> 回车 ->Ctrl+X),然后刷新环境:
bash
source ~/.bashrc
第五步:验证安装
现在,再次检查 nvcc 是否可用:
bash
which nvcc
# 输出示例: /home/your_user/Tools/cuda-12.4/bin/nvcc
nvcc --version
# 输出示例: Cuda compilation tools, release 12.4, V12.4.131
如果看到版本号,恭喜你!你已经成功绕过了 root 权限,拥有了自己的 CUDA 开发环境。
扫尾工作(可选)
安装包通常很大(几 GB),安装成功后可以将其删除以节省服务器空间:
bash
rm cuda_12.4.1_550.54.15_linux.run
希望这篇教程能帮到同样被权限困扰的你!Happy Coding!