Centos7系统中安装Deepseek
1 前提条件
1.1 防火墙和端口配置
保持防火墙开启,仅开放所需端口(推荐)
如果 Ollama 需要特定端口通信(如默认的 11434
端口),建议通过防火墙规则放行该端口,而非完全关闭防火墙。这是更安全的做法。
-
查询当前开放的端口
firewall-cmd --list-ports
-
开放指定端口(以 11434 为例)
firewall-cmd --zone=public --add-port=11434/tcp --permanent
-
--permanent
表示规则永久生效,重启后仍保留。
-
-
重载防火墙配置
firewall-cmd --reload
-
验证规则是否生效
firewall-cmd --list-ports # 查看已开放端口
1.2 其他配置
#临时关闭selinux:
setenforce 0
# 安装必要的使用工具
yum install -y vim wget net-tools
# 替换阿里yum源
$ curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 2523 100 2523 0 0 7837 0 --:--:-- --:--:-- --:--:-- 7859
2 安装Ollama
2.1 下载安装脚本
执行命令:
curl -fsSL https://ollama.ai/install.sh | sh
该脚本会自动检测系统架构并下载对应版本(支持x86_64和ARM架构)[2]。
# 安装命令如下
[super@yjz]$ curl -fsSL https://ollama.com/install.sh | sh
>>> Installing ollama to /usr/local
>>> Downloading Linux amd64 bundle
######################################################################## 100.0%
>>> Creating ollama user...
>>> Adding ollama user to video group...
>>> Adding current user to ollama group...
>>> Creating ollama systemd service...
>>> Enabling and starting ollama service...
Created symlink from /etc/systemd/system/default.target.wants/ollama.service to /etc/systemd/system/ollama.service.
>>> The Ollama API is now available at 127.0.0.1:11434.
>>> Install complete. Run "ollama" from the command line.
WARNING: No NVIDIA/AMD GPU detected. Ollama will run in CPU-only mode.
2.2 启动服务
# 查看监听端口
sudo firewall-cmd --list-all
# 设置端口11434
sudo firewall-cmd --permanent --add-port=11434/tcp
安装完成后启用服务:
systemctl enable ollama
systemctl start ollama
在Service中增加下面两行
# vim /etc/systemd/system/ollama.service
Environment="OLLAMA_HOST=0.0.0.0"
Environment="OLLAMA_ORIGINS=*"
2.3 端口修改和模型路径配置
1. 修改环境变量
编辑系统配置文件:
vi /etc/systemd/system/ollama.service
在 [Service]
部分添加:
Environment="OLLAMA_HOST=0.0.0.0:8166"
Environment="OLLAMA_ORIGINS=*"
Environment="OLLAMA_MODELS=/data1/ollama/models"
-
保存后执行:
systemctl daemon-reload systemctl restart ollama
-
验证路径
查看服务日志确认配置生效:journalctl -u ollama -f
2.3.1 遇到启动错误
[super@gk models]$ journalctl -u ollama -f
-- Logs begin at Tue 2025-03-04 13:41:40 CST. --
Mar 07 11:31:54 gk systemd[1]: Started Ollama Service.
Mar 07 11:31:54 gk systemd[1]: ollama.service: main process exited, code=exited, status=1/FAILURE
Mar 07 11:31:54 gk systemd[1]: Unit ollama.service entered failed state.
Mar 07 11:31:54 gk systemd[1]: ollama.service failed.
Mar 07 11:31:57 gk systemd[1]: ollama.service holdoff time over, scheduling restart.
Mar 07 11:31:57 gk systemd[1]: Stopped Ollama Service.
Mar 07 11:31:57 gk systemd[1]: Started Ollama Service.
Mar 07 11:31:57 gk systemd[1]: ollama.service: main process exited, code=exited, status=1/FAILURE
排查问题:
-
检查二进制文件
确认文件是否存在且有执行权限:ls -l /usr/local/bin/ollama
如果文件存在,尝试以 ollama 用户手动运行该命令:
sudo -u ollama /usr/local/bin/ollama serve
观察输出的错误信息,这有助于判断是依赖问题还是其他错误。
系统上安装的 GNU C 库(glibc)的版本过低。Ollama 的二进制文件依赖于 GLIBC 2.27,而 CentOS 7 默认使用的是 glibc 2.17,因此无法满足要求。
解决这个问题的常见方法有:
-
使用兼容版本的 Ollama
如果有针对 CentOS 7 编译的版本,建议使用它,这样可以避免升级 glibc 的风险。 -
容器化运行
使用基于较新发行版(例如 Ubuntu 20.04 或更高版本)的 Docker 容器运行 Ollama,这样容器内会有更新的 glibc,而不会影响主机系统。 -
升级 glibc(不推荐)
虽然可以尝试升级系统的 glibc,但在 CentOS 7 上升级 glibc 极其危险,可能会破坏系统上大量依赖旧版本 glibc 的程序,不建议这样做。
建议优先尝试前两种方案。
2.4 SELinux调整(可选)
若遇到权限问题,临时禁用SELinux:
setenforce 0
或添加自定义策略:
semanage port -a -t http_port_t -p tcp 8166
2.5 验证配置
netstat -tulnp | grep 8166 # 确认端口监听状态
curl http://localhost:8166 # 测试服务连通性
3 安装兼容centos8版本的ollama
步骤总结:
- 拉取CentOS 8镜像。
- 运行容器并命名。
- 进入容器,安装依赖如curl。
- 执行Ollama的安装脚本。
- 验证安装是否成功。
需要检查各个步骤是否有遗漏,比如是否需要更新yum包,是否需要配置环境变量等。安装Ollama后可能需要配置环境变量,但如果是通过官方脚本安装,可能已经自动处理了。此外,确保容器内的系统时间、网络连接正常,以便下载安装包。
最后,验证安装是否成功,可以通过ollama --version
命令,
以下是基于CentOS 8容器部署Ollama的详细步骤,结合Docker操作与容器内安装流程:
尝试centos 系统的部署之后,发现很多问题,转向ubantu系统
3.1 拉取ubuntu 22镜像
使用以下命令从Docker Hub拉取官方镜像:
docker pull ubuntu:22.04
[root@iZbp10y1sgvj78vl58x69nZ ~]# docker pull ubuntu:22.04
22.04: Pulling from library/ubuntu
Digest: sha256:f154feaf13b51d16e2b4b5575d69abc808da40c4b80e3a5055aaa4bcc5099d5b
Status: Image is up to date for ubuntu:22.04
docker.io/library/ubuntu:22.04
3.2 创建并运行容器
如果存在冲突容器,删除
# 停止容器
docker stop bf7e3c7e5410
[super@gk yjz]$ docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
bf7e3c7e5410 ubuntu:18.04 "/bin/bash" 2 days ago Exited (0) 10 seconds ago ollama
# 删除所有已停止的容器
docker rm -f $(docker ps -aq)
启动一个名为ollama
的容器,并进入交互式终端:
docker run -itd --name ollama -p 8166:8166 ubuntu:22.04 /bin/bash
docker run -itd --name ollama -p 8166:8166 -v /data1/yjz/DS:/home ubuntu:22.04 /bin/bash
docker exec -it ollama /bin/bash
# centos系统
docker run -itd --name sollama -p 8167:8167 -v /data1/yjz/DS:/home centos:8 /bin/bash
docker exec -it sollama /bin/bash
3.3 容器内安装依赖
进入容器后,先更新系统并安装必要工具:
apt update
apt upgrade -y
apt install -y curl git
3.4 执行Ollama官方安装脚本
通过一键脚本安装Ollama服务:
curl -fsSL https://ollama.com/install.sh | sh
该脚本会自动完成以下操作:
• 下载最新版Ollama二进制文件
• 注册为系统服务(需在容器内启用systemd管理)
• 默认模型存储路径为/root/.ollama/models
3.5 配置容器环境
若需自定义配置,可调整环境变量:
# 开放外网访问(容器内)
export OLLAMA_HOST="0.0.0.0:8166"
# 设置模型存储路径(需提前创建目录)
export OLLAMA_MODELS="/data/ollama"
mkdir -p $OLLAMA_MODELS
3.6 启动服务并验证
启动Ollama服务并检查状态:
systemctl start ollama
systemctl status ollama
# 验证版本
ollama --version
3.7 运行模型测试
在容器内直接运行模型(如Llama3):
ollama run llama3
首次运行会自动下载模型文件,需确保容器有足够磁盘空间(建议挂载数据卷)。