Skip to content
Search Fedora

    Browse this documentation

    Installing Ollama on Fedora: the package split, the local service, and measured model download speed

    Unlike k3s, Ollama is packaged in the official Fedora repositories:

    Terminal window
    dnf list --available ollama
    ollama.x86_64 0.24.0-4.fc45 fedora

    But read the packaging before installing — Fedora splits one Ollama into four packages.

    ollama's four split packages and the loopback-only 11434 listener

    Four packages, and ollama itself is 18.7 KiB

    Section titled “Four packages, and ollama itself is 18.7 KiB”
    Terminal window
    rpm -qR ollama | grep -v rpmlib
    /bin/sh
    ollama-base(x86-64) = 0.24.0-4.fc45
    ollama-rocm(x86-64) = 0.24.0-4.fc45
    ollama-vulkan(x86-64) = 0.24.0-4.fc45

    ollama is a meta package: dnf install ollama drags in all three backends. Measured sizes:

    PackageInstalled sizeContents
    ollama18.7 KiBREADME and dependency declarations only
    ollama-base44.7 MiBmain binary plus CPU backend
    ollama-vulkan49.7 MiBVulkan backend (generic GPU)
    ollama-rocm993.4 MiBAMD ROCm backend

    What the meta package actually installs:

    Terminal window
    rpm -ql ollama
    /usr/share/doc/ollama
    /usr/share/doc/ollama/README.md

    Not a single binary — the real ollama executable lives in ollama-base.

    On a server without a GPU (like this lab box):

    Terminal window
    sudo dnf install ollama-base

    That skips 993 MiB of rocm and 49.7 MiB of vulkan, keeping only the 44.7 MiB CPU backend.

    Machines with an NVIDIA card cannot take this route — there is no cuda backend subpackage, so use the upstream install script that ships CUDA.

    Terminal window
    sudo systemctl enable --now ollama
    systemctl is-active ollama
    ollama --version
    active
    ollama version is 0.24.0

    By default the service binds to loopback:

    Terminal window
    ss -lntp | grep 11434
    LISTEN 0 4096 127.0.0.1:11434 0.0.0.0:*

    127.0.0.1 means local access only. To serve other machines on the LAN, change OLLAMA_HOST:

    Terminal window
    sudo systemctl edit ollama
    [Service]
    Environment="OLLAMA_HOST=0.0.0.0:11434"

    Then sudo systemctl daemon-reload && sudo systemctl restart ollama.

    Installing the package takes seconds; pulling models is what hurts. Measured with a 91 MB model:

    Terminal window
    ollama pull smollm:135m
    pulling eb2c714d40d4: 13% ▕██ ▏ 12 MB/ 91 MB 154 KB/s 8m33s
    pulling eb2c714d40d4: 33% ▕█████ ▏ 30 MB/ 91 MB 63 KB/s 16m2s
    pulling eb2c714d40d4: 46% ▕█████████ ▏ 46 MB/ 91 MB 91 KB/s 8m16s

    Throughput oscillates between 63 and 154 KB/s, so 91 MB takes fifteen to twenty minutes. A 4 GB 7B model at that rate is hours.

    So the real problem in this region is not installing the software, it is getting model files in.

    ApproachNote
    use smaller models135m / 0.5B class, tens to hundreds of MB, tolerable
    pull elsewhere, copy overafter ollama pull, copy the model directory to the target host
    domestic model platformsModelScope hosts official model repos, but you must convert to Ollama format — not a one-liner
    Terminal window
    ollama list # models present locally
    ollama pull qwen2.5:0.5b # fetch a model
    ollama run qwen2.5:0.5b # interactive chat
    ollama ps # models currently loaded in memory
    ollama rm smollm:135m # delete a model

    ollama run opens a REPL; leave with /bye. For one-shot use:

    Terminal window
    ollama run qwen2.5:0.5b "explain SELinux in one sentence"

    Once a model is local, --verbose prints the real per-stage timings:

    Terminal window
    ollama run smollm:135m --verbose "Say hello in five words."
    load duration: 31.149937ms
    prompt eval count: 15 token(s)
    prompt eval duration: 12.673781ms
    prompt eval rate: 1183.55 tokens/s
    eval count: 586 token(s)
    eval duration: 3.921963228s
    eval rate: 149.41 tokens/s
    StageMeaningMeasured
    load durationmodel read from disk into memory31.15 ms
    prompt evalprocessing the prompt1183.55 tokens/s
    evalgenerating tokens149.41 tokens/s

    Those are numbers for a 135M model on CPU alone. Generation speed drops roughly with parameter count, so small models are usable on CPU while a 7B typically manages single-digit tokens per second.

    On CPU inference the model is loaded into memory whole. With 3 GB of RAM a 0.5B model is fine; a 7B (about 4.7 GB) will OOM.

    Terminal window
    free -g | head -2
    ollama ps

    ollama ps shows the memory each loaded model occupies. When it does not fit, the OOM killer takes the process — visible in journalctl -u ollama -n 50.

    SymptomCause
    ollama command missingonly the meta package installed? check rpm -q ollama-base
    disk shrank by ~1 GBollama-rocm came along; without an AMD GPU install ollama-base
    cannot reach 11434 remotelydefault bind is 127.0.0.1; set OLLAMA_HOST
    model pulls crawlfiles come from ollama.com with no regional acceleration
    machine freezes on a large modelnot enough RAM; the model loads whole
    ollama --version prints only a warningthe service is down; systemctl start ollama