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

作者:paopao_wu日期:2025/11/13

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

环境版本
ubuntu-24.04.3 Serverrelease 10.0
Cuda11.8
显卡 RTX 2080 Ti 22G驱动 NVIDIA-Linux-x86_64-580.105.08
conda25.9.1
git2.47.3

1.操作系统基础安装

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

1.1 查看分区情况

1sudo fdisk -l
2# 分区表
3Device       Start       End   Sectors   Size Type
4/dev/sda1     2048   2203647   2201600     1G EFI System
5/dev/sda2  2203648   6397951   4194304     2G Linux filesystem
6/dev/sda3  6397952 976771071 970373120 462.7G Linux filesystem
7
8Disk /dev/mapper/ubuntu--vg-ubuntu--lv: 100 GiB, 107374182400 bytes, 209715200 sectors
9Units: sectors of 1 * 512 = 512 bytes
10Sector size (logical/physical): 512 bytes / 512 bytes
11I/O size (minimum/optimal): 512 bytes / 512 bytes
12
  • sda1: EFI系统分区 1G,用于UEFI启动, 存放引导加载程序
  • sda2: /boot分区 2G,存放内核和 initramfs
  • sda3: 它被用来创建LVM卷组(Volume Group), 进而花饭逻辑卷(Logical Volume) , /dev/sda3被用作LVM的底层存储

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

磁盘分区大致这样:

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

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

1# 确认文件系统
2dufo df -T /
3Filesystem                        Type 1K-blocks     Used Available Use% Mounted on
4/dev/mapper/ubuntu--vg-ubuntu--lv ext4 102626232 10978200  86388768  12% /
5
6

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

1sudo lvextend --resizefs -l +100%FREE /dev/mapper/ubuntu--vg-ubuntu--lv
2

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

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

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

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

1.3 替换镜像源/更新

1# 查看当前镜像源, 发现是官方镜像源
2cat /etc/apt/sources.list.d/ubuntu.sources
3
4# 备份
5cp /etc/apt/sources.list.d/ubuntu.sources /etc/apt/sources.list.d/ubuntu.sources.bak
6
7# 替换成华为云镜像源
8sudo sed -i 's|http://[a-z0-9\.]*\.archive\.ubuntu\.com|https://mirrors.huaweicloud.com|g' /etc/apt/sources.list.d/ubuntu.sources
9sudo sed -i 's|http://security\.ubuntu\.com|https://mirrors.huaweicloud.com|g' /etc/apt/sources.list.d/ubuntu.sources
10
11# 更新软件包列表(同步本地软件包索引和远程仓库)
12sudo apt update 
13# 升级所有已安装的软件包到最新版本(不处理依赖关系的重大变更)
14sudo apt upgrade -y
15# 清理无用包(系统运行并安装和卸载了不少东西后,使用,当前不需要执行)
16sudo apt autoremove
17

国内其它镜像源

镜像站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 安装常用软件

1sudo apt update && sudo apt install -y vim wget telnet net-tools  lrzsz unzip   gcc libnuma-dev  dnsutils perl pciutils git wget htop jq make
2

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

2.显卡驱动安装

2.1确认显卡型号

1lspci | grep -i nvidia
201:00.0 VGA compatible controller: NVIDIA Corporation TU102 [GeForce RTX 2080 Ti Rev. A] (rev a1)
301:00.1 Audio device: NVIDIA Corporation TU102 High Definition Audio Controller (rev a1)
401:00.2 USB controller: NVIDIA Corporation TU102 USB 3.1 Host Controller (rev a1)
501:00.3 Serial bus controller: NVIDIA Corporation TU102 USB Type-C UCSI Controller (rev a1)
6
7# 确认你运行的内核版本,然后安装对应的开发包:
8# 查看当前运行的内核版本
9uname -r
10# 安装对应版本的内核开发包
11sudo apt install -y "linux-headers-$(uname -r)"
12

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

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

1lsmod | grep nouveau
2

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

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

1sudo tee /etc/modprobe.d/blacklist-nouveau.conf <<EOF
2blacklist nouveau
3options nouveau modeset=0
4EOF
5# 更新initramfs
6sudo update-initramfs -u
7# 重启
8sudo reboot 
9
10# 重启后确认,如果没有输出则表示已经关闭了
11sudo lsmod | grep nouveau
12

2.3驱动下载

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

选择一个版本下载

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

2.4执行安装

1cd /usr/local/src
2# 添加可执行权限
3 chmod +x NVIDIA-Linux-x86_64-580.105.08.run
4# 执行安装
5 sudo ./NVIDIA-Linux-x86_64-580.105.08.run
6

安装的时候,会让你选择许可证,我们直接选择 **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 验证

