Ubuntu22.04.5离线安装英伟达驱动(linux离线安装软件)
本文档旨在分享笔者在离线Ubuntu平台安装英伟达驱动的经验。笔者设备是才装好的Ubuntu22.04.5,没有连网,只离线安装了vscode,miniconda。所以文档中的命令一般都不需要单独安装相关包,可以直接往下进行。
其他软件离线安装方式也可以参考本文。
本教程是将步骤喂给AI生成的基础上修改,如有错误,敬请指正。
1 准备工作
主要参考教程 ubuntu apt-get离线源制作
1.1 在联网平台下载安装包
安装Nvidia显卡驱动前置要求是要安装gcc,g++,make等。首先,在联网linux系统平台下载相关安装包。
在终端中执行以下命令来下载gcc
, g++
, make
, build-essential
,dpkg-dev
及其依赖项,选择或者新建一个安装包文件夹,进入之后输入以下命令: sudo apt-get download $(apt-cache depends --recurse --no-recommends --no-suggests --no-conflicts --no-breaks --no-replaces --no-enhances gcc g++ make build-essential dpkg-dev | grep "^\w" | sort -u)
此命令回下载离线安装所有必需的 .deb
文件(包括安装包本身及相关依赖)到当前目录。
访问 NVIDIA 驱动下载官方网站 选择与显卡匹配的驱动程序进行下载。对于离线安装,确保下载 .run
文件。
1.2 联网平台建立包依赖关系
在下载完所有必要的 .deb
文件后,需要为这些文件创建一个本地软件仓库。通过 dpkg-scanpackages
工具(需要自行安装)完成。
sudo dpkg-scanpackages -m . /dev/null | gzip -9c > Packages.gz
此命令会在当前目录下生成一个 Packages.gz
文件,该文件包含了所有 .deb
文件的信息,供 APT 使用。
1.3 打包并传输到离线系统
将下载的所有.deb
文件及其 Packages.gz
文件打包成一个压缩文件,以便于传输: tar -zcvf package.tar.gz 安装包文件夹路径
通过U盘等介质传输打包压缩后的文件,NVIDIA驱动直接单独拷贝即可
目标离线平台解压缩,将上述生成的压缩文件复制到离线系统的指定路径,并解压到指定路径:
tar -zxvf package.tar.gz -C 指定路径
1.4 配置离线源
添加离线源假设将解压后的文件放置在 /opt/gcc_g++_make_offline/archive
目录下,接下来需要将此路径添加到 APT 的源列表中:
echo "deb file:///opt/gcc_g++_make_offline/ archive/" | sudo tee /etc/apt/offline-repo.list
更新源 更新 APT 的软件包索引以包含新的离线源:
sudo apt-get update
1.5 安装软件包
安装所有下载的软件包以笔者安装路径为例,进入包含 .deb
文件的目录,并安装所有软件包:
cd /opt/gcc_g++_make_offline/archivesudo dpkg -i *.deb
如果出现依赖性问题,可以运行以下命令来解决:
sudo apt-get -f install
1.6 验证安装
安装完成后,可以通过检查版本号来验证安装是否成功:gcc --versiong++ --versionmake --version
2 NVIDIA 驱动安装过程
2.1 关闭图形界面
为了防止安装过程中出现冲突,建议在纯文本终端模式下进行操作。按下 Ctrl + Alt + F3
进入一个 TTY 终端,然后输入用户名和密码进行登录。
2.2 停止 X 服务器
在继续之前,需要停止 X 服务器(图形用户界面),如果使用的是不同的显示管理器,请替换 lightdm
为相应的服务名,如笔者为gdm3
。:
sudo service lightdm stop
非图形界面和终端类似,如果关闭X服务器之后界面只显示一个光标且无法输入,可以切换到其他文本模式控制台 Ctrl + Alt + F2~F6
。除F3外F2到F6选一个即可,重新登录。输入以下命令查看X服务是否已关闭:
sudo systemctl status gdm3
2.3 安装 NVIDIA 驱动
主要参考教程 Ubuntu16.04安装NVIDIA驱动踩过的坑
运行安装脚本,按照提示进行安装:
sudo sh NVIDIA-Linux-x86_64-*.run
安装过程的选项参考Ubuntu16.04安装NVIDIA驱动踩过的坑。
笔者安装过程出现 ERROR: An error occurred while performing the step:Building kernel modules. See /var/log/nv
报错,查看log后发现报错信息为cc: error: unrecognized command-line option ‘-ftrivial-auto-var-init=zero‘
,搜索之后发现是gcc版本问题,ubuntu22.04默认下载gcc-11,笔者linux系统内核版本是6.13,需要使用gcc-12,于是再装一个新版的gcc和g++即可,参考一 准备工作
里的下载命令,下载指定版本只需将gcc改成gcc-12。命令如下:
sudo apt-get download $(apt-cache depends --recurse --no-recommends --no-suggests --no-conflicts --no-breaks --no-replaces --no-enhances gcc-12 g++-12 | grep "^\w" | sort -u)
完成后再在离线平台上安装gcc-12
,g++-12
,然后用gcc --version
发现系统默认编译器版本还是gcc-11,需要手动调整默认编译器版本或者优先级。命令如下(其中20和10是优先级,数字大即表示优先级高):
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-12 20 --slave /usr/bin/g++ g++ /usr/bin/g++-12sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-11 10 --slave /usr/bin/g++ g++ /usr/bin/g++-11
2.4 启动图形界面
安装完成后,重启 X 服务器:
sudo service gdm3 start
或者直接重启计算机:
sudo reboot
2.5 验证安装
重启后,通过以下命令检查 NVIDIA 驱动是否正确安装:
nvidia-smi
如果一切正常,终端会打印有关 GPU 的信息,包括使用的驱动版本。