DeepSeek-OCR实战(01):基础运行环境搭建-Ubuntu

DeepSeek-OCR实战是一个系列文章,包含了从基础运行环境搭建到应用接入全过程。本章为:基础运行环境搭建,操作系统采用 Ubuntu Server 24

环境 版本
ubuntu-24.04.3 Server release 10.0
Cuda 11.8
显卡 RTX 2080 Ti 22G 驱动 NVIDIA-Linux-x86_64-580.105.08
conda 25.9.1
git 2.47.3

1.操作系统基础安装

安装 Ubuntu 24 Server 版本后(全部默认安装),查看一下磁盘分区情况,我的磁盘是 500G:

1.1 查看分区情况

shell 复制代码
sudo fdisk -l
# 分区表
Device       Start       End   Sectors   Size Type
/dev/sda1     2048   2203647   2201600     1G EFI System
/dev/sda2  2203648   6397951   4194304     2G Linux filesystem
/dev/sda3  6397952 976771071 970373120 462.7G Linux filesystem

Disk /dev/mapper/ubuntu--vg-ubuntu--lv: 100 GiB, 107374182400 bytes, 209715200 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
  • sda1: EFI系统分区 1G,用于UEFI启动, 存放引导加载程序
  • sda2: /boot分区 2G,存放内核和 initramfs
  • sda3: 它被用来创建LVM卷组(Volume Group), 进而花饭逻辑卷(Logical Volume) , /dev/sda3被用作LVM的底层存储

逻辑卷的容量只有 100G,默认安装的时候,虽然硬盘有 462.7GB 分配给了 LVM,但目前只用了其中的 100GB 创建了一个逻辑卷作为系统根目录。剩余空间仍保留在卷组中,可以随时扩展逻辑卷或创建新卷。

磁盘分区大致这样:

latex 复制代码
物理磁盘 /dev/sda (500GB)
├── /dev/sda1 → EFI 系统分区 (1GB)
├── /dev/sda2 → /boot 分区 (2GB,可能)
└── /dev/sda3 → LVM 物理卷 (462.7GB)
        └── 卷组 ubuntu-vg
                └── 逻辑卷 ubuntu-lv (100GB) → 挂载为 /

1.2 扩展逻辑卷并同时扩展文件系统

shell 复制代码
# 确认文件系统
dufo df -T /
Filesystem                        Type 1K-blocks     Used Available Use% Mounted on
/dev/mapper/ubuntu--vg-ubuntu--lv ext4 102626232 10978200  86388768  12% /

可以看到是 ext4 文件系统,使用西面命令完成扩容: 自动扩容LV 并 resize2fs

shell 复制代码
sudo lvextend --resizefs -l +100%FREE /dev/mapper/ubuntu--vg-ubuntu--lv

-l +100%FREE:使用卷组中 所有剩余空间

--resizefs:自动调整文件系统大小(对 ext4 有效)

shell 复制代码
# 验证
sudo lsblk
NAME                      MAJ:MIN RM   SIZE RO TYPE MOUNTPOINTS
sda                         8:0    0 465.8G  0 disk
├─sda1                      8:1    0     1G  0 part /boot/efi
├─sda2                      8:2    0     2G  0 part /boot
└─sda3                      8:3    0 462.7G  0 part
  └─ubuntu--vg-ubuntu--lv 252:0    0 462.7G  0 lvm  /

可以看到逻辑卷容量已经全部是 sda3 分区的容量了

1.3 替换镜像源/更新

shell 复制代码
# 查看当前镜像源, 发现是官方镜像源
cat /etc/apt/sources.list.d/ubuntu.sources

# 备份
cp /etc/apt/sources.list.d/ubuntu.sources /etc/apt/sources.list.d/ubuntu.sources.bak

# 替换成华为云镜像源
sudo sed -i 's|http://[a-z0-9\.]*\.archive\.ubuntu\.com|https://mirrors.huaweicloud.com|g' /etc/apt/sources.list.d/ubuntu.sources
sudo sed -i 's|http://security\.ubuntu\.com|https://mirrors.huaweicloud.com|g' /etc/apt/sources.list.d/ubuntu.sources

# 更新软件包列表(同步本地软件包索引和远程仓库)
sudo apt update 
# 升级所有已安装的软件包到最新版本(不处理依赖关系的重大变更)
sudo apt upgrade -y
# 清理无用包(系统运行并安装和卸载了不少东西后,使用,当前不需要执行)
sudo apt autoremove

