Ollama Linux 部署指南:安装、systemd 与模型目录

这篇文章解决什么问题

如果你已经知道 Ollama 是什么,也准备在 LinuxWSL 里把模型真正跑起来,这篇文章就是专门给 Linux 用户的部署说明。

它主要解决四件事:

  • Linux 下怎么安装 Ollama
  • 怎么确认 GPUCUDA 环境是否可用
  • 怎么用 systemdOllama 变成常驻服务
  • 模型默认下载到哪里,以及怎么改模型目录

如果你想先看更通用的安装和模型命令主线,可以先读:

  1. Ollama 本地部署指南

一、部署前先确认机器条件

本地跑模型前,建议先确认以下几点:

  • 操作系统是否支持当前安装方式
  • 磁盘空间是否足够存放模型文件
  • 如果计划用 GPU,加速环境是否可用
  • 是否允许后台服务长期运行

如果你在 Linux 或 WSL 中计划使用 NVIDIA GPU,可以先执行:

nvidia-smi

通常重点看这些字段:

  • Driver Version:显卡驱动版本
  • CUDA Version:CUDA 版本
  • 显存容量与当前占用情况

如果这些信息能正常显示,通常说明 GPU 环境已经基本可用。

这里要特别注意:

  • 如果你希望启用 NVIDIA GPU 加速,必须先手动安装好显卡驱动、CUDA 及相关运行环境
  • Ollama 本身不会自动帮你完成这一步,它只是在检测到可用 GPU 环境后进行调用

也就是说,安装 Ollama准备好 NVIDIA 加速环境 是两件事,不要混为一谈。

二、Linux 下安装 Ollama

1. 官网脚本一键安装

这是最省事的方式:

curl -fsSL https://ollama.com/install.sh | sh
ollama --version

适合快速体验或个人开发环境。

2. 手动下载安装包

如果网络受限、需要离线部署,或者希望自己掌控安装路径,可以手动下载对应压缩包:

下载后解压,并将可执行文件放到系统 PATH 中即可。

三、前台运行:适合快速测试

安装完成后,可以先直接在终端里启动:

ollama serve

这种方式适合:

  • 临时调试
  • 验证安装是否成功
  • 观察日志输出

如果日志里能看到服务监听成功、GPU 被识别等信息,通常说明环境没有大问题。

前台运行结束时,可以使用 Ctrl + C 直接退出当前服务进程。

四、Linux 下用 systemd 管理 Ollama

如果你希望 Ollama 作为系统服务运行,适合使用 systemd 进行管理。这样更适合服务器、长期运行环境和开机自启场景。

1. 创建运行用户

先创建专用用户,并把当前用户加入对应用户组:

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

这样做的好处是:

  • 避免直接用 root 常驻运行
  • 便于隔离权限
  • 更适合生产或长期运行环境

2. 创建 systemd 服务文件

创建服务文件:

sudo touch /etc/systemd/system/ollama.service

然后写入以下内容:

[Unit]
Description=Ollama Service
After=network-online.target

[Service]
ExecStart=/usr/bin/ollama serve
User=ollama
Group=ollama
Restart=always
RestartSec=3
Environment="PATH=$PATH"

[Install]
WantedBy=multi-user.target

如果你的 ollama 不在 /usr/bin/ollama,需要把 ExecStart 改成真实路径。

3. 重新加载 systemd 配置

sudo systemctl daemon-reload

4. 常用服务管理命令

sudo systemctl enable ollama   # 开机自启
sudo systemctl disable ollama  # 取消开机自启
sudo systemctl start ollama    # 启动服务
sudo systemctl status ollama   # 查看服务状态
sudo systemctl stop ollama     # 停止服务

如果你修改过服务文件,通常还需要重新执行一次:

sudo systemctl daemon-reload
sudo systemctl restart ollama

五、验证 Ollama 服务是否正常

1. 查看服务状态

sudo systemctl status ollama

