ubuntu 本地化部署大模型—nvidia驱动安装


前言

玩本地化部署大模型,最令人头疼的就是环境的搭建。经过博主2个月的努力,踩了无数的坑,终于搞定本地部署的流程。包括使用unsloth模型微调,模型导出,ollama加载自己的微调模型。最后还琢磨了如何进行离线升级ollama、dify。特别适合需要离线部署,甚至需要内网部署和升级的应用需求。
接下来我将从Ubuntu系统安装完成开始一步步讲解。从anaconda安装、到nvidia驱动,cuda安装,cudnn安装,pytorch安装,anaconda环境管理,unsloth环境创建,llama.cpp导入。所有操作和命令基本上可以保证一次成功(中间不需要翻墙,下载速度慢的问题也都给了相应解决方法,一站解决全部问题)。


一、操作系统版本选择

这里博主尝试了多种版本的ubuntu系统,根据经验kernel、gcc、glibc、driver、cuda、cudnn、python、pytorch全部都有版本要求。版本不对想修改也很难。比如:单独更换系统kernel后会导致网卡驱动丢失,有时后成功安装了前面所有的,到最后pytorch版本又不兼容。经过尝试,最后还是选择Ubuntu20.0.4版本。如果后面想省事就选这个版本。

二、基础工具安装

假设各位已经成功在电脑上安装了ubuntu20.0.4版本的系统,现在就可以开始基础工具的安装了。这里主要先安装anaconda、chrome浏览器、x11vnc、xshell、xftp、cpolar这些方便后期远程使用维护的工具。

1、配置root用户密码(管理员权限要掌握在自己手里)

修改root密码

$ sudo passwd root

输入新密码两遍,回车确认
切换root用户输入“su root”,切换回来时输入“su 自己用户名”

$ su root

安装pip工具。在root用户下直接输入apt-get install pip就行,在非root用户下需要加sudo,即输入sudo apt-get install pip。
后面需要在root用户下安装时命令前面会带#,不需要使用root用户安装时命令前面会使用$符号进行区分。

# apt-get install pip

2、安装anaconda(用于python版本的管理)

下载anaconda。
这里的版本可以根据需要自己改。下面附上官方的下载网页,里面可以找到最新的版本,注意:要根据CPU类型选择版本,CPU是Intel或者amd的就选x86版本:https://www.anaconda.com/download/success?reg=skipped

$ wget https://repo.anaconda.com/archive/Anaconda3-2025.12-2-Linux-x86_64.sh

安装anaconda(注意这里不要安装到root下面,不要root执行。此时anaconda默认安装在/home/anaconda下面)
$ bash Anaconda3-2023.03-1-Linux-x86_64.sh
注册环境变量(这里需要root执行)

# echo ‘export PATH=“/home/yyf4802/anaconda3/bin:$PATH”’ >> ~/.bashrc

重新加载环境变量(这里需要root执行)

# source ~/.bashrc

初始化anaconda(这里需要root执行)

# conda init

3、安装xftp和ssh(方便远程维护和显示驱动卸载时使用)

安装Xftp

# apt-get install vsftpd

对 vsftpd 进行配置,输入命令:

# gedit /etc/vsftpd.conf

找到以下内容并做以下修改,保存:

anonymous_enable=NO
local_enable=YES
write_enable=YES

重新启动 vsftpd 服务:

# /etc/init.d/vsftpd restart

按照以上操作还没完成,此时SSH的端口22没有打开,putty也用不了。其实原因是没有安装SSH-service。
Ubuntu缺省安装了openssh-client,所以在这里就不安装了,如果你的系统没有安装的话,再用apt-get安装上即可。
** 安装ssh-server

# apt-get install openssh-server

安装ssh-client

# apt-get install openssh-client

确认sshserver是否安装好

# ps -e | grep sshd
450 ? 00:00:00 sshd

如果看到第二行的输出,那说明ssh-server已经启动了。
如果只有ssh-agent说明ssh-server还没有启动,需要执行命令启动ssh服务:

# /etc/init.d/ssh start

按照以上设置后,xftp和xshell可以顺利连接电脑使用。
注意:这里ssh必须要安装,否则后期装显卡驱动时黑屏状态下可以使用ssh连接进行操作。

4、安装VNC(可以实现远程桌面,没有需求可以不装)

Ubuntu安装VNC,可以实现远程桌面连接。这里参考了下面博主的文章https://blog.csdn.net/u012039040/article/details/129312398
实现ubuntu系统桌面级别的远程连接,需要在ubuntu 系统中安装VNC。既然是桌面,前提是需要ubuntu 带有图形化界面,如果没有,可以执行以下命令安装图形化界面(下面是两个命令):

# apt install ubuntu-desktop
# apt-get install gnome-panel gnome-settings-daemon metacity nautilus gnome-terminal

