在 WSL(Windows Subsystem for Linux)中安装 CUDA 12.2 命令详解(二)


1. .pin 文件是啥?

.pin 文件是 APT(包管理器)的 优先级配置文件,全称是 "APT Preferences Pin File"

  • "Pin" 这个词的本意是徽章、别针,还记得奥运会的时候“pin ”,但在这里,它的意思更像是“钉住”或“固定”。你可以理解成:
    👉 “固定某个软件源的优先级,让系统优先从这里下载 CUDA。”

  • .pin 这个文件告诉系统:

    • 哪些软件源(repository)优先级高?

    • 哪些版本应该被“钉住”不让升级?

    • 从哪些地方拉取更新?

🔹 为什么要有优先级?

因为系统可能有多个软件源,而不同的软件源可能提供 相同的软件但版本不同,比如:

  • 官方 Ubuntu 源(提供稳定但较旧的 CUDA 版本)。

  • NVIDIA 自己的源(提供最新的 CUDA 版本)。

  • 其他第三方 PPA(可能有修改版 CUDA)。

如果不指定优先级,系统会随机决定从哪个源安装,可能会导致: ❌ 版本混乱:安装了不匹配的 CUDA 版本,导致 TensorFlow 跑不起来。
手动优先级:我们通过 .pin 文件告诉系统 “NVIDIA 源的 CUDA 优先级最高,必须从这里下载!”


2. Super User 不是 Administrator

Super User (su)Administrator 虽然都是管理员,但它们不是完全一样的概念。

名称操作系统作用
AdministratorWindowsWindows 的管理员,管理用户权限
Super User (su)Linux/UnixLinux 的最高权限用户,可以改任何文件
rootLinux/UnixSuper User 的实际用户名

在 Windows 里,Administrator 可能仍然会受到 UAC(用户权限控制)的限制,而在 Linux 里,Super User (root) 是绝对权限,可以删掉整个系统rm -rf /)。

所以 sudo(Super User DO)是个很谨慎的命令,它让普通用户临时变成超级用户来执行某些需要权限的操作,比如安装软件、修改系统文件等。


3. APT 是啥?

是 Linux 的 包管理工具,全称是: "Advanced Package Tool"(高级软件包工具)。

  • APT 主要用来安装、更新、卸载软件,相当于 Linux 里的 App Store

  • Ubuntu、Debian 系的 Linux 发行版都用它来管理软件包。

  • apt-get update 就是告诉系统: "去检查一下所有软件源里有什么新软件包",类似于 刷新应用商店

你可以这样理解:

  • Windows 安装软件用 .exe,Mac 用 .dmg,Linux 用 .deb(Debian)。

  • APT = Linux 里的“应用商店”命令行工具


4. dpkg 是什么 ?

dpkg 的全称是 "Debian Package Manager"(Debian 软件包管理器)。

  • dpkg 直接用来安装 .deb 软件包,就像 Windows 直接运行 .exe 安装程序一样。

  • 但它不能自动下载依赖,所以一般用 apt 代替 dpkg

    • apt-get install cuda ✅(会自动下载依赖)

    • dpkg -i cuda.deb(如果缺少依赖,需要手动装)

总结: ✅ APT 是更高级的包管理工具,能自动解决依赖关系。
dpkg 只是基础工具,用来安装 .deb 包,不会自动解决依赖。


5. 这一系列命令属于什么领域?

这套命令属于 "软件包管理 & 依赖管理",涉及:

  • Linux 系统管理(Shell、权限管理)

  • 软件包管理(APT、dpkg、pip、conda)

  • CUDA/NVIDIA 生态(GPU 计算环境)

之前安装 Python 也遇到类似的情况,比如:

  • pip install tensorflow(用 pip 下载安装 Python 软件包)

  • conda install numpy(用 conda 下载安装 Anaconda 软件包)

APT 和 pip 类似,但它是 Linux 的“官方”软件管理工具,而 pip 只是 Python 生态里的。


6. 配置文件夹是啥?

sudo mv cuda-wsl-ubuntu.pin /etc/apt/preferences.d/cuda-repository-pin-600
  • /etc/apt/preferences.d/APT 的配置文件夹,存放软件源优先级的 .pin 文件。

  • cuda-repository-pin-600 这个文件名是手动指定的,NVIDIA 官方推荐用这个名字,但你可以改成别的。

为什么要改名字?因为 cuda-wsl-ubuntu.pin 只是一个下载下来的文件名,我们需要把它放到系统里,并改成符合 APT 规范的名字。


7. Debian 是 ?

  • Debian:Linux 发行版,Ubuntu 就是基于 Debian 的。


1. 什么是发行版(Distribution)?

发行版(Distribution,简称 Distro) 就是:

把 Linux 内核 + 各种基础软件 + 自家定制的包管理器/桌面环境/工具 打包成一个完整的操作系统。

比如说:

名字简介
Ubuntu使用最广的发行版,用户友好,适合初学者
Debian非常稳定、纯净,是 Ubuntu 的“母亲”
Arch Linux极客最爱,一切从零配置,超自由
CentOS / RHEL适合企业服务器的发行版
Kali Linux专为黑客和安全测试打造
Linux Mint更像 Windows 的 Ubuntu 衍生版

可以理解为: 🔹Linux 是内核,发行版是“带皮带壳”的定制整机系统。

就像:

  • Android 是 Linux 内核做的发行版,加了手机界面、系统服务。

  • Windows 是微软自己从头构建的 OS。


2. .exe.deb.apk 等后缀代表?

软件的“打包格式”,每种操作系统只能运行特定格式的文件。

系统安装包后缀举例相当于
Windows.exe / .msichrome_installer.exe可执行文件
macOS.dmgXcode.dmg磁盘镜像包
Linux (Debian/Ubuntu).debcuda.debDebian 系列安装包
Linux (RedHat/CentOS).rpmcuda.rpmRedHat 系列安装包
Android.apkWeChat.apk安卓安装包

你可以把这些格式理解为: 👉 不同平台的“安装包语言”,谁家系统就能读懂谁家的格式。


3. 什么是“依赖”?

依赖(Dependency) 就是:

一个软件运行时,依靠另一个库、驱动、模块 来正常工作。

举几个例子你马上就明白了:

主软件依赖的东西
TensorFlow依赖 CUDA 来调用 GPU 训练模型
VSCode依赖某些字体库、系统组件
浏览器依赖网络库、图形界面库
Python 项目经常 pip install numpy pandas,因为这些是依赖

🎯 CUDA 是为 GPU 加速设计的工具包,如果你要用 TensorFlow 的 GPU 功能,就必须装它。否则运行的时候会报错:“找不到 CUDA”。

 


✅ 总结口诀

  • apt:Advanced Package Tool,APT 管理 .deb 软件包。

  • dpkg:Debian Package,手动安装 .deb 包。

  • .deb:Debian 系的打包格式,像 Windows 的 .exe

  • 依赖 = 一个软件运行必须依靠的其他软件

  • 发行版 = Linux 内核+环境的“完整打包版本”


💡 结论

执行的命令本质上是在:

  1. 配置 NVIDIA CUDA 的软件源(优先级 pin 文件 + GPG 密钥)。

  2. 安装 CUDA(使用 apt-get 处理依赖)。

  3. 使用 dpkg 手动安装 .deb(相比 apt-get 更底层)。

现在看 Linux 的安装命令直接拆解成 包管理工具(APT/dpkg)+ 依赖管理(CUDA/NVIDIA)+ Linux 权限(sudo) 这几部分去理解 👍。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值