国内其它镜像源

镜像站 URIs 值
清华大学 https://mirrors.tuna.tsinghua.edu.cn/ubuntu
阿里云 https://mirrors.aliyun.com/ubuntu
中科大 https://mirrors.ustc.edu.cn/ubuntu
华为云 https://mirrors.huaweicloud.com/ubuntu

1.4 安装常用软件

shell 复制代码
sudo apt update && sudo apt install -y vim wget telnet net-tools  lrzsz unzip   gcc libnuma-dev  dnsutils perl pciutils git wget htop jq make

显卡检查时会用到 lspci命令,该命令在 pciutils包中, 源码下载会用到git

2.显卡驱动安装

2.1确认显卡型号

shell 复制代码
lspci | grep -i nvidia
01:00.0 VGA compatible controller: NVIDIA Corporation TU102 [GeForce RTX 2080 Ti Rev. A] (rev a1)
01:00.1 Audio device: NVIDIA Corporation TU102 High Definition Audio Controller (rev a1)
01:00.2 USB controller: NVIDIA Corporation TU102 USB 3.1 Host Controller (rev a1)
01:00.3 Serial bus controller: NVIDIA Corporation TU102 USB Type-C UCSI Controller (rev a1)

# 确认你运行的内核版本,然后安装对应的开发包:
# 查看当前运行的内核版本
uname -r
# 安装对应版本的内核开发包
sudo apt install -y "linux-headers-$(uname -r)"

确认内核版本以及安装对应版本内核开发包很重要,要不然驱动无法安装

2.2检查是否存在开源驱动nouveau

shell 复制代码
lsmod | grep nouveau

有输出说明存在。 开源驱动会与NVIDA 驱动冲突。我的是有输出的

如果存在,则需要关闭 nouveau 驱动

shell 复制代码
sudo tee /etc/modprobe.d/blacklist-nouveau.conf <<EOF
blacklist nouveau
options nouveau modeset=0
EOF
# 更新initramfs
sudo update-initramfs -u
# 重启
sudo reboot 

# 重启后确认,如果没有输出则表示已经关闭了
sudo lsmod | grep nouveau

2.3驱动下载

https://www.nvidia.cn/drivers/lookup/

选择一个版本下载

将下载的文件存放到 /home/qy/soft目录备用

2.4执行安装

shell 复制代码
cd /usr/local/src
# 添加可执行权限
 chmod +x NVIDIA-Linux-x86_64-580.105.08.run
# 执行安装
 sudo ./NVIDIA-Linux-x86_64-580.105.08.run

安装的时候,会让你选择许可证,我们直接选择 **NVIDIA Proprietary**即可

选项 许可证 特点 推荐选择
NVIDIA Proprietary 专有许可证 • 传统的NVIDIA专有驱动 • 经过长期测试,稳定性高 • 与各种NVIDIA功能完全兼容 大多数用户
MIT/GPL 开源许可证 • 较新的开源内核模块 • 更好的内核兼容性 • 遵循开源协议 特定场景用户

如果操作系统安装的是字符界面,则会出现一个警告:

WARNING: nvidia-installer was forced to guess the X library path '/usr/lib64' and X module path '/usr/lib64/xorg/modules';

这个警告信息表明NVIDIA安装程序无法自动检测到X Window系统的开发文件位置,解决这个警告你需要安装X.Org的开发包和pkg-config工具,

这个警告不会影响CUDA计算功能,只会影响图形显示,如果你只在字符界面使用Rocky Linux进行计算任务,可以暂时忽略这个警告

2.5 验证

shell 复制代码
#  若输出显示显卡信息、驱动版本,则安装成功
nvidia-smi

CUDA Version: 13.0 表示支持的 cuda 版本最高到 13.0 版本

3.安装CUDA

CUDACompute Unified Device Architecture 的缩写,是NVIDIA推出的并行计算平台和编程模型

**本质:**让GPU不仅能处理图形,还能进行通用计算的平台

**作用:**允许开发者使用C/C++等语言直接在GPU上编写程序

**应用领域:**AI/深度学习、科学计算、数据分析、图形渲染等

前提条件,需要先安装 NVIDIA 驱动

shell 复制代码
nvidia-smi  # 有输出,则确认驱动正常工作

3.1 下载CUDA Toolkit并安装

