使用CentOS部署本地DeekSeek
一、查看服务器的操作系统版本
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' >> ~/.bashrcsource ~/.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 lvm2yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repoyum install -y docker-cesystemctl 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 系统的核心组件,直接升级可能导致:
- 系统命令(如ls、bash)无法运行,因为它们依赖旧版本的 Glibc。
- 软件包管理器(如yum、apt)崩溃,导致系统无法修复。
- 因此,升级 Glibc 需要谨慎操作,通常需要通过官方渠道或特定工具(如scl、conda)进行。
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-reloadsudo systemctl restart ollama.service
(4)检查环境变量是否正确设置.
sudo systemctl show --property=Environment ollama.serviceEnvironment=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.runsudo sh cuda_11.8.0_520.61.05_linux.run
最后,更新环境变量:
echo 'export PATH=/usr/local/cuda-11.8/bin:$PATH' >> ~/.bashrcecho 'export LD_LIBRARY_PATH=/usr/local/cuda-11.8/lib64:$LD_LIBRARY_PATH' >> ~/.bashrcsource ~/.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.confecho '* soft nofile 65536' | sudo tee -a /etc/security/limits.confecho '* hard nofile 65536' | sudo tee -a /etc/security/limits.confsudo 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:8080export 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/tcpsudo 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