Run LLMs Locally on Linux and Windows (October 2026)

How to install Ollama on Linux and Windows, run a first model, confirm the GPU is being used, and fix the setup errors that stop a first run.

Updated October 30, 2026

Every local-AI page on this site starts with a number: how much VRAM the card has, how much RAM the box has, which runtime to install. The gap in our articles is the operating system: the platform coverage runs from Apple silicon to phones, the browser and a Raspberry Pi, but an ordinary Linux workstation or server and a Windows PC are not on it - a scan of the 939 article titles published before this one finds no Linux or Windows install page. Our shorter Linux guide and Windows guide cover the runtime choice on each platform, but neither walks the install itself the way this page does. Both platforms run the same MIT-licensed Ollama build, and neither install is the same job as the Mac one described in running LLMs locally on Apple silicon.

Verified 30 October 2026 against Ollama’s own documentation, the Ollama repository and its release feed, the Hugging Face model API and the live Ollama library. The current release is v0.40.13, published 28 October 2026.

Install Ollama on Linux

Ollama’s Linux documentation leads with one command:

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

The same page carries manual installs as well: an AMD64 tarball (ollama-linux-amd64.tar.zst) extracted into /usr, an ARM64 tarball (ollama-linux-arm64.tar.zst) and a separate ROCm package (ollama-linux-amd64-rocm.tar.zst) for AMD cards. There is no apt, dnf or pacman instruction on that page. The script can be pinned with OLLAMA_VERSION, and the documentation shows OLLAMA_VERSION=0.5.7 as the example.

Running it in the background is the next step, and the same page calls it “Adding Ollama as a startup service (recommended)”. It creates an ollama user and group, writes a unit file to /etc/systemd/system/ollama.service, then runs:

sudo systemctl daemon-reload
sudo systemctl enable ollama
sudo systemctl start ollama
sudo systemctl status ollama

The unit file it publishes is short, and User=ollama in it decides where models can be written:

[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

Logs go through journald: journalctl -e -u ollama.

Two details cause most of the Linux friction. The FAQ puts the default model directory at /usr/share/ollama/.ollama/models and says the ollama user needs read and write access to whatever OLLAMA_MODELS points at. And because the service runs as its own user, a variable exported in your shell never reaches it: the FAQ says environment variables should be set with systemctl edit ollama.service, followed by systemctl daemon-reload and systemctl restart ollama.

Install Ollama on Windows

Windows takes fewer steps. The documentation says “The Ollama install does not require Administrator, and installs in your home directory by default.” The installer is OllamaSetup.exe, which doubles as the update mechanism, and OllamaSetup.exe /DIR="d:\some\location" puts the binaries somewhere else.

The stated requirements are “Windows 10 22H2 or newer, Home or Pro” and “NVIDIA 551.61 or newer Drivers if you have an NVIDIA card”. For AMD cards the same page asks for an “AMD ROCm v7 / HIP7-capable driver stack for ROCm acceleration, or a Vulkan-capable AMD Radeon driver for Vulkan acceleration”. The disk requirement is stated plainly: “You’ll need at least 4GB of space for the binary install”, and the models themselves need room “which can be tens to hundreds of GB in size”.

There is a standalone archive for a CLI-only install. It carries “only the Ollama CLI and GPU library dependencies for Nvidia”, and two further packages can be extracted into the same directory depending on the hardware: ollama-windows-amd64-rocm.zip for AMD GPUs and ollama-windows-amd64-mlx.zip for MLX (CUDA). The Windows page also documents where everything lands: %LOCALAPPDATA%\Programs\Ollama for the binaries, %LOCALAPPDATA%\Ollama for logs and updates, and %HOMEPATH%\.ollama for models and configuration, matching the FAQ’s C:\Users\%username%\.ollama\models.

WSL2 needs naming, and the answer sits in two different documents. Ollama’s Windows installation page, read in full on 30 October 2026, does not describe WSL2 as an install path, but the FAQ does describe WSL2 networking settings that “can impact both installing Ollama, as well as downloading models”: “Large Send Offload Version 2 (IPv4)” and “Large Send Offload Version 2 (IPv6)”, both of which it says should be disabled.

Pick a first model that fits the machine

After installation the loop is one command, ollama run <tag>, which the quickstart describes as “Ollama downloads the model and starts a chat on your computer.”

ModelOllama tagDownload sizeLicenceNote
Gemma 3 270Mgemma3:270m292MBgemmaSmallest download on this list; gated on Hugging Face
Gemma 3 1Bgemma3:1b806MBgemmaGated on Hugging Face
Llama 3.2 3Bllama3.2:3b2.0GBllama3.2Gated on Hugging Face
Gemma 3 4Bgemma3:4b3.4GBgemmaGated on Hugging Face
Qwen3.5 4Bqwen3.5:4b-q4_K_M3.3GBApache-2.0The unqualified tag lists 3.3GB - 4.0GB
Granite 4.0 H Tinygranite4:7b-a1b-h4.2GBApache-2.07B total, 1B active per token
Qwen3.5 9Bqwen3.5:9b-q4_K_M6.6GBApache-2.0The unqualified tag lists 6.6GB - 7.6GB

Licences are read per repository from the Hugging Face API rather than inferred from the model family, and the Ollama tag is a repackaged build of that model. Four of the seven rows carry a trap this site has published wrongly before: google/gemma-3-270m-it, google/gemma-3-1b-it, google/gemma-3-4b-it and meta-llama/Llama-3.2-3B-Instruct are all gated: manual on Hugging Face, meaning a manual access request, while the Ollama tags download without one. Move from a runtime pull to the original weights later and that request is waiting for you.

The download size is not the memory footprint. The FAQ says Ollama uses a context window of 4096 tokens by default, that required RAM will scale by OLLAMA_NUM_PARALLEL * OLLAMA_CONTEXT_LENGTH, that OLLAMA_NUM_PARALLEL defaults to 1, and that models are kept in memory for five minutes before being unloaded. The VRAM tier index covers the other half of this decision, and a machine with no discrete card at all is a different problem again.

Confirm the GPU is doing the work

The check is one command. ollama ps lists what is currently loaded into memory, and the FAQ explains the Processor column: “100% GPU” means the model was loaded entirely into the GPU, “100% CPU” means it was loaded entirely in system memory, and “48%/52% CPU/GPU” means it was split across both.

VendorWhat Ollama’s hardware support page requiresNote
NVIDIA”Ollama supports Nvidia GPUs with compute capability 5.0+ and driver version 550 and newer.""Nvidia GPUs with compute capability 5.0 through 6.2 require driver version 570 or newer.” Windows asks for 551.61 or newer
AMD on Linux”Ollama requires the AMD ROCm v7 driver on Linux.”The page lists supported Radeon, Radeon PRO, Radeon AI PRO, Ryzen AI and Instinct parts
AMD on Windows”Ollama requires an AMD ROCm v7 / HIP7-capable driver stack on Windows.”A shorter list: Radeon RX 7000 and 9000 parts and Radeon PRO W7900 through W7500
IntelNo Intel card list appears in the hardware support pageIt links to Intel’s own Linux GPU driver instructions
Vulkan”Vulkan is enabled by default when the backend is installed.”Disable it with OLLAMA_VULKAN=0 or GGML_VK_VISIBLE_DEVICES=-1

If you want to ignore the GPUs and force CPU usage, the documentation says to “use an invalid GPU ID (e.g., “-1”)”. That is also why the Processor column matters more than the installer output: a card below the published floor does not fail loudly, it moves the work to the processor. Ollama’s troubleshooting page describes the AMD version of this, where older drivers “failed to finish discovery before timeout” and the model falls back to the CPU.

The failures worth knowing before you hit them

SymptomUsual causeFix
The client cannot reach the server”Ollama binds 127.0.0.1 port 11434 by default.”Set OLLAMA_HOST with systemctl edit ollama.service on Linux, or for your Windows user account, then restart the service or the tray app
A model download stalls under WSL2WSL2 networking settingsDisable “Large Send Offload Version 2 (IPv4)” and “Large Send Offload Version 2 (IPv6)“
Everything runs on the CPUThe driver is below the published floorRead the Processor column in ollama ps, then update the NVIDIA or ROCm driver
”failed to finish discovery before timeout” on AMDROCm 7 libraries on an older kernel driverUpdate to a compatible ROCm 7 driver, and check /dev/kfd access, which may need the video or render group
The installer cannot write its temporary files/tmp mounted noexecSet OLLAMA_TMPDIR to a writable location such as /usr/share/ollama/
Models missing after you moved the folderOLLAMA_MODELS changed but the service was not restartedReapply the variable, then systemctl daemon-reload and systemctl restart ollama

Bottom line

Linux is a one-line install followed by a systemd unit. Windows is an installer that needs no administrator rights and keeps everything in your home directory. Choose the first model by download size and licence rather than by parameter count, because the Gemma and Llama tags carry community terms and access requests on Hugging Face while Qwen3.5 and Granite 4 are Apache-2.0 and open. Then run ollama ps and read the Processor column, since a driver below the published floor does not announce itself.

The honest limits are worth stating: the hardware support page lists no Intel cards and points at Intel’s own driver instructions instead, and the model sizes here are the live library figures for 30 October 2026, which move whenever a model is re-quantised. This site does not own the hardware to test, so the page quotes install steps and published driver floors rather than throughput numbers.