使用CentOS部署本地DeekSeek

news2025/6/9 22:47:26

一、查看服务器的操作系统版本

cat /etc/centos-release

二、下载并安装ollama

1、ollama下载地址:

Releases · ollama/ollama · GitHubGet up and running with Llama 3.3, DeepSeek-R1, Phi-4, Gemma 3, Mistral Small 3.1 and other large language models. - Releases · ollama/ollamahttps://github.com/ollama/ollama/releases

        (1)、下载ollama

        

        (2)测试采用ollama0.5.5可以正常使用

        

        (3)点击v0.5.5,下拉找到安装包进行下载:

        

        (4)下载好后,上传ollama-linux-amd64.tgz到/home目录下

        

     (5)在/home目录下创建ollama文件夹:        

mkdir ollama

2、手动安装ollama        

sudo tar -C /home/ollama -xzf ollama-linux-amd64.tgz

三、配置ollama

1、添加环境变量

        (1)为当前用户添加环境变量

echo 'export PATH=$PATH:/home/ollama/bin' >> ~/.bashrc

source ~/.bashrc

        (2)或者为所有用户添加环境变量

sudo echo 'export PATH=$PATH:/home/ollama/bin' >> /etc/profile
sudo source /etc/profile

2、启动ollama

ollama serve

3、查看ollama版本

ollama -v

                

4、设置ollama为后台服务运行模式

        (1)为 Ollama 创建用户和组

sudo useradd -r -s /bin/false -U -m -d /usr/share/ollama ollama
sudo usermod -a -G ollama $(whoami)

        (2)创建服务文件 

vi /etc/systemd/system/ollama.service

        (3)使用vi编辑器编辑服务文件,添加以下内容

 [Unit]
Description=Ollama Service
After=network-online.target
 
[Service]
ExecStart=/home/ollama/bin/ollama serve  #修改路径为ollama安装目录
User=ollama
Group=ollama
Restart=always
RestartSec=3
Environment="PATH=$PATH"
 
[Install]
WantedBy=default.target

        (4)重启ollama服务

sudo systemctl daemon-reload
sudo systemctl enable ollama

四、更改模型下载路径

默认情况下ollama模型的存储目录如下:
/usr/share/ollama/.ollama/models ,此目录空间不足无法存储deepseek模型,需要修改默认的下载路径。

1、先创建一个存储模型文件的文件夹,赋予相关权限:

sudo mkdir /home/dsmodels
sudo chown -R root:root /home/dsmodels
sudo chmod -R 777 /home/dsmodels

2、用vi编译器打开ollama.service,在[Service]下面加入一行新的Environment

[Unit]
Description=Ollama Service
After=network-online.target
 
[Service]
ExecStart=/home/ollama/bin/ollama serve
User=ollama
Group=ollama
Restart=always
RestartSec=3
Environment="PATH=$PATH"
Environment="OLLAMA_MODELS=/home/dsmodels"  #新的模型下载路径

3、执行以下命令刷新配置:

sudo systemctl daemon-reload

4、重启ollama服务

sudo systemctl restart ollama.service

5、查看一下重启后的ollama运行状态

sudo systemctl status ollama

6、检查路径是否设置成功:

ollama list

因为是修改了模型的下载路径,这个路径下面环没有任何模型,所以只有标题行,没内容。这样就表示成功了。

五、拉取deepseek模型

1、拉取deepseek大模型文件

ollama pull deepseek-r1:7b

2、启动deepseek大模型

ollama run deepseek-r1:7b

3、再次查看ollama装载模型情况

[root@localhost ollama]# ollama list
NAME              ID              SIZE      MODIFIED    
deepseek-r1:7b    0a8c26691023    4.7 GB    3 hours ago    

六、开放ollama服务远程访问,实现Chatbox图形化界面访问

1.使用 netstat 或 ss 命令在宿主机上检查 11434 端口的状态

[root@localhost ollama]# netstat -tulnp | grep 11434   
tcp6       0      0 :::11434                :::*                    LISTEN      21328/ollama

根据提供netstat的输出,ollama服务正在监听 127.0.0.1:11434 (即 localhost 的 11434 端口),而不是监听所有网络接口( 0.0.0.0:* 表示监听所有接口)。这就是为什么您能够通过 localhost 访问服务,但是无法通过宿主机的 IP 地址 192.168.120.223 访问的原因。

2、修改服务绑定地址:

如果 ollama 服务允许通过配置文件设置监听地址,请将ollama配置文件中的监听地址从 127.0.0.1 更改为 0.0.0.0。

[root@localhost ollama]# vi /etc/systemd/system/ollama.service
[Unit]
Description=Ollama Service
After=network-online.target
 
[Service]
ExecStart=/home/ollama/bin/ollama serve
User=ollama
Group=ollama
Restart=always
RestartSec=3
Environment="PATH=$PATH"
Environment="OLLAMA_MODELS=/home/dsmodels" 
Environment="OLLAMA_HOST=0.0.0.0:11434"
Environment="OLLAMA_ORIGINS=*" 
[Install]
WantedBy=default.target

3.重启 ollama 服务

sudo systemctl daemon-reload
sudo systemctl restart ollama.service

4、检查环境变量是否正确设置

sudo systemctl show --property=Environment ollama.service

5、开放防火墙的11434端口:

如果你需要开放特定的端口,可以使用 --add-port 选项。例如,开放端口 11434:

sudo firewall-cmd --permanent --zone=public --add-port=11434/tcp

6、重新加载 firewalld 配置

每次修改防火墙规则后,需要重新加载 firewalld 配置

sudo firewall-cmd --reload

7、成功:

 

8、在Chatbox中设置API域名并选择模型

9、在Chatbox中使用本地部署的deepseek模型

七、安装open-webui 界面化访问

1、安装docker

yum install -y yum-utils device-mapper-persistent-data lvm2

yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

yum install -y docker-ce

systemctl start docker && systemctl enable docker

2、运行open-webui容器

docker run -d  -p 8082:8080  -e OLLAMA_BASE_URL=http://10.10.6.3:11434 -v /data/open-webui:/app/backend/data --name open-webui --restart always ghcr.io/open-webui/open-webui:main

3.、浏览器访问:

http://10.10.6.3:8082/auth

按提示创建管理员账号,创建完成之后需要多等待一会,弹出登陆页面,进行登录

八、部署本地deepseek大模型知识库

1、使用ollama下载向量化工具nomic-embed-text

ollama pull nomic-embed-text

2、打开open-webui左下角的管理员面板,进入“设置”栏找到“模型”选项,并点击右上角的设置图标进行模型设置,如图所示:

3、依次把deepseek和刚下载的nomicembed-text排序在前,并选择默认模型为deepseek:
embed-text,点击保存:

4、在管理员面板找到“文档”选项,将“语义向量模型引擎”设置为Ollama,并且在“语义向量模型”手动输入“nomic-embed-text:latest”,设置完点击保存,如图所示:

5、为了确保open-webui识别到Ollama,进一步找到“外部连接”选项,只勾选Ollama API而不勾选OpenAI API

6、回到工作空间的知识库,上传知识库文档,进行测试

7、测试

九、 部署过程中可能会遇到的问题及解决方案

1、安装ollama

(1)使用官方ollama安装脚本会遇到