RTX 2080 Ti 的最优 CUDA 版本为 11.7 或 11.8 ,我们选择 11.8 版本下载,下载地址:https://developer.nvidia.com/cuda-toolkit-archive ,找到对应的版本,选择合适的环境下载。下载后,文件存放到 /home/qy/soft

shell 复制代码
cd ~/soft

wget https://developer.download.nvidia.com/compute/cuda/11.8.0/local_installers/cuda_11.8.0_520.61.05_linux.run

sudo sh cuda_11.8.0_520.61.05_linux.run

安装的时候,会出现错误:unsupported compiler version: 14.2.1. Use --override to override this check. 此时使用下面命令跳过检查。 原因是当前系统版本的gcc版本过高 ,cuda_11.8.0 不识别这个gcc版本。生产环境可以降低 gcc版本,比如gcc 10 版本。因为现在是测试,直接跳过检查

sudo sh cuda_11.8.0_520.61.05_linux.run --override

因为驱动已经安装了,所以这里需要将 "Driver" 选项去掉

安装完毕后,Toolkit 被安装在了 /usr/local/cuda-11.8, 同时有个链接文件 /usr/local/cuda指向了这个目录

3.2环境变量配置

shell 复制代码
# 编辑bash配置文件
sudo vim ~/.bashrc

# 添加以下内容
export PATH=/usr/local/cuda/bin${PATH:+:${PATH}}
export LD_LIBRARY_PATH=/usr/local/cuda/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
export CUDA_HOME=/usr/local/cuda

# 使配置生效
 source ~/.bashrc

3.3验证

shell 复制代码
# 检查CUDA编译器
nvcc --version
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2022 NVIDIA Corporation
Built on Wed_Sep_21_10:33:58_PDT_2022
Cuda compilation tools, release 11.8, V11.8.89
Build cuda_11.8.r11.8/compiler.31833905_0

# 检查CUDA工具包版本
nvidia-smi  # 查看右上角的CUDA Version

nvidia-smi 显示的CUDA版本是驱动程序支持的最高 CUDA版本,不是实际安装的CUDA版本,使用 nvcc --version显示的才是实际安装的版本。

4.安装Conda

Conda 是一个开源的包管理和环境管理系统,最初由 Anaconda 公司开发,主要用于 Python 及其他语言(如 R、Ruby、Lua、Perl、Haskell、C/C++)的包管理和环境管理。它可以安装、更新、卸载软件包,并创建隔离的虚拟环境,使得不同项目之间的依赖不会相互干扰。Conda与pip的区别:

shell 复制代码
cd ~/soft
# 下载安装脚本
wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh

 # 执行安装
sh Miniconda3-latest-Linux-x86_64.sh

# 手动激活 base环境
eval "$(/home/qy/miniconda3/bin/conda shell.bash hook)"

# 接收许可
conda tos accept --override-channels --channel https://repo.anaconda.com/pkgs/main
conda tos accept --override-channels --channel https://repo.anaconda.com/pkgs/r

# 查看源
conda config --show-sources
==> /home/qy/miniconda3/.condarc <==
channels:
  - defaults
  
conda config --set show_channel_urls yes

conda config --show channels

 # 自动激活base环境
conda config --set auto_activate_base true
相关推荐
NAGNIP3 小时前
一文搞懂深度学习中的通用逼近定理!
人工智能·算法·面试
冬奇Lab4 小时前
一天一个开源项目(第36篇):EverMemOS - 跨 LLM 与平台的长时记忆 OS,让 Agent 会记忆更会推理
人工智能·开源·资讯
冬奇Lab4 小时前
OpenClaw 源码深度解析(一):Gateway——为什么需要一个"中枢"
人工智能·开源·源码阅读
哥不是小萝莉5 小时前
OpenClaw 架构设计全解析
ai
十日十行7 小时前
Linux和window共享文件夹
linux
AngelPP8 小时前
OpenClaw 架构深度解析:如何把 AI 助手搬到你的个人设备上
人工智能
宅小年8 小时前
Claude Code 换成了Kimi K2.5后,我再也回不去了
人工智能·ai编程·claude
九狼8 小时前
Flutter URL Scheme 跨平台跳转
人工智能·flutter·github
ZFSS8 小时前
Kimi Chat Completion API 申请及使用
前端·人工智能
warm3snow8 小时前
Claude Code 黑客马拉松:5 个获奖项目,没有一个是"纯码农"做的
ai·大模型·llm·agent·skill·mcp