如果状态是 active (running),通常表示服务已经正常启动。

2. 查看日志

如果你怀疑服务没有启动成功,可以进一步看日志:

journalctl -u ollama -n 100 --no-pager

重点关注这些问题:

  • 可执行文件路径是否正确
  • 权限是否足够
  • 端口是否冲突
  • GPU 或 CUDA 是否识别成功

六、Linux 下修改模型目录

很多人第一次拉模型时,最容易忽略的问题不是命令本身,而是:

  • 模型文件到底下载到哪里了
  • 默认盘符空间不够时怎么改目录
  • systemd 和手动运行时,模型目录是不是同一个位置

这部分建议在正式下载大模型之前先搞清楚。

1. 默认模型目录在哪

Ollama 的模型目录,本质上跟“当前运行 Ollama 的用户家目录”有关。

常见情况可以先这样记:

  • Linux 手动运行:~/.ollama/models
  • Linux systemd 运行:通常是 /usr/share/ollama/.ollama/models

之所以 systemd 场景常见的是 /usr/share/ollama/.ollama/models,是因为前面创建服务用户时用了:

sudo useradd -r -s /bin/false -U -m -d /usr/share/ollama ollama

也就是说,这个 ollama 用户的家目录就是 /usr/share/ollama,因此模型默认会落到:

/usr/share/ollama/.ollama/models

如果你是用当前登录用户直接执行 ollama serve,那模型目录通常会在当前用户的:

~/.ollama/models

2. Linux 前台运行时怎么修改

如果你是手动执行 ollama serve,可以直接在当前 shell 中设置环境变量:

export OLLAMA_MODELS=/data/ollama/models
ollama serve

如果你希望长期生效,可以把它写入 ~/.bashrc~/.zshrc

export OLLAMA_MODELS=/data/ollama/models

保存后重新加载 shell 配置,或者重新打开终端。

3. Linux systemd 服务中怎么修改

如果你是按本文前面的方式,把 Ollama 作为 systemd 服务运行,那么最稳妥的做法是直接在服务配置里增加环境变量。

例如:

[Service]
ExecStart=/usr/bin/ollama serve
User=ollama
Group=ollama
Environment="OLLAMA_MODELS=/data/ollama/models"

如果你已经有服务文件,也可以在现有配置基础上追加这一行。

修改后执行:

sudo mkdir -p /data/ollama/models
sudo chown -R ollama:ollama /data/ollama
sudo systemctl daemon-reload
sudo systemctl restart ollama

这里最关键的是两点:

  • 目标目录要提前创建
  • 运行服务的用户要对该目录有读写权限

否则服务虽然能启动,但模型可能下载失败,或者运行时找不到写入权限。

4. 如果模型已经下载过,修改路径后怎么办

如果你已经拉过模型,再修改 OLLAMA_MODELS,新旧目录不会自动帮你迁移。

常见做法是:

  1. 停掉 Ollama 服务或退出 Ollama 程序
  2. 手动把原目录下的模型文件移动到新目录
  3. 确认新目录权限正确
  4. 重新启动 Ollama
  5. 执行 ollama list 检查模型是否仍然能识别

如果你不想手动迁移,也可以在新目录重新执行一次 ollama pull,只是会重新下载,占用时间和带宽。

5. 怎么确认当前模型目录已经生效

可以用最直接的办法验证:

  1. 先设置好 OLLAMA_MODELS
  2. 重启 Ollama
  3. 拉一个小模型,例如:
ollama pull qwen2:0.5b
  1. 到你设置的新目录里查看是否出现了模型文件

如果你用的是 systemd,还可以结合日志一起看:

journalctl -u ollama -n 100 --no-pager

小结

这篇文章真正要打通的是下面这条 Linux 主线:

检查环境 -> Linux 安装 -> 前台测试 -> systemd 托管 -> 验证服务 -> 调整模型目录

只要这条链路跑通,你就已经具备了在 LinuxWSL 里稳定运行本地模型的基础。