Ollama

ID

ollama

Home page

https://ollama.com

Version requirement

>= 0.5

Platforms

🐧 Linux · 🍎 macOS · 🪟 Windows

Operations

installed · install · upgrade · remove

purl types

pkg:ollama

CLI name

ollama

Issues and PRs

📦 manager: ollama

Source

meta_package_manager/managers/ollama.toml

ollama runs large language models locally (https://ollama.com), and what is wrapped here is its model management.

A package is a model, identified by the name:tag pair the listing prints. The tag is part of the identity rather than a version: llama3.2:1b and llama3.2:3b are separate models, installed and removed independently, and the listing always spells the tag out, :latest included. That string is exactly what pull and rm accept back.

No version is reported. The only version-shaped column is a truncated content digest, which is a hash rather than an ordered version, and putting it in a version column would invite comparisons that mean nothing. mpm treats an installed version as optional throughout.

Warning

ollama is a client talking to a local daemon, and listing models needs that daemon. Where it is not already running, the client does not simply fail: on macOS it launches the desktop application through open, and on Windows it starts the background helper, in both cases as a side effect of a read. Only Linux fails cleanly, asking the user to run ollama serve themselves. No flag suppresses this. It is bounded, since the daemon is one the user installed deliberately and which starts itself at login on both desktop platforms, and it changes no package state, but a plain mpm installed can start a service on a machine where none was running.

No outdated. Re-pulling a tag fetches whatever the registry now holds, but nothing reports that a local model is behind without downloading it. The upstream change that would add the mechanism has been an unmerged draft since 2024 (ollama/ollama#2179). The MODIFIED column is no substitute: it records the last pull attempt, so a re-pull that changed nothing still resets it.

Without an outdated there is no upgrade --all either, since mpm builds that one from the outdated set. Upgrading a named model works, being the same pull that installed it.

No search: ollama has no such subcommand, and the request for one has been open since 2023 (ollama/ollama#286), with a later CLI-specific request closed as a duplicate of it. No sync or cleanup either: the daemon prunes unreferenced blobs at startup, and no command exposes that.

No escalation. The client only speaks HTTP to the daemon, which does every write itself, so nothing here needs privileges even where the daemon runs under a service account of its own.

What mpm adds to ollama

mpm reaches across every manager at once, not ollama alone: mpm installed and mpm outdated cover ollama alongside every other manager you run in one table, mpm upgrade --all updates them together, and mpm sbom exports the whole machine as one bill of materials.

Every mpm command also gains --dry-run and --plan previews, cross-scheme version comparison and purl identifiers. See manager augmentations for how each one is built.

Your ollama commands, in mpm

You already know ollama: each operation maps one-to-one onto mpm, in an interface shared by every manager.

To…

With ollama

With mpm

List what’s installed

ollama list

mpm --ollama installed

Install a package

ollama pull <package_id>

mpm install pkg:ollama/<package_id>

Upgrade one package

ollama pull <package_id>

mpm --ollama upgrade <package_id>

Remove a package

ollama rm <package_id>

mpm remove pkg:ollama/<package_id>

Prefix any command above with --dry-run to simulate the underlying manager calls without touching the system: the safe way to watch what mpm would do before trusting it.

Operations

Operation

Supported

installed

outdated

orphans

search

install

upgrade

upgrade_all

remove

sync

cleanup

doctor

Selecting and configuring ollama

Deselect ollama for a single run with --no-ollama, or persist the choice in your configuration:

[mpm]
ollama = false

Keep it enabled but tune how mpm drives it with a per-manager override:

[mpm.managers.ollama]
timeout = 900

mpm config-template ollama prints every overridable attribute as a ready-to-paste block.

Recipes

A few jobs you would otherwise script around ollama, one mpm command each:

  • Snapshot and clone a machine: mpm --ollama dump ollama.toml, then mpm restore ollama.toml on the next one.

  • Export a compliance SBOM: mpm --ollama sbom (CycloneDX by default, --spdx for SPDX).

Privilege escalation

mpm runs this manager as the current user and never prepends sudo by default. Flip the policy for its privileged operations with --sudo or the per-manager sudo override.

None of its operations needs root.

See privilege escalation for the full policy.

Cooldown

State of Ollama’s release-age gating, from the cooldown support table:

Status: ❌ None

A cooldown only pays off where a compromised release can be withdrawn while the clock runs, and can only be emulated where the registry dates its releases. From the retraction table:

  • Registry: Ollama model registry

  • Retraction: Author deletion: a model is published to the registry under its own namespace and withdrawn there, the tag ceasing to resolve while any copy already pulled stays in the local store

  • Publish date: ❌ the manifest carries a content digest and no publication date for a release-age gate to read

With --cooldown set, mpm skips this manager’s install and upgrade operations rather than run them unguarded (fail-closed); --allow-unsupported-managers opts back in.

Version probe

The version is probed by running:

$ ollama --version
ollama version is 0.32.8
Warning: client version is 0.32.9

and extracted with:

r"version is (?P<version>\S+)"

Changelog

  • 7.7.0.dev0 (unreleased)

    • Add the Ollama model manager with installed, install, upgrade and remove support, shipped as a bundled definition. Models are keyed on the name:tag pair its listing prints. It declares no outdated, nothing reporting that a local model is behind without downloading it, and so no upgrade --all either. Note that listing models starts ollama’s daemon on macOS and Windows where it is not already running.