1#  若输出显示显卡信息、驱动版本,则安装成功
2nvidia-smi
3

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

3.安装CUDA

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

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

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

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

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

1nvidia-smi  # 有输出,则确认驱动正常工作
2

3.1 下载CUDA Toolkit并安装

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

1cd ~/soft
2
3wget https://developer.download.nvidia.com/compute/cuda/11.8.0/local_installers/cuda_11.8.0_520.61.05_linux.run
4
5sudo sh cuda_11.8.0_520.61.05_linux.run
6

安装的时候,会出现错误: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环境变量配置

1# 编辑bash配置文件
2sudo vim ~/.bashrc
3
4# 添加以下内容
5export PATH=/usr/local/cuda/bin${PATH:+:${PATH}}
6export LD_LIBRARY_PATH=/usr/local/cuda/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
7export CUDA_HOME=/usr/local/cuda
8
9# 使配置生效
10 source ~/.bashrc
11

3.3验证

1# 检查CUDA编译器
2nvcc --version
3nvcc: NVIDIA (R) Cuda compiler driver
4Copyright (c) 2005-2022 NVIDIA Corporation
5Built on Wed_Sep_21_10:33:58_PDT_2022
6Cuda compilation tools, release 11.8, V11.8.89
7Build cuda_11.8.r11.8/compiler.31833905_0
8
9# 检查CUDA工具包版本
10nvidia-smi  # 查看右上角的CUDA Version
11

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

4.安装Conda

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

1cd ~/soft
2# 下载安装脚本
3wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh
4
5 # 执行安装
6sh Miniconda3-latest-Linux-x86_64.sh
7
8# 手动激活 base环境
9eval "$(/home/qy/miniconda3/bin/conda shell.bash hook)"
10
11# 接收许可
12conda tos accept --override-channels --channel https://repo.anaconda.com/pkgs/main
13conda tos accept --override-channels --channel https://repo.anaconda.com/pkgs/r
14
15# 查看源
16conda config --show-sources
17==> /home/qy/miniconda3/.condarc <==
18channels:
19  - defaults
20  
21conda config --set show_channel_urls yes
22
23conda config --show channels
24
25 # 自动激活base环境
26conda config --set auto_activate_base true
27
28

DeepSeek-OCR实战(01):基础运行环境搭建-Ubuntu》 是转载文章,点击查看原文


相关推荐


圆桌论坛精华实录 | AI是重构运维逻辑的颠覆性革命?博睿数据与行业大咖亲授“AI+可观测性”的破局之道
Bonree博睿数据2025/11/12

全文约6500字  阅读时间约15分钟。 当前,人工智能正处于高速发展阶段,以前所未有的深度与广度重塑商业规则,推动企业数字化转型从规模化扩张迈入精细化深耕。面对这场汹涌而来的智能变革,运维领域正面临一道核心命题:AI究竟是提升效率的辅助工具,还是重构运维逻辑的颠覆性革命? 国内金融、制造等关键行业已步入数字化深水区,却普遍陷入运维复杂度激增、故障定位滞后、数据价值难以转化等行业焦虑。如何让AI技术真正落地运维场景?如何通过可观测性打通全链路数据孤岛?如何平衡技术创新与业务实用价值?


对于数据结构:堆的超详细保姆级解析——下(堆排序以及TOP-K问题)
ShineWinsu2025/11/10

开篇介绍: hello 大家,我们又见面了,在上一篇博客中,我们共同探索了如何实现堆这么一个数据结构,相信大家经过上篇博客的学习,对堆的了解程度以及掌握程度,都有了极大的水平提升。 那么堆,有什么用呢?首先,作为一个数据结构,它肯定具有存储数据的功能,这是毋庸置疑的,但是呢,我们知道,堆有大堆和小堆之分,那么那么,这一个知识点,蕴含着什么秘密呢? 诶,不错,就是我们标题所说的——堆排序,我们之前学过了冒泡排序以及qsort函数排序,但是呢说实话,这两种排序方式,效率都不高,说难听一点就是在


【Linux】进程初阶(1)——基本进程理解
终焉代码2025/11/8

目录 前言 1.1进程基本理解 1.2进程描述 1.3查看进程 1.4通过系统调用的基本进程操作 1.4.1通过系统调用获取pid 1.4.2通过系统调用创建进程 前言 操作系统对计算机软件与硬件进行管理的方式是先描述再组织,而PCB就是那个"描述",那到底什么是PCB?PCB又在描述什么呢?更多Linux学习内容看准Linux专栏 1.1进程基本理解 在操作系统中,我们运行的一个个软件本质上都是程序。例如我们在windows上打开浏览器时,本质是


Bash 的 cd 命令
hubenchang05152025/11/6

