# nvidia-driver-installer
**Repository Path**: EM_GeekLab/nvidia-driver-installer
## Basic Information
- **Project Name**: nvidia-driver-installer
- **Description**: 支持多种 Linux 发行版的交互式/自动化 NVIDIA 驱动安装脚本
- **Primary Language**: Shell
- **License**: Apache-2.0
- **Default Branch**: main
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 12
- **Forks**: 3
- **Created**: 2025-07-10
- **Last Updated**: 2025-08-27
## Categories & Tags
**Categories**: ai
**Tags**: None
## README
NVIDIA 驱动通用安装脚本
一个脚本,支持多种 Linux 发行版的自动化 NVIDIA 驱动安装
```bash
curl -sSL https://raw.githubusercontent.com/EM-GeekLab/nvidia-driver-installer/main/nvidia-install.sh -o nvidia-install.sh
sudo bash nvidia-install.sh
```
简体中文 | English
操作系统 |
适配版本 |
Ubuntu |
20.04 , 22.04 , 24.04 |
Debian |
12 |
KylinOS(银河麒麟) |
V10 SP3 |
Red Hat Enterprise Linux |
8.x , 9.x |
Rocky Linux |
8.x , 9.x |
Oracle Linux |
8.x , 9.x |
Fedora |
官方支持 41 脚本理论支持 39 ~42 |
openSUSE |
15 SP6 |
SUSE Linux Enterprise Server |
15 SP6 |
Amazon Linux |
2023 |
Azure Linux |
2.0 , 3.0 |
> [!WARNING]
> 对于其他基于 Debian 或 RHEL 的衍生发行版,脚本也可能兼容,但未经充分测试。
### 📖 简介
本项目旨在提供一个通用的 NVIDIA 驱动安装脚本,支持多种 Linux 发行版。它通过包管理器(如 `dnf`、`apt`、`zypper` 等)自动化安装 NVIDIA 驱动,避免了手动下载和运行 `.run` 文件的繁琐过程。
同时脚本提供了高度自动化的安装体验,支持无人值守安装、幂等性操作、状态恢复和回滚机制,确保在各种环境下都能稳定运行。
### 🚀 快速开始
> [!NOTE]
> 为安全起见,推荐您采用以下两步法进行安装。这使您有机会在执行前审查脚本内容。
```bash
curl -sSL https://raw.githubusercontent.com/EM-GeekLab/nvidia-driver-installer/main/nvidia-install.sh -o nvidia-install.sh
sudo bash nvidia-install.sh
```
该命令将通过一个可交互的安装向导,帮助您完成 NVIDIA 驱动的安装。
若您需要在 CI/CD 环境或自动化脚本中使用,可以添加 `-y` 参数实现无人值守安装:
```bash
sudo bash nvidia-install.sh -y -q --auto-reboot
```
### 🛠️ 用法与选项
脚本提供了丰富的命令行参数以满足不同场景的需求。
用法: `./nvidia-install.sh [选项]`
#### 基本选项:
-h, --help 显示此帮助信息
-t, --type TYPE 安装类型: full, compute-only, desktop-only (默认: full)
-m, --modules TYPE 内核模块类型: open, proprietary (默认: open)
-l, --local 使用本地仓库安装
-v, --version VERSION 指定驱动版本 (例如: 575)
#### 自动化选项:
-y, --yes 自动确认所有提示 (无交互模式)
-q, --quiet 静默模式,减少输出
-f, --force 强制重新安装,即使已安装驱动
-s, --skip-checks 跳过现有安装检查
--auto-reboot 安装完成后自动重启
#### 高级选项:
--cleanup 清理失败的安装状态并退出
--rollback 回滚到安装前状态
--show-exit-codes 显示所有退出码及其含义
#### 示例
* **交互式安装 (推荐)**
```bash
sudo bash nvidia-install.sh
```
* **完全自动化安装 (CI/CD 环境)**
```bash
sudo bash nvidia-install.sh -y -q --auto-reboot
```
* **安装纯计算驱动,并使用专有内核模块**
```bash
sudo bash nvidia-install.sh -t compute-only -m proprietary -y
```
* **回滚所有更改**
```bash
sudo bash nvidia-install.sh --rollback
```
* **查看所有退出码含义**
```bash
./nvidia-install.sh --show-exit-codes
```
### ✨ 项目特性
本脚本旨在解决手动或使用官方 `.run` 文件安装方式的种种不便,提供一个更现代化、更可靠的解决方案。
* **🤖 高度自动化**
* 通过 `-y` (yes) 和 `-q` (quiet) 等参数,可实现完全无交互的静默安装,无需人工干预。
* 自动检测操作系统发行版、版本及 GPU 架构,并选择最佳安装策略。
* 自动处理现有驱动冲突,并根据用户选择或自动化策略进行清理。
* **🔄 幂等性与状态恢复**
* 脚本支持**幂等操作**,可以安全地重复运行。如果驱动已正确安装,脚本会检测到并跳过,不会造成系统损坏。
* 安装过程中的每一步都会被记录。如果脚本意外中断(如网络问题、SSH 断开),下次运行时会自动提示从断点处**恢复安装**,无需从头开始。
* **⏪ 可靠的回滚机制**
* 在执行任何对系统有实质性修改的操作前(如安装软件包、添加仓库),脚本会记录相应的“撤销”操作。
* 如果安装失败或您想卸载驱动,只需运行 `--rollback` 参数,即可将系统**恢复到安装前的状态**。
* **🔒 Secure Boot 智能处理**
* 自动检测系统的 UEFI Secure Boot 状态。
* 如果 Secure Boot 已启用,脚本会提供详细的解释和多种解决方案(禁用 SB 或配置 MOK 密钥)。
* 在交互模式下,可以引导用户自动生成并注册 MOK 密钥,以满足 Secure Boot 的签名要求。
* **⚙️ 灵活的安装选项**
* 支持**开源** (`open`) 和**专有** (`proprietary`) 内核模块的选择。
* 支持**完整** (`full`)、**纯计算** (`compute-only`) 和**纯桌面** (`desktop-only`) 三种安装类型,满足不同场景的需求。
* 支持通过 NVIDIA 官方网络仓库或本地仓库进行安装。
### 🎯 适用场景
本脚本在以下场景中表现尤为出色:
* **数据中心与服务器集群**: 需要对大量服务器进行统一、可重复的驱动部署。自动化和幂等性特性可确保部署的一致性和可靠性。
* **DevOps & CI/CD 环境**: 在自动化流水线中,需要一个可预测、有明确退出码的脚本来构建包含 NVIDIA 驱动的镜像或环境。
* **多发行版环境**: 支持同时为多台安装不同发行版的机器安装 NVIDIA 驱动,脚本会自动识别并适配。统一的部署标准可以减少维护成本。
### 🆚 与 Runfile 安装方式对比
| 特性 | 本脚本 (包管理器方式) | 官方 `.run` 文件 |
| :-------------- | :-------------------------------------------------------------------------- | :------------------------------------------------------------------------ |
| **集成度** | ✅ **高**:与系统包管理器(`dnf`/`apt`/`zypper`)深度集成,依赖关系清晰。 | ❌ **低**:独立于包管理器之外,像“空降”到系统中,可能与系统库冲突。 |
| **卸载** | ✅ **干净、彻底**:可通过包管理器轻松卸载,`--rollback` 功能可恢复所有更改。 | ⚠️ **困难、不彻底**:`nvidia-uninstall` 可能有残留,手动清理复杂且易出错。 |
| **自动化** | ✅ **非常容易**:丰富的命令行参数和环境变量为自动化量身定制。 | ⚠️ **较复杂**:需要拼接大量 `--silent` 系列参数,容错性差。 |
| **幂等性** | ✅ **是**:可安全地重复运行。 | ❌ **否**:重复运行通常会导致安装失败或冲突。 |
| **回滚** | ✅ **支持**:一键回滚到安装前状态。 | ❌ **不支持**:无任何回滚机制。 |
| **Secure Boot** | ✅ **智能处理**:自动检测并提供解决方案,可辅助 MOK 签名。 | ❌ **不支持**:需要用户在安装前手动处理所有 Secure Boot 相关问题。 |
| **离线安装** | ⚠️ **间接支持**:需要先搭建本地仓库。 | ✅ **直接支持**:`.run` 文件本身就是离线安装包。 |
| **最新驱动** | ⚠️ **依赖仓库**:驱动版本更新速度取决于 NVIDIA 官方仓库。 | ✅ **最快**:通常 NVIDIA 官网会最先发布 `.run` 格式的最新驱动。 |
---
如果这个项目对您有所帮助,请点击仓库右上角的 ⭐ Star 并分享给更多的朋友!