重启电脑

# reboot

在ubuntu中安装VNC:

# apt-get install x11vnc
# apt-get install lightdm

设置密码,设置密码后,会问你是否需要将密码保存在:/root/.vnc/passwd,输入y确认即可(注意:这里的因为是root下安装的,所以位置是这个,否则位置是/home/用户名/.vnc/passwd,下面设置开机启动时就要响应更改)

# x11vnc -storepasswd

设置VNC开机启动
这里先安装vim工具,方便后期ssh操作时编辑电脑文件

# apt install vim

在/lib/systemd/system/文件夹下创建一个x11vnc.service文件:

# vim /lib/systemd/system/x11vnc.service

键盘点击字母i,进入插入模式,将以下内容粘贴进去:
!!注意: VNC路径/root/.vnc/passwd也要正确

[Unit]
Description=Start x11vnc at startup.
After=multi-user.target
 
[Service]
Type=simple
ExecStart=/usr/bin/x11vnc -auth guess -forever -loop -noxdamage -repeat -rfbauth /root/.vnc/passwd -rfbport 5900 -shared
 
[Install]
WantedBy=multi-user.target

设置开机启动

# systemctl enable x11vnc.service

启动服务

# systemctl start x11vnc.service

5、安装cpolar以方便公网远程(没有需求可以不装)

cpolar 安装(国内使用)

# curl -L https://www.cpolar.com/static/downloads/install-release-cpolar.sh | sudo bash

查看版本号,有正常显示版本号即为安装成功

# cpolar version

登录cpolar官网后台https://dashboard.cpolar.com/,点击左侧的验证,查看自己的认证token,之后将token贴在命令行里

# cpolar authtoken <token>

简单穿透测试,有正常生成相应的公网地址即为穿透成功

# cpolar http 8080

向系统添加服务,设置开机启动

# sudo systemctl enable cpolar

启动cpolar服务

# sudo systemctl start cpolar

查看服务状态

# sudo systemctl status cpolar

cpolar安装成功后,在浏览器上访问本地9200端口,【127.0.0.1:9200],使用cpolar邮箱账号登录 web UI管理界面。

(在创建隧道界面中可以创建连接,在状态中可以查看公网地址)
例如:2.tcp.vip.cpolar.cn:13001

三、安装nvidia驱动和cuda

1、根据kernel、gcc、libc、driver、cuda版本依次调整安装

目前本人使用RTX2080、RTX4090显卡安装过,以下版本搭配可以通过。

项目 RTX2080 RTX4090 查看版本命令
系统 Ubuntu 20.04.1 Ubuntu 20.04.1
kernel 5.15.0-131-generic 5.15.0-131-generic uname -r
gcc 9.4.0 9.4.0 gcc -v
glibc 2.34 2.34 ldd --version
driver 535.216.01 535.230 nvidia-smi
cuda 12.1 12.1 nvcc --version
cudnn linux-x86_64-8.9.7.29_cuda12 linux-x86_64-8.9.7.29_cuda12
python 3.10.11 3.10.11 python -V
pytorch 2.5.0(cuda12.1) 2.5.0(cuda12.1)

(1)kernel版本

Ubunt20.04的kernel版本为5.X,因此不必调整(如果其他版本的Ubuntu的kernel版本。调整kernel版本会比较麻烦,还需重新安装网卡等的驱动。)
查看当前内核版本,只要是5开头的版本就可以。

# uname -r

(2)安装gcc

Ubunt20.04可能没有默认安装gcc,所以此处附gcc安装和调整版本方法
1.首先查看gcc的版本(默认是9.X.X的版本,只要是9开头的版本就可以)

# gcc -v

2.安装所需版本的gcc(这里是9版本的,所以是gcc-9,其他版本类似)

# apt-get install gcc-9
# apt-get install g+±9

此处可能会提示现有libc版本不满足,可以先到下一步(3)安装libc
2.1创建软连接(先删除原来的软链接,再创建新的软连接)

# cd /usr/bin
# rm -rf gcc
# rm -rf g++
# ln -s gcc-9 gcc
# ln -s g+±9 g++

2.2 再次安装gcc(如果是首次安装时,最后必须需要输入这个,不然显卡安装会报找不到cc)

# apt install gcc

(3)安装libc

注意:如果不安装libc,在安装显卡会时出现“You do not appear to have libc header files installed on your system. Please install your distribution’s libc development package.”因此需要安装libc。
查看已安装的libc版本

# dpkg -l | grep libc6

安装libc-dev

# apt-get install libc-dev

此时会输出以下提示
The following packages have unmet dependencies:
libc6-dev : Depends: libc6 (= 2.31-0ubuntu9.7) but 2.31-0ubuntu9.9 is to be installed
根据提示安装对应版本

# apt-get install libc6=2.31-0ubuntu9.7
# apt-get install build-essential

