1. 环境准备与离线包获取
在Linux服务器上离线部署Ollama,第一步要解决的就是安装包的获取问题。由于网络限制,直接从官网下载往往会遇到速度慢甚至失败的情况。这里我分享一个实测有效的解决方案:通过GitHub Releases获取离线包。
Ollama的官方发布地址是GitHub Releases页面,这里会定期更新各个版本的安装包。以当前最新的v0.6.6版本为例,我们需要下载的是ollama-linux-amd64.tgz这个文件。这个压缩包包含了Ollama运行所需的所有二进制文件和依赖。
实际操作中我发现,直接从浏览器下载这个文件可能会非常慢。这里有个小技巧:可以使用支持多线程下载的工具来加速。比如迅雷、IDM等工具都能显著提升下载速度。我实测用迅雷下载这个1GB左右的文件,速度能从几十KB/s提升到几MB/s,大大节省了等待时间。
下载完成后,建议先在本机校验文件的完整性。可以通过以下命令计算SHA256值:
sha256sum ollama-linux-amd64.tgz然后与GitHub Releases页面上公布的校验值进行比对。这一步很重要,可以避免后续安装过程中出现因文件损坏导致的各种奇怪问题。
2. 服务器环境配置
拿到离线安装包后,接下来需要在目标服务器上做好环境准备。根据我的经验,以下几个依赖项是必须提前安装的:
- tar:用于解压安装包
- systemd:用于服务管理
- 基础C库:glibc等
可以通过以下命令检查这些依赖是否已安装:
which tar systemctl --version ldd --version如果缺少某个依赖,可以使用系统自带的包管理器安装。比如在Ubuntu上:
sudo apt update sudo apt install tar systemd libc6对于CentOS/RHEL系统则是:
sudo yum install tar systemd glibc特别提醒:如果服务器是完全离线的,需要提前准备好这些依赖的离线安装包。建议在另一台同版本系统的联网机器上使用apt download或yum downloadonly命令获取这些依赖包。
3. 安装与配置Ollama
有了离线包和准备好的环境,现在可以开始正式安装了。我建议将Ollama安装在/usr/local/lib/ollama目录下,这是Linux系统存放第三方库的标准位置之一。
首先上传之前下载的离线包到服务器。可以使用scp命令:
scp ollama-linux-amd64.tgz user@your_server_ip:/tmp/然后登录服务器,执行以下安装步骤:
# 创建安装目录 sudo mkdir -p /usr/local/lib/ollama cd /usr/local/lib/ollama # 解压安装包 sudo tar -xzf /tmp/ollama-linux-amd64.tgz # 设置权限 sudo chown -R root:root /usr/local/lib/ollama sudo chmod -R 755 /usr/local/lib/ollama接下来需要配置systemd服务。创建或编辑/etc/systemd/system/ollama.service文件:
[Unit] Description=Ollama Service After=network.target [Service] ExecStart=/usr/local/lib/ollama/bin/ollama serve User=ollama Group=ollama Restart=always [Install] WantedBy=multi-user.target然后执行以下命令启用服务:
sudo systemctl daemon-reload sudo systemctl enable ollama sudo systemctl start ollama可以通过systemctl status ollama检查服务状态。如果一切正常,你应该能看到"active (running)"的状态提示。
4. 模型管理与使用技巧
Ollama安装完成后,接下来就是管理模型了。对于Qwen3这样的中文大模型,离线部署需要特别注意模型文件的获取和存放位置。
首先,模型文件需要提前从有网络的环境下载好。Ollama默认的模型存储路径是/data/ollama/models,我们可以手动创建这个目录:
sudo mkdir -p /data/ollama/models sudo chown -R ollama:ollama /data/ollama将下载好的模型文件(如Qwen3的gguf格式文件)放入这个目录。然后可以通过以下命令加载模型:
/usr/local/lib/ollama/bin/ollama run qwen3在实际使用中,我发现几个实用技巧:
- 使用
--verbose参数可以获取更详细的运行日志 - 通过
OLLAMA_MODELS环境变量可以自定义模型存储路径 - 对于性能调优,可以调整
OLLAMA_NUM_GPU参数来指定使用的GPU数量
如果遇到内存不足的问题,可以尝试量化版本的模型。Qwen3通常提供不同精度的版本,如4bit、8bit等,可以根据服务器配置选择合适的版本。
5. 常见问题排查
在离线环境中部署Ollama,难免会遇到各种问题。根据我的踩坑经验,这里总结几个常见问题及解决方法:
问题1:服务启动失败检查日志是最快的方法:
journalctl -u ollama -n 50 --no-pager常见原因包括:
- 权限问题:确保
/usr/local/lib/ollama目录的权限正确 - 端口冲突:Ollama默认使用11434端口,检查是否被占用
问题2:模型加载失败首先确认模型文件是否完整,可以通过以下命令校验:
sha256sum /data/ollama/models/qwen3-*.gguf然后检查模型目录的权限,确保ollama用户可以访问。
问题3:性能低下可以尝试以下优化:
export OLLAMA_NUM_GPU=1 # 明确指定GPU数量 export OLLAMA_KEEP_ALIVE=5m # 设置模型保持加载的时间对于更复杂的问题,建议查看Ollama的详细日志:
/usr/local/lib/ollama/bin/ollama serve --verbose6. 版本更新与维护
保持Ollama版本更新很重要,特别是当需要支持新模型时。离线环境下的更新流程与安装类似:
- 从GitHub Releases下载新版离线包
- 停止当前服务:
sudo systemctl stop ollama- 备份现有安装:
sudo cp -r /usr/local/lib/ollama /usr/local/lib/ollama.bak- 解压新版本覆盖安装
- 重启服务:
sudo systemctl start ollama建议在更新前备份模型目录和配置文件。如果更新后出现问题,可以快速回退到旧版本。
对于长期维护,我建议:
- 定期检查GitHub Releases页面获取更新
- 建立本地的离线包和模型仓库
- 编写自动化脚本管理安装和更新流程
在实际生产环境中,可以考虑使用容器化部署方案,这样更容易管理依赖和版本控制。不过对于纯离线环境,本文介绍的方法已经足够稳定可靠。