ARTICLE DETAIL

建站实战干货

来自一线的建站与推广经验沉淀,每一条都经过真实交付验证。

非Ubuntu也能用:switch-cuda适配其他Linux发行版的3种方法

2026/8/16 14:23:19 拓冰建站 浏览量
非Ubuntu也能用:switch-cuda适配其他Linux发行版的3种方法 非Ubuntu也能用switch-cuda适配其他Linux发行版的3种方法【免费下载链接】switch-cudaA simple bash script for switching between installed versions of CUDA.项目地址: https://gitcode.com/gh_mirrors/sw/switch-cudaswitch-cuda 是一个用 bash 编写的CUDA 版本切换工具只需一条source命令就能在当前终端中快速调整PATH、LD_LIBRARY_PATH、CUDA_HOME等环境变量。虽然它最初是针对 Ubuntu 16.04 开发的但通过本文的 3 种适配方法Fedora、Arch Linux、CentOS、openSUSE 等非 Ubuntu 发行版同样能轻松使用 switch-cuda 管理多个 CUDA 版本从此告别手动改环境变量的痛苦。switch-cuda 是什么为什么默认只认 Ubuntuswitch-cuda 的核心是一个不到 100 行的 bash 脚本switch-cuda.sh它的工作原理并不神秘CUDA 的版本切换本质就是修改 4 个环境变量——PATH、LD_LIBRARY_PATH、CUDA_HOME和CUDA_ROOT让系统指向你想要的 CUDA 安装目录。使用方式非常简单source switch-cuda.sh # 列出本机已安装的所有 CUDA 版本 source switch-cuda.sh 12.4 # 切换到 CUDA 12.4之所以默认只认 Ubuntu是因为脚本里写死了一行配置INSTALL_FOLDER/usr/local脚本只会到这个目录下寻找cuda-x.y格式的文件夹。这在 Ubuntu 上没问题但其他发行版的 CUDA 安装路径往往不同发行版常见 CUDA 安装路径Ubuntu / Debian/usr/local/cuda-x.yFedora / CentOS / openSUSE/usr/local/cuda-x.yArch Linux/opt/cudaGentoo/opt/cudaNixOS/nix/store/...路径不固定好在项目 README 中作者特别注明脚本针对 Ubuntu 16.04 编写但很容易移植到其他平台。下面这 3 种方法就是最典型的移植思路。适配前先拿到 switch-cuda 脚本 首先克隆项目获取脚本git clone https://gitcode.com/gh_mirrors/sw/switch-cuda或者只保留核心文件switch-cuda.sh和README.md放到任意目录例如~/tools/即可开始改造。方法一修改 INSTALL_FOLDER 变量最简单适合 Arch Linux✏️如果你的发行版只是安装路径不同比如 Arch Linux 把 CUDA 装在/opt下那么只需把脚本第 37 行的安装目录改成实际路径即可一条sed命令就能完成sed -i s|INSTALL_FOLDER/usr/local|INSTALL_FOLDER/opt| switch-cuda.sh改完之后立即验证source switch-cuda.sh如果输出类似* cuda-12.4、* cuda-11.8说明脚本已经能在你的发行版上正确识别 CUDA 版本了。整个适配过程只需这一条命令是新手最值得先尝试的方法。方法二符号链接瞒天过海脚本零改动适合任何发行版如果不想动脚本可以在/usr/local下为真实安装目录建立符号链接让脚本以为CUDA 就装在它熟悉的位置sudo ln -s /opt/cuda-12.4 /usr/local/cuda-12.4 sudo ln -s /opt/cuda-11.8 /usr/local/cuda-11.8建立链接后无需修改switch-cuda.sh直接执行source switch-cuda.sh 12.4即可完成切换。这种方法的优点是脚本保持原样、可随时整体升级替换缺点是每安装一个 CUDA 版本都要手动建一次链接并且需要 root 权限。方法三读懂源码自己改造适合 NixOS 等特殊发行版像 NixOS 这类非常规发行版CUDA 被安装进/nix/store的哈希目录中路径既不确定也不稳定前两种方法都难以奏效。这时建议直接复制switch-cuda.sh按自己的需求改写修改INSTALL_FOLDER指向实际存放 CUDA 的目录调整LD_LIBRARY_PATH的拼接逻辑例如某些发行版的 CUPTI 库路径与 Ubuntu 并不相同路径过滤正则^${INSTALL_FOLDER}/cuda也可以改成符合你自己命名规则的写法。由于脚本总共不到 100 行、逻辑清晰通读一遍即可完全掌握二次开发成本极低。这也是从会用工具进阶到会写工具的绝佳练习素材。适配后如何验证切换是否成功✅无论选用哪种方法适配完成后都建议按以下步骤做一次完整验证source switch-cuda.sh 12.4 # 切换版本 nvcc --version # 查看当前 nvcc 版本 echo $CUDA_HOME # 应输出 .../cuda-12.4 echo $PATH # 确认 CUDA 12.4 的 bin 目录排在最前再运行一段依赖特定 CUDA 版本的程序确认链接库没有问题就可以放心使用了。常见问题FAQ为什么必须用source执行直接运行不行吗直接执行脚本会启动一个子进程环境变量的修改无法带出来因此脚本内置了校验逻辑强制要求以source方式运行否则会直接报错退出。新开一个终端怎么又变回旧版本了source switch-cuda.sh只对当前 bash 会话生效。想永久生效可以把切换命令写进~/.bashrc。提示 No installation of CUDA 12.4 has been found! 怎么办先执行不带版本号的source switch-cuda.sh确认脚本能否找到你的 CUDA 安装目录。如果列表为空多半是INSTALL_FOLDER没指向正确路径回到方法一检查即可。总结3 种方法怎么选路径固定、只是目录不同如 Arch、Gentoo→ 用方法一一条sed命令搞定不想改动脚本、追求省心如 Fedora、CentOS→ 用方法二符号链接最省事目录结构特殊、需要深度定制如 NixOS→ 用方法三动手改造收益最大。无论你使用哪种 Linux 发行版switch-cuda 都能把 CUDA 版本切换这件繁琐事变成一条命令让你在多个 CUDA 版本之间自由穿梭、互不干扰。【免费下载链接】switch-cudaA simple bash script for switching between installed versions of CUDA.项目地址: https://gitcode.com/gh_mirrors/sw/switch-cuda创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考