ollama: /lib64/libm.so.6: version `GLIBC_2.27' not found (required by ollama)
ollama: /lib64/libstdc++.so.6: version `GLIBCXX_3.4.25' not found (required by ollama)
ollama: /lib64/libstdc++.so.6: version `GLIBCXX_3.4.20' not found (required by ollama)
ollama: /lib64/libstdc++.so.6: version `CXXABI_1.3.9' not found (required by ollama)
ollama: /lib64/libstdc++.so.6: version `CXXABI_1.3.11' not found (required by ollama)
ollama: /lib64/libstdc++.so.6: version `GLIBCXX_3.4.21' not found (required by ollama)
ollama: /lib64/libstdc++.so.6: version `GLIBCXX_3.4.22' not found (required by ollama)

(2)原因:

  • 出现这个错误是因为 Ollama 程序依赖于较新版本的 GCC 和 Glibc 库,但系统中安装的库版本过低,无法满足其运行要求。
  • CentOS 7/RHEL 7:默认 Glibc 为 2.17,GCC 为 4.8.5,远低于 Ollama 要求的 2.27+。

(3)解决方案:

采用手动安装更低版本的ollama

  • Ollama下载地址: https://github.com/ollama/ollama/releases

(4)测试采用ollama0.5.5可以正常使用

(5)点击v0.5.5,下拉找到安装包进行下载:

(6)下载好后,上传服务器,进行手动安装

(7)不采用直接升级Glibc,因为Glibc 是 Linux 系统的核心组件,直接升级可能导致:

  • 系统命令(如lsbash)无法运行,因为它们依赖旧版本的 Glibc
  • 软件包管理器(如yumapt)崩溃,导致系统无法修复。
  • 因此,升级 Glibc 需要谨慎操作,通常需要通过官方渠道或特定工具(如sclconda)进行。

2、 浏览器访问Open-WebUI找不到deepseek大模型

解决方案:

(1)编辑ollama配置文件:

vi /etc/systemd/system/ollama.service

(2)在配置文件中添加:

Environment="OLLAMA_HOST=0.0.0.0:11434"

Environment="OLLAMA_ORIGINS=*"

(3)重启ollama服务

sudo systemctl daemon-reload

sudo systemctl restart ollama.service

(4)检查环境变量是否正确设置.

sudo systemctl show --property=Environment ollama.service

Environment=PATH=$PATH OLLAMA_MODELS=/home/dsmodels OLLAMA_HOST=0.0.0.0:11434 OLLAMA_ORIGINS=*

3、open-webui知识库上传报错

解决方案:

(1)使用ollama下载安装向量化工具

ollama pull nomic-embed-text

(2)打开open-webui左下角的管理员面板,进入“设置”栏找到“模型”选项,并点击右上角的设置图标进行模型设置,如图所示:

(3)依次把deepseek和刚下载的nomicembed-text排序在前,并选择默认模型为deepseek:
embed-text,点击保存:

(4)在管理员面板找到“文档”选项,将“语义向量模型引擎”设置为Ollama,并且在“语义向量模型”手动输入“nomic-embed-text:latest”,设置完点击保存,如图所示:

(5)为了确保open-webui识别到Ollama,进一步找到“外部连接”选项,只勾选Ollama API而不勾选OpenAI API

(6)回到工作空间的知识库,上传知识库文档,进行测试

4、CUDA 版本不兼容

(1)问题表现:

在安装 PyTorch 或者运行 DeepSeek 时,系统提示 CUDA 版本与 GPU 驱动不匹配。

(2)解决办法:

首先,查看 GPU 驱动支持的 CUDA 版本:

nvidia-smi

接着,按照 CUDA 官网的指引,安装对应的 CUDA Toolkit:

# 以CUDA 11.8为例

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

最后,更新环境变量:

echo 'export PATH=/usr/local/cuda-11.8/bin:$PATH' >> ~/.bashrc

echo 'export LD_LIBRARY_PATH=/usr/local/cuda-11.8/lib64:$LD_LIBRARY_PATH' >> ~/.bashrc

source ~/.bashrc

5、PyTorch 安装失败

(1)问题表现

在 pip 安装 PyTorch 的过程中出现网络错误,或者安装后导入时提示找不到模块。

(2)解决办法:

使用清华源加速下载,并且根据 CUDA 版本选择合适的 PyTorch 版本:

​
# CUDA 11.8对应的PyTorch安装命令

pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118 -i Simple Index

​

6、文件系统限制

(1)问题表现

在下载模型时,系统提示 “无法创建临时文件”。

(2)解决办法


   修改文件系统的最大文件数限制:

echo 'fs.file-max = 1048576' | sudo tee -a /etc/sysctl.conf

echo '* soft nofile 65536' | sudo tee -a /etc/security/limits.conf

echo '* hard nofile 65536' | sudo tee -a /etc/security/limits.conf

sudo sysctl -p

7、权限问题

(1)问题表现

无法读取模型文件,或者在保存检查点时提示权限被拒绝。

(2)解决办法
  

修改模型文件的权限:

sudo chmod -R 755 /path/to/model

8、CUDA 内存溢出

(1)问题表现

模型运行时提示 “CUDA out of memory”。

(2)解决办法:
  

减少批量大小(batch size),或者启用梯度检查点(gradient checkpointing):

# 在代码中启用梯度检查点

model.gradient_checkpointing_enable()

9、网络连接的问题

(1)问题表现

在下载模型时出现连接超时的情况。

(2)解决办法:

   使用代理或者手动下载模型:

# 使用代理

export HTTP_PROXY=http://proxy.example.com:8080

export HTTPS_PROXY=http://proxy.example.com:8080

# 或者手动下载模型

git clone https://huggingface.co/DeepSeek-RL/DeepSeek-7B-Chat.git

​

10、SSL 证书验证失败

(1)问题表现

在下载过程中提示 “SSL: CERTIFICATE_VERIFY_FAILED”。

(2)解决办法:
  

临时禁用 SSL 验证(不推荐在生产环境使用):

pip install --trusted-host pypi.python.org package_name

11、权限与安全策略

       (1)问题表现

  • 服务无法绑定80/443端口
  • 文件访问被SELinux阻止

        (2)解决方案

1、解决端口权限问题:

sudo setcap 'cap_net_bind_service=+ep' /usr/bin/python3.8  # 允许非root绑定低端口

或使用反向代理(Nginx/Apache)转发请求。

2、调整SELinux策略:

sudo setenforce 0  # 临时关闭
sudo semanage port -a -t http_port_t -p tcp 8080  # 开放自定义端口
永久生效需修改 /etc/selinux/config

12、网络与防火墙

(1)问题表现

  • 外部无法访问服务端口
  • 模型下载失败(境外源速度慢)

(2)解决方案

(1)配置防火墙:

sudo firewall-cmd --permanent --add-port=8080/tcp

sudo firewall-cmd --reload

(2)使用国内镜像加速:

pip install -i https://pypi.tuna.tsinghua.edu.cn/simple -r requirements.txt

(3)或配置全局镜像:

mkdir ~/.pip && echo -e "[global]\nindex-url = https://pypi.tuna.tsinghua.edu.cn/simple" > ~/.pip/pip.conf

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2386213.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

LLMs之Qwen:《Qwen3 Technical Report》翻译与解读

LLMs之Qwen:《Qwen3 Technical Report》翻译与解读 导读:Qwen3是Qwen系列最新的大型语言模型,它通过集成思考和非思考模式、引入思考调度机制、扩展多语言支持以及采用强到弱的知识等创新技术,在性能、效率和多语言能力方面都取得…

从工程实践角度分析H.264与H.265的技术差异

作为音视频从业者,我们时刻关注着视频编解码技术的最新发展。RTMP推流、轻量级RTSP服务、RTMP播放、RTSP播放等模块是大牛直播SDK的核心功能,在这些模块的实现过程中,H.264和H.265两种视频编码格式的应用实践差异是我们技术团队不断深入思考的…

如何设计一个高性能的短链设计

1.什么是短链 短链接(Short URL) 是通过算法将长 URL 压缩成简短字符串的技术方案。例如将 https://flowus.cn/veal/share/3306b991-e1e3-4c92-9105-95abf086ae4e 缩短为 https://sourl.cn/aY95qu,用户点击短链时会自动重定向到原始长链接。其…

提升工作效率的可视化笔记应用程序

StickyNotes桌面便签软件介绍 StickyNotes是一款极为简洁的桌面便签应用程序,让您能够快速记录想法、待办事项或其他重要信息。这款工具操作极其直观,只需输入文字内容,选择合适的字体大小和颜色,然后点击添加按钮即可创建个性化…

11|省下钱买显卡,如何利用开源模型节约成本?

不知道课程上到这里,你账户里免费的5美元的额度还剩下多少了?如果你尝试着完成我给的几个数据集里的思考题,相信这个额度应该是不太够用的。而ChatCompletion的接口,又需要传入大量的上下文信息,实际消耗的Token数量其…

机器学习圣经PRML作者Bishop20年后新作中文版出版!

机器学习圣经PRML作者Bishop20年后新书《深度学习:基础与概念》出版。作者克里斯托弗M. 毕晓普(Christopher M. Bishop)微软公司技术研究员、微软研究 院 科学智 能 中 心(Microsoft Research AI4Science)负责人。剑桥…

吴恩达机器学习笔记:逻辑回归3

3.判定边界 现在说下决策边界(decision boundary)的概念。这个概念能更好地帮助我们理解逻辑回归的假设函数在计算什么。 在逻辑回归中&#xff0c;我们预测&#xff1a; 当ℎθ (x) > 0.5时&#xff0c;预测 y 1。 当ℎθ (x) < 0.5时&#xff0c;预测 y 0 。 根据…

docker中使用openresty

1.为什么要使用openresty 我这边是因为要使用1Panel&#xff0c;第一个最大的原因&#xff0c;就是图方便&#xff0c;比较可以一键安装。但以前一直都是直接安装nginx。所以需要一个过度。 2.如何查看openResty使用了nginx哪个版本 /usr/local/openresty/nginx/sbin/nginx …

Java 中的 super 关键字

个人总结&#xff1a; 1.子类构造方法中没有显式使用super&#xff0c;Java 也会默认调用父类的无参构造方法 2.当父类中没有无参构造方法&#xff0c;只有有参构造方法时&#xff0c;子类构造方法就必须显式地使用super来调用父类的有参构造方法。 3.如果父类没有定义任何构造…

PCM音频数据的编解码

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、pandas是什么&#xff1f;二、使用步骤 1.引入库2.读入数据 总结 前言 提示&#xff1a;这里可以添加本文要记录的大概内容&#xff1a; 例如&#xff1a…

Ubuntu 通过指令远程命令行配置WiFi连接

前提设备已经安装了无线网卡。 1、先通过命令行 ssh 登录机器。 2、搜索wifi设备&#xff0c;指令如下&#xff1a; sudo nmcli device wifi 3、输入需要联接的 wifi 名称和对应的wifi密码&#xff0c;指令如下&#xff1a; sudo nmcli device wifi connect wifi名称 passw…

8天Python从入门到精通【itheima】-41~44

目录 41节-while循环的嵌套应用 1.学习目标 2.while循环的伪代码和生活情境中的应用 3.图片应用的代码案例 4.代码实例【Patrick自己亲手写的】&#xff1a; 5.whlie嵌套循环的注意点 6.小节总结 42节-while循环的嵌套案例-九九乘法表 1.补充知识-print的不换行 2.补充…

深度图数据增强方案-随机增加ROI区域的深度

主要思想&#xff1a;随机增加ROI区域的深度&#xff0c;模拟物体处在不同位置的形态。 首先打印一张深度图中的深度信息分布&#xff1a; import cv2 import matplotlib.pyplot as plt import numpy as np import seaborn as sns def plot_grayscale_histogram(image_path)…

两个mysql的maven依赖要用哪个?

背景 <dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId> </dependency>和 <dependency><groupId>com.mysql</groupId><artifactId>mysql-connector-j</artifactId> &l…

Kafka Consumer工作流程

Kafka Consumer工作流程图 1、启动与加入组 消费者启动后&#xff0c;会向 Kafka 集群中的某个 Broker 发送请求&#xff0c;请求加入特定消费者组。这个 Broker 中的消费者协调器&#xff08;Consumer Coordinator&#xff09;负责管理消费者组相关事宜。 2、组内分区分配&am…

大腾智能 PDM 系统:全生命周期管理重塑制造企业数字化转型路径

在当今激烈的市场竞争中&#xff0c;产品迭代速度与质量已成为企业生存与发展的核心命脉。面对客户需求多元化、供应链协同复杂化、研发成本管控精细化等挑战&#xff0c;企业亟需一套能够贯穿产品全生命周期的数字化解决方案。 大腾智能PDM系统通过构建覆盖设计、研发、生产、…

【短距离通信】【WiFi】WiFi7关键技术之4096-QAM、MRU

目录 3. 4096-QAM 3.1 4096-QAM 3.2 QAM 的阶数越高越好吗&#xff1f; 4. MRU 4.1 OFDMA 和 RU 4.2 MRU 资源分配 3. 4096-QAM 摘要 本章主要介绍了Wi-Fi 7引入的4096-QAM对数据传输速率的提升。 3.1 4096-QAM 对速率的提升 Wi-Fi 标准一直致力于提升数据传输速率&a…

线程池实战——数据库连接池

引言 作者在前面写了很多并发编程知识深度探索系列文章&#xff0c;反馈得知友友们收获颇丰&#xff0c;同时我也了解到友友们也有了对知识如何应用感到很模糊的问题。所以作者就打算写一个实战系列文章&#xff0c;让友友们切身感受一下怎么应用知识。话不多说&#xff0c;开…

基于moonshot模型的Dify大语言模型应用开发核心场景

基于moonshot模型的Dify大语言模型应用开发核心场景学习总结 一、Dify环境部署 1.Docker环境部署 这里使用vagrant部署&#xff0c;下载vagrant之后&#xff0c;vagrant up登陆&#xff0c;vagrant ssh&#xff0c;在vagrant 中使用 vagrant centos/7 init 快速创建虚拟机 安装…

华为OD机试真题——字符串序列判定(2025B卷:100分)Java/python/JavaScript/C/C++/GO最佳实现

2025 B卷 100分 题型 本专栏内全部题目均提供Java、python、JavaScript、C、C++、GO六种语言的最佳实现方式; 并且每种语言均涵盖详细的问题分析、解题思路、代码实现、代码详解、3个测试用例以及综合分析; 本文收录于专栏:《2025华为OD真题目录+全流程解析+备考攻略+经验分…