#Bash 的 cd 命令 cd [-L|-P] [DIRECTORY] 功能 切换工作目录。 类型 Bash 内置命令。 参数 OPTION 选项: -L - 逻辑路径;在跟踪符号链接之前解析 ..(默认) -P - 物理路径;在跟踪符号链接之后解析 .. DIRECTORY - 要切换到的目录路径;省略表示切换到用户目录,- 表示切换到上次的工作目录 #示例 基本示例 $ pwd # 查看当前路径 /home/user/primer


规训 AI Agent 实践
清沫2025/11/1

AI 编程工具目前的发展可谓是三十年河东三十年河西,时不时就会有爆炸性的能力提升。初步使用,效果极其惊艳,随着使用的加深,就会发现 AI 会时不时犯蠢。本文总结 AI 协作的一些实践,希望帮助你让 AI 成为更可靠的编程伙伴。 别着急动手, 先制定计划 很多人使用 AI 编程工具时,习惯直接让 AI "帮我实现 xxx 功能",然后 AI 就立即开始写代码。这种方式在简单需求下可以工作,但面对复杂任务时容易出问题。等待十几分钟漫长的生码过程后,发现结果与预期相差甚远,既费时又费 token。 因


Nginx 高效动静分离:从原理到实战
银河技术2025/10/30

Nginx 高效动静分离:从原理到实战 Nginx 动静分离是 Web 性能优化中的经典策略,合理配置可显著提升网站性能、减轻应用服务器压力,并便于后续扩展与运维。本文将从 原理、配置、实战案例 以及 优化技巧 全面解析 Nginx 动静分离。 一、动静分离原理 1. 什么是动静分离? 动态资源(动):需要经过后台程序处理或数据库交互生成的内容,通常是非静态的。例如: /api/userinfo /search?keyword=abc *.jsp, *.php, *.do


前端基础:从0到1制作简单网页(三)
<但凡.2025/10/27

HTML容器元素分类 1. 通用容器 <div> - 通用块级容器 <span> - 通用内联容器(处理行内内容) 2. 语义化容器(HTML5新增) <header> - 页眉或章节头部 <footer> - 页脚或章节尾部 <main> - 文档主要内容 <section> - 文档章节 <article> - 独立内容块(如博客文章) <aside> - 侧边栏或相关内容 <nav> - 导航链接区域 <figure> -


从海量文档到精准数据:文档抽取技术驱动金融财税决策新范式
智能图像文字识别OCR2025/10/24

在金融与财税这个由海量文档驱动的领域中,效率与准确性是生命线。从繁复的财务报表、五花八门的发票,到冗长的合同与合规文件,传统的人工处理方式不仅成本高昂、效率低下,还极易出错。随着人工智能技术的成熟,文档抽取技术正成为解决这些痛点的关键利器,驱动着整个行业向智能化、自动化加速转型。 文档抽取技术简介及其工作原理 文档抽取技术是自然语言处理(NLP)和计算机视觉(CV)的一个交叉分支,其核心目标是从非结构化或半结构化的文档(如PDF、图片、扫描件)中,自动识别、定位并提取出特定的关键信息,并将其


金庸群侠传2攻略
funny-flash2025/10/22

金庸群侠传2攻略 金庸群侠传2加强版-免插件在线玩 本文为转载,原文地址:https://www.bilibili.com/opus/654149447904657428 一、前期衡阳城(游戏起始) 江湖称号:江湖小混混  (修炼《吐纳心法》至第5重时悟《吐纳术》)  1.田伯光欺负小尼姑任务。两次选帮助者,可提升一定属性。 2.客栈二楼,选1.上前搭讪(是否与他结拜影响到华山任务)  →选1 我虽非正人君子,但还知道廉耻!→得九转熊蛇丸  →选2 田兄在上,受小弟一拜!  →选1 阻止田伯光杀


每周读书与学习->JMeter主要元件详细介绍(一)配置元件
张永清-老清2025/10/21

每周读书与学习是由清华大学出版社出版的《JMeter核心技术、性能测试与性能分析》一书的作者推出,分享作者多年的IT从业经历,希望对很多计算机科学技术IT类专业毕业生以及IT从业者有所帮助。 在前面的学习中,我们已经讲到在Jmeter中配置元件主要用于完成性能测试中一些常见配置信息的配置,在前面的章节学习中,大家或许已经对配置元件的使用和作用有了一个初步的了解,在本章节学习中,我们将对一些常见的配置元件进行详细的介绍。 1、配置元件 1.1.CSV数据文件设置 如下图所示,CSV 数据文

首页编辑器站点地图

Copyright © 2025 聚合阅读

License: CC BY-SA 4.0