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. 执行安装脚本
打开终端,导航到安装包所在目录,运行以下命令:
# 赋予执行权限
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
安装完成后,关闭终端并重新打开,或运行以下命令使配置生效:
source ~/.bashrc
6. 验证安装
运行以下命令检查 Anaconda 是否安装成功:
conda --version
如果一切顺利,会显示 conda 的版本信息,表明 Anaconda 已成功安装。
如果需要安装特定版本的 Anaconda,可以从清华镜像站或其他镜像站点查找并下载相应的离线安装包。
二、离线安装依赖包
在安装 CUDA 等工具之前,需要确保系统安装了必要的依赖包,离线安装依赖的步骤如下:
1. 在有网络的 Ubuntu 22.04 机器上下载依赖包
先在联网的同版本 Ubuntu 上,创建一个目录用于存放依赖包:
mkdir -p ~/offline_deps && cd ~/offline_deps
下载 build-essential 及相关依赖(会自动下载所有依赖项):
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,则在联网机器上补充下载:
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 文件(方便传输):
tar -czvf offline_deps.tar.gz *.deb
2. 解决下载依赖时的 404 错误
在联网机器上下载依赖时出现 404 Not Found 错误,通常是因为软件源配置问题,解决方法如下:
备份原有源列表(可选):
sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak
替换为 Ubuntu 22.04 官方源(国内用户推荐用阿里云 / 清华源):
编辑源列表文件:
sudo nano /etc/apt/sources.list
清空原有内容,粘贴以下阿里云源(适用于 Ubuntu 22.04,代号 jammy):
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 退出)。
更新软件源缓存:
sudo apt-get update
之后重新下载依赖包。
3. 传输到离线机器并安装依赖
将打包好的 offline_deps.tar.gz 通过 U 盘等设备复制到离线的 Ubuntu 22.04 机器上。
解压包:
mkdir -p ~/offline_deps && tar -xzvf offline_deps.tar.gz -C ~/offline_deps
进入目录并安装所有 .deb 包:
cd ~/offline_deps
sudo dpkg -i *.deb
处理可能的依赖冲突(如果有报错):
如果出现依赖缺失提示,在联网机器上补充下载对应的 .deb 包,再复制到离线机器上用 dpkg -i 安装,之后运行:
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 驱动冲突,需要禁用:
创建配置文件
sudo nano /etc/modprobe.d/blacklist-nouveau.conf
在文件中添加:
blacklist nouveau
options nouveau modeset=0
保存后更新配置:
sudo update-initramfs -u
重启系统使配置生效:
sudo reboot
3. 进入文本模式并关闭图形界面服务
重启后按 Ctrl+Alt+F3 进入 tty3 文本控制台,登录账号,然后关闭图形界面服务:
sudo systemctl stop gdm3 # Ubuntu 22.04 通常使用 gdm3
若提示服务不存在,尝试:sudo systemctl stop lightdm
4. 安装驱动
进入驱动文件所在目录,执行:
赋予执行权限
chmod +x NVIDIA-Linux-x86_64-535.247.01.run
安装(–no-network 确保离线,–dkms 自动编译内核模块)
sudo ./NVIDIA-Linux-x86_64-535.247.01.run --no-network --dkms --silent
–silent 表示静默安装(默认配置),如需手动选择可去掉此参数。
5. 验证驱动安装
nvidia-smi
若显示显卡信息及驱动版本 535.247.01,则驱动安装成功。
6. 重启图形界面
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 安装脚本,排除驱动组件
导航到安装包所在目录,执行:
赋予执行权限
chmod +x cuda_12.1.0_530.30.02_linux.run
离线安装,仅安装 CUDA 工具包(不安装驱动)
sudo ./cuda_12.1.0_530.30.02_linux.run --no-network --toolkit --silent
–toolkit:仅安装 CUDA 工具包(不包含驱动、示例等)。–silent:静默安装,如需手动选择组件可去掉此参数(安装时需手动取消勾选 “NVIDIA Driver”)。
4. 配置环境变量
安装完成后,需要配置环境变量:
打开配置文件
nano ~/.bashrc
在文件末尾添加:
export PATH=/usr/local/cuda-12.1/bin:${PATH}
export LD_LIBRARY_PATH=/usr/local/cuda-12.1/lib64:${LD_LIBRARY_PATH}
使配置生效:
source ~/.bashrc
5. 验证安装
运行以下命令检查 CUDA 是否安装成功:
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 包
tar -xvf cudnn-linux-x86_64-8.9.3.28_cuda12-archive.tar.xz
进入解压后的目录(目录名可能略有差异,以实际为准)
cd cudnn-linux-x86_64-8.9.3.28_cuda12-archive
3. 手动复制 cuDNN 文件到 CUDA 目录
cuDNN 需要安装到 CUDA 的安装路径下(默认是 /usr/local/cuda-12.1/),执行以下命令复制文件:
复制头文件
sudo cp include/cudnn.h /usr/local/cuda-12.1/include/
sudo cp include/cudnn_version.h /usr/local/cuda-12.1/include/
复制库文件
sudo cp lib/libcudnn*.so* /usr/local/cuda-12.1/lib64/
复制示例和文档(可选)
sudo cp -r share/doc/cudnn/examples/ /usr/local/cuda-12.1/share/doc/cudnn/
4. 设置文件权限
确保复制的文件具有正确的权限:
为头文件设置权限
sudo chmod 644 /usr/local/cuda-12.1/include/cudnn.h
sudo chmod 644 /usr/local/cuda-12.1/include/cudnn_version.h
为库文件设置权限
sudo chmod 755 /usr/local/cuda-12.1/lib64/libcudnn*.so*
5. 验证 cuDNN 安装
检查 cuDNN 头文件版本:
cat /usr/local/cuda-12.1/include/cudnn_version.h | grep CUDNN_MAJOR -A 2
若输出类似以下内容,说明头文件安装成功:
#define CUDNN_MAJOR 8
#define CUDNN_MINOR 9
#define CUDNN_PATCHLEVEL 3
检查 cuDNN 库文件:
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。
在安装过程中,需要注意各软件版本的兼容性,提前准备好所需的离线安装包,并按照步骤逐步操作。
遇到问题时,仔细查看错误提示,针对性地解决依赖缺失等问题。搭建好这个环境后,你就可以在离线机器上进行深度学习相关的开发和研究工作了。