在 Fedora 上装 Ollama:包拆分、本地服务与模型下载实测
和 k3s 不同,Ollama 在 Fedora 官方仓库里就有:
dnf list --available ollamaollama.x86_64 0.24.0-4.fc45 fedora但装之前得先看懂 Fedora 的打包方式——它把一个 Ollama 拆成了四个包。
四个包:ollama 本身只有 18.7 KiB
Section titled “四个包:ollama 本身只有 18.7 KiB”rpm -qR ollama | grep -v rpmlib/bin/shollama-base(x86-64) = 0.24.0-4.fc45ollama-rocm(x86-64) = 0.24.0-4.fc45ollama-vulkan(x86-64) = 0.24.0-4.fc45ollama 是个元包,dnf install ollama 会把三个后端全拖下来。实测体积:
| 包 | 安装体积 | 内容 |
|---|---|---|
ollama | 18.7 KiB | 只有 README 与依赖声明 |
ollama-base | 44.7 MiB | 主程序 + CPU 后端 |
ollama-vulkan | 49.7 MiB | Vulkan 后端(通用 GPU) |
ollama-rocm | 993.4 MiB | AMD ROCm 后端 |
装完 ollama 后实测:
rpm -ql ollama/usr/share/doc/ollama/usr/share/doc/ollama/README.md整个包里一个二进制都没有——真正的 ollama 可执行文件在 ollama-base 里。
CPU-only:只装 ollama-base
Section titled “CPU-only:只装 ollama-base”没有 GPU 的服务器(本站实验机就是)这样装:
sudo dnf install ollama-base省下 rocm 的 993 MiB 与 vulkan 的 49.7 MiB,只留 44.7 MiB 的 CPU 后端。
有 NVIDIA 显卡的机器不走这条路——Fedora 包没有 cuda 后端子包,需要用上游安装脚本装带 CUDA 的版本。
sudo systemctl enable --now ollamasystemctl is-active ollamaollama --versionactiveollama version is 0.24.0服务默认把端口绑在回环地址上:
ss -lntp | grep 11434LISTEN 0 4096 127.0.0.1:11434 0.0.0.0:*127.0.0.1 意味着只能本机访问。想让局域网里其他机器用,得改 OLLAMA_HOST:
sudo systemctl edit ollama[Service]Environment="OLLAMA_HOST=0.0.0.0:11434"改完 sudo systemctl daemon-reload && sudo systemctl restart ollama。
拉模型:真正的瓶颈在这里
Section titled “拉模型:真正的瓶颈在这里”装包只花几十秒,拉模型才是卡住的地方。实测拉一个 91 MB 的小模型:
ollama pull smollm:135mpulling eb2c714d40d4: 13% ▕██ ▏ 12 MB/ 91 MB 154 KB/s 8m33spulling eb2c714d40d4: 33% ▕█████ ▏ 30 MB/ 91 MB 63 KB/s 16m2spulling eb2c714d40d4: 46% ▕█████████ ▏ 46 MB/ 91 MB 91 KB/s 8m16s速度在 63–154 KB/s 之间波动,91 MB 要跑十几二十分钟。一个 4 GB 的 7B 模型按这个速度是几小时。
所以国内用 Ollama,真正要解决的不是装软件,是模型文件怎么进来。
| 思路 | 说明 |
|---|---|
| 换更小的模型 | 135m / 0.5B 这类,几十到几百 MB,能忍 |
| 先在能快的地方拉好再拷 | ollama pull 后把模型目录整体复制到目标机 |
| 用国内模型分发平台 | ModelScope 上有官方模型仓库,但需要手工转成 Ollama 格式,不是一条命令 |
ollama list # 本地已有模型ollama pull qwen2.5:0.5b # 拉模型ollama run qwen2.5:0.5b # 交互式对话ollama ps # 当前加载在内存里的模型ollama rm smollm:135m # 删模型ollama run 进去后是一个 REPL,/bye 退出。非交互用法:
ollama run qwen2.5:0.5b "用一句话解释什么是 SELinux"CPU 推理实测
Section titled “CPU 推理实测”模型拉下来之后,--verbose 能打出真实的分段耗时:
ollama run smollm:135m --verbose "Say hello in five words."load duration: 31.149937msprompt eval count: 15 token(s)prompt eval duration: 12.673781msprompt eval rate: 1183.55 tokens/seval count: 586 token(s)eval duration: 3.921963228seval rate: 149.41 tokens/s| 阶段 | 含义 | 实测 |
|---|---|---|
load duration | 模型从磁盘读进内存 | 31.15 ms |
prompt eval | 处理输入提示 | 1183.55 tokens/s |
eval | 逐 token 生成 | 149.41 tokens/s |
这是 135M 参数模型在纯 CPU 上的数字。参数规模上去之后,生成速度大致按比例下降——所以小模型 CPU 能跑,7B 在 CPU 上通常只有个位数 tokens/s。
CPU 推理时模型整个加载进内存。实验机 3 GB 内存,跑 0.5B 级别没问题,7B(约 4.7 GB)会直接 OOM。
free -g | head -2ollama psollama ps 里能看到模型占用的实际内存。跑不动的表现是进程被 OOM killer 干掉,journalctl -u ollama -n 50 里能看到。
| 现象 | 原因 |
|---|---|
ollama 命令不存在 | 只装了元包?确认 rpm -q ollama-base |
| 装了 ollama 磁盘少 1 GB | 拖进了 ollama-rocm,无 AMD GPU 时改装 ollama-base |
| 远程连不上 11434 | 默认只绑 127.0.0.1,要设 OLLAMA_HOST |
| 拉模型极慢 | 模型从 ollama.com 下载,国内无加速通道 |
| 跑大模型机器卡死 | 内存不足,模型被整体加载 |
ollama --version 只打印 warning | 服务没起来,先 systemctl start ollama |