这里还需安装make工具,否则后面安装NVIDIA驱动提示缺少工具make

# apt-get install make

2、禁用nouveau

NVIDIA显卡Ubuntu安装步骤,参考了下面博主的文章。这里表示感谢。
https://blog.csdn.net/m0_37605642/article/details/119651996
查看显卡型号

# ubuntu-drivers devices

禁用nouveau
1.验证是否禁用 nouveau

# lsmod | grep nouveau

2.若有输出,说明没有禁用,进行以下操作禁用

# sudo gedit /etc/modprobe.d/blacklist.conf

3.在文件末尾中添加两条:

blacklist nouveau
options nouveau modeset=0

4.更新配置

# update-initramfs -u

5.重启系统

# reboot

6.查看是否禁用 nouveau,若无输出,则已禁用

# lsmod | grep nouveau

3、nvidia驱动更新

因为安装ubuntu系统时默认会安装了集成的显卡驱动,所以这里要先卸载再安装新的驱动。
(1)添加ppa源

$ sudo add-apt-repository ppa:graphics-drivers/ppa

(2)更新apt-get

$ sudo apt update

(3)查看可以安装的显卡驱动版本

$ ubuntu-drivers devices

(4)下载nvidia显卡驱动
在浏览器输入网址https://www.nvidia.cn/geforce/drivers/
在这里插入图片描述
找到535开头版本的下载下来就行。将显卡驱动文件拷贝到 /home/用户名/Downloads 目录。
按 CTRL + ALT + F1 键登录,从 GUI 转至终端tty1(TUI文本用户界面),因为下面要卸载显卡驱动,卸载完就没有图形界面了。
输入自己的login用户名和password。
(5)临时关闭图形界面

# service lightdm stop

(6)删除已安装的显卡驱动(加上sudo apt-get autoremove才能卸载干净原驱动)

# apt-get remove --purge nvidia*
# apt-get autoremove

(7)进入/home/用户名/Downloads 目录,修改显卡驱动文件的权限

# cd /home/用户名/Downloads
# chmod a+x NVIDIA-Linux-x86_64-535.288.01.run

(8)安装显卡驱动

# ./NVIDIA-Linux-x86_64-535.288.01.run -no-x-check -no-nouveau-check -no-opengl-files

参数说明:

  1. –no-x-check:表示安装驱动时不检查X服务,非必需,我们已经禁用图形界面。
  2. –no-nouveau-check:表示安装驱动时不检查nouveau,非必需,我们已经禁用驱动。
  3. –no-opengl-files:表示只安装驱动文件,不安装OpenGL文件。这个参数不可省略,否则会导致登陆界面死循环,英语一般称为”login loop”或者”stuck in login”。

如果提示‘nvidia-uvm‘ appears to be already loaded in your kernel,输入下面命令停止相关进程后再安装

# modprobe -r nvidia_uvm
# systemctl isolate multi-user.target
# modprobe -r nvidia_drm
# modprobe -r nvidia_modeset
# modprobe -r nvidia

安装过程中的选项
(1)The distribution-provided pre-install script failed! Are you sure you want to continue? 
    选择 yes 继续。
(2)Would you like to register the kernel module souces with DKMS? This will allow DKMS to automatically build a new module, if you install a different kernel later?  
    选择NO继续
(3)Would you like to run the nvidia-xconfigutility to automatically update your x configuration so that the NVIDIA x driver will be used when you restart x? Any pre-existing x confile will be backed up. 
	 选择 Yes  继续
(4)Install 32-Bit compatibility libraries?
	选择 No 继续
开始会显示大量点点(......),然后进入图形化安装界面:  
如果提示是否接受(accept),选接受;  
如果提示检测到xxx不完整,是否退出安装,选不退出(continue); 
如果提示有旧驱动,询问是否删除旧驱动,选Yes;   
如果提示缺少某某模块(modules),询问是否上网下载,选no;   
如果提示编译模块,询问是否进行编译,选ok;   
如果提示将要修改Xorg.conf,询问是否允许,选Yes;
这些选项如果选择错误可能会导致安装失败,没关系,只要前面不出错,多尝试几次就好。

开启图形界面,没自动跳的话 crtl+alt+f7退回到GUI图形用户界面

# service lightdm start

输入下面命令,若弹出设置对话框,亦表示驱动安装成功

# nvidia-settings

总结

此次先更新到驱动安装,后面有空继续更新。后面将开始讲述安装cuda、cudnn、pytorch。涉及到下载速度慢等问题会一并附解决方法。再往后就开始更新ollama离线安装,dify离线安装(包括docker镜像的离线打包,dify工具离线打包),unsloth安装和微调的案例(这里博主尝试了SFT和GRPO),微调之后模型专业领域知识理解要提高很多。敬请期待。

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