Ubuntu 22.04 离线环境下完整安装 Anaconda、CUDA 12.1、NVIDIA 驱动及 cuDNN 8.9.3 教程

Ubuntu 22.04 离线环境下完整安装 Anaconda、CUDA 12.1、NVIDIA 驱动及 cuDNN 8.9.3 教程。

在很多场景下,我们需要在没有网络连接的 Ubuntu 22.04 机器上搭建深度学习环境,这就需要进行离线安装。本文将详细介绍如何在离线环境下依次安装 Anaconda、NVIDIA 驱动、CUDA 12.1、相关依赖以及 cuDNN 8.9.3,帮助你顺利搭建起完整的深度学习开发环境。

一、离线安装 Anaconda

Anaconda 是一个强大的 Python 包管理工具,包含了众多科学计算和数据分析所需的库,离线安装步骤如下:

1. 提前下载 Anaconda 安装包

在有网络的环境中,访问 Anaconda 官网(https://www.anaconda.com/),下载适用于 Linux 的离线安装包(.sh 文件)。例如,可选择 Anaconda3-2023.09-0-Linux-x86_64.sh 版本。

2. 传输安装包到离线机器

使用 USB 驱动器或其他存储设备,将下载好的 .sh 文件复制到 Ubuntu 22.04 离线机器上。

3. 执行安装脚本

打开终端,导航到安装包所在目录,运行以下命令:

bash 复制代码
# 赋予执行权限
chmod +x Anaconda3-2023.09-0-Linux-x86_64.sh
# 运行安装脚本
./Anaconda3-2023.09-0-Linux-x86_64.sh

4. 按照安装向导操作

阅读许可协议,按 Enter 继续,按 Q 退出阅读。

输入 yes 接受许可协议。

选择安装路径(默认路径即可,一般为 ~/anaconda3)。

选择是否初始化 Anaconda(建议输入 yes)。

5. 激活 Anaconda

安装完成后,关闭终端并重新打开,或运行以下命令使配置生效:

bash 复制代码
source ~/.bashrc

6. 验证安装

运行以下命令检查 Anaconda 是否安装成功:

bash 复制代码
conda --version

如果一切顺利,会显示 conda 的版本信息,表明 Anaconda 已成功安装。

如果需要安装特定版本的 Anaconda,可以从清华镜像站或其他镜像站点查找并下载相应的离线安装包。

二、离线安装依赖包

在安装 CUDA 等工具之前,需要确保系统安装了必要的依赖包,离线安装依赖的步骤如下:

1. 在有网络的 Ubuntu 22.04 机器上下载依赖包

先在联网的同版本 Ubuntu 上,创建一个目录用于存放依赖包:

bash 复制代码
mkdir -p ~/offline_deps && cd ~/offline_deps

下载 build-essential 及相关依赖(会自动下载所有依赖项):

bash 复制代码
sudo apt-get download $(apt-cache depends --recurse --no-recommends --no-suggests \
--no-conflicts --no-breaks --no-replaces --no-enhances \
--no-pre-depends build-essential gcc g++ make | grep "^\w" | sort -u)

若后续安装中出现依赖缺失,如提示缺少 libc6-dev,则在联网机器上补充下载:

bash 复制代码
sudo apt-get download $(apt-cache depends --recurse --no-recommends --no-suggests \
--no-conflicts --no-breaks --no-replaces --no-enhances \
--no-pre-depends libc6-dev | grep "^\w" | sort -u)

打包这些 .deb 文件(方便传输):

bash 复制代码
tar -czvf offline_deps.tar.gz *.deb

2. 解决下载依赖时的 404 错误

在联网机器上下载依赖时出现 404 Not Found 错误,通常是因为软件源配置问题,解决方法如下:

备份原有源列表(可选):

bash 复制代码
sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak

替换为 Ubuntu 22.04 官方源(国内用户推荐用阿里云 / 清华源):

编辑源列表文件:

bash 复制代码
sudo nano /etc/apt/sources.list

清空原有内容,粘贴以下阿里云源(适用于 Ubuntu 22.04,代号 jammy):

bash 复制代码
deb http://mirrors.aliyun.com/ubuntu/ jammy main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ jammy main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ jammy-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ jammy-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ jammy-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ jammy-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ jammy-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ jammy-backports main restricted universe multiverse

保存退出(按 Ctrl+O 保存,Ctrl+X 退出)。

更新软件源缓存:

bash 复制代码
sudo apt-get update

之后重新下载依赖包。

3. 传输到离线机器并安装依赖

将打包好的 offline_deps.tar.gz 通过 U 盘等设备复制到离线的 Ubuntu 22.04 机器上。

解压包:

bash 复制代码
mkdir -p ~/offline_deps && tar -xzvf offline_deps.tar.gz -C ~/offline_deps

进入目录并安装所有 .deb 包:

bash 复制代码
cd ~/offline_deps
sudo dpkg -i *.deb

处理可能的依赖冲突(如果有报错):

如果出现依赖缺失提示,在联网机器上补充下载对应的 .deb 包,再复制到离线机器上用 dpkg -i 安装,之后运行:

bash 复制代码
sudo dpkg --configure -a

三、离线安装 NVIDIA 驱动 535.247.01

NVIDIA 驱动是 GPU 正常工作的基础,以下是离线安装步骤:

1. 提前下载 NVIDIA 驱动离线包

从 NVIDIA 官网(https://www.nvidia.com/en-us/drivers/unix/)下载适用于 Linux 的驱动.run 文件,选择 NVIDIA-Linux-x86_64-535.247.01.run。

2. 禁用 nouveau 驱动

nouveau 驱动可能与 NVIDIA 驱动冲突,需要禁用:

创建配置文件

bash 复制代码
sudo nano /etc/modprobe.d/blacklist-nouveau.conf

在文件中添加:

bash 复制代码
blacklist nouveau
options nouveau modeset=0

保存后更新配置:

bash 复制代码
sudo update-initramfs -u

重启系统使配置生效:

bash 复制代码
sudo reboot

3. 进入文本模式并关闭图形界面服务

重启后按 Ctrl+Alt+F3 进入 tty3 文本控制台,登录账号,然后关闭图形界面服务:

bash 复制代码
sudo systemctl stop gdm3  # Ubuntu 22.04 通常使用 gdm3

若提示服务不存在,尝试:sudo systemctl stop lightdm

4. 安装驱动

进入驱动文件所在目录,执行:

赋予执行权限

bash 复制代码
chmod +x NVIDIA-Linux-x86_64-535.247.01.run

安装(--no-network 确保离线,--dkms 自动编译内核模块)

bash 复制代码
sudo ./NVIDIA-Linux-x86_64-535.247.01.run --no-network --dkms --silent

--silent 表示静默安装(默认配置),如需手动选择可去掉此参数。

5. 验证驱动安装

bash 复制代码
nvidia-smi

若显示显卡信息及驱动版本 535.247.01,则驱动安装成功。

6. 重启图形界面

bash 复制代码
sudo systemctl start gdm3

按 Ctrl+Alt+F2 或 F7 返回图形界面

四、离线安装 CUDA 12.1.0

CUDA 是 NVIDIA 推出的并行计算平台和编程模型,离线安装步骤如下:

1. 提前下载 CUDA 12.1.0 离线安装包

在有网络的环境中,从 NVIDIA 官网(https://developer.nvidia.com/cuda-12.1.0-download-archive?target_os=Linux\&target_arch=x86_64\&Distribution=Ubuntu\&target_version=22.04\&target_type=runfile_local)下载适用于 Linux 的离线安装包,选择 "runfile (local)" 类型,下载得到类似 cuda_12.1.0_530.30.02_linux.run 的文件。

2. 传输安装包到离线机器

使用 USB 驱动器等将下载好的 .run 文件复制到 Ubuntu 22.04 机器上。

3. 运行 CUDA 安装脚本,排除驱动组件

导航到安装包所在目录,执行:

赋予执行权限

bash 复制代码
chmod +x cuda_12.1.0_530.30.02_linux.run

离线安装,仅安装 CUDA 工具包(不安装驱动)

bash 复制代码
sudo ./cuda_12.1.0_530.30.02_linux.run --no-network --toolkit --silent

--toolkit:仅安装 CUDA 工具包(不包含驱动、示例等)。--silent:静默安装,如需手动选择组件可去掉此参数(安装时需手动取消勾选 "NVIDIA Driver")。

4. 配置环境变量

安装完成后,需要配置环境变量:

打开配置文件

bash 复制代码
nano ~/.bashrc

在文件末尾添加:

bash 复制代码
export PATH=/usr/local/cuda-12.1/bin:${PATH}
export LD_LIBRARY_PATH=/usr/local/cuda-12.1/lib64:${LD_LIBRARY_PATH} 

使配置生效:

bash 复制代码
source ~/.bashrc

5. 验证安装

运行以下命令检查 CUDA 是否安装成功:

bash 复制代码
nvcc --version

若显示 CUDA 版本信息(12.1.0),则表明安装成功。

五、离线安装 cuDNN 8.9.3

cuDNN 是用于深度神经网络的 GPU 加速库,离线安装步骤如下:

1. 提前下载 cuDNN 8.9.3 离线包

访问 NVIDIA 官网的 cuDNN 下载页(https://developer.nvidia.com/rdp/cudnn-archive,需注册登录),选择与 CUDA 12.1 兼容的 cuDNN 8.9.3 版本,下载适用于 Ubuntu 22.04 的 tar 包(如 cudnn-linux-x86_64-8.9.3.28_cuda12-archive.tar.xz),注意需匹配 CUDA 版本,选择标注 "for CUDA 12.x" 的包。

2. 传输并解压 cuDNN 包

将下载的 cudnn-linux-x86_64-8.9.3.28_cuda12-archive.tar.xz 复制到离线机器,然后解压:

解压 tar 包

bash 复制代码
tar -xvf cudnn-linux-x86_64-8.9.3.28_cuda12-archive.tar.xz

进入解压后的目录(目录名可能略有差异,以实际为准)

bash 复制代码
cd cudnn-linux-x86_64-8.9.3.28_cuda12-archive

3. 手动复制 cuDNN 文件到 CUDA 目录

cuDNN 需要安装到 CUDA 的安装路径下(默认是 /usr/local/cuda-12.1/),执行以下命令复制文件:

复制头文件

bash 复制代码
sudo cp include/cudnn.h /usr/local/cuda-12.1/include/
sudo cp include/cudnn_version.h /usr/local/cuda-12.1/include/

复制库文件

bash 复制代码
sudo cp lib/libcudnn*.so* /usr/local/cuda-12.1/lib64/

复制示例和文档(可选)

bash 复制代码
sudo cp -r share/doc/cudnn/examples/ /usr/local/cuda-12.1/share/doc/cudnn/

4. 设置文件权限

确保复制的文件具有正确的权限:

为头文件设置权限

bash 复制代码
sudo chmod 644 /usr/local/cuda-12.1/include/cudnn.h
sudo chmod 644 /usr/local/cuda-12.1/include/cudnn_version.h

为库文件设置权限

bash 复制代码
sudo chmod 755 /usr/local/cuda-12.1/lib64/libcudnn*.so*

5. 验证 cuDNN 安装

检查 cuDNN 头文件版本:

bash 复制代码
cat /usr/local/cuda-12.1/include/cudnn_version.h | grep CUDNN_MAJOR -A 2

若输出类似以下内容,说明头文件安装成功:

bash 复制代码
#define CUDNN_MAJOR 8
#define CUDNN_MINOR 9
#define CUDNN_PATCHLEVEL 3

检查 cuDNN 库文件:

bash 复制代码
ls -l /usr/local/cuda-12.1/lib64/libcudnn.so*

若显示 libcudnn.so.8.9.3 及相关软链接(libcudnn.so、libcudnn.so.8),说明库文件安装成功。

总结

通过以上步骤,我们在 Ubuntu 22.04 离线环境下成功安装了 Anaconda、NVIDIA 驱动 535.247.01、CUDA 12.1.0 以及 cuDNN 8.9.3。

在安装过程中,需要注意各软件版本的兼容性,提前准备好所需的离线安装包,并按照步骤逐步操作。

遇到问题时,仔细查看错误提示,针对性地解决依赖缺失等问题。搭建好这个环境后,你就可以在离线机器上进行深度学习相关的开发和研究工作了。

相关推荐
聚客AI19 分钟前
👉FastMCP深度解析:ctx.sample() 如何实现LLM任务逆向委托
人工智能·llm·mcp
京东零售技术19 分钟前
Text2SQL准确率暴涨22.6%!3大维度全拆
人工智能
去伪存真23 分钟前
手把手教你实现用AI大模型做代码审查
前端·人工智能
京东零售技术24 分钟前
4个月、2个人、1个霸榜的开源项目 !这位98年的校招生做到了!
人工智能
洛华3631 小时前
初识神经网络04——构建神经网络2
人工智能·深度学习·神经网络
BricheersZ1 小时前
LangChain4J-(1)-Hello World
java·人工智能·langchain
POLOAPI1 小时前
震撼!GPT-5已来,我用3种方法将API成本降低90%(附完整代码)
人工智能·chatgpt·ai编程
坐在地上想成仙1 小时前
计算机视觉(7)-纯视觉方案实现端到端轨迹规划(思路梳理)
人工智能·计算机视觉
新智元2 小时前
奥特曼公然叫板马斯克!重金杀入脑机接口,硅谷两大巨头彻底决裂
人工智能·openai
BarbaraChow2 小时前
Seed-VC:零样本语音转换与扩散transformer
人工智能·深度学习·transformer