Install Ollama v0.17.1-rc2
2026-02-265 turns14,924 charsgpt-5-2⑂ 1 fork(s)
Summary
The user is trying to install Ollama v0.17.1-rc2 and encountering a 500 error when using the chat API with a model loaded via Metal on Apple M4 Pro.
Messages
⑂ thread forked here
I want to install https://github.com/ollama/ollama/tree/v0.17.1-rc2
Here’s how you can **install Ollama from the v0.17.1-rc2 release on your system** — including both general install methods and how to work with the specific release you linked on GitHub: citeturn0view0
---
## 📦 1) Install Prebuilt Ollama (Easy)
Ollama provides an installer script that fetches the latest or a **specific version** (including release candidates like *v0.17.1-rc2*). This works on macOS & Linux terminals:
### ✅ macOS / Linux (recommended)
```sh
curl -fsSL https://ollama.com/install.sh | OLLAMA_VERSION=0.17.1-rc2 sh
```
This will:
- Download and install the **v0.17.1-rc2** version (pre-release) of Ollama
- Place the `ollama` executable in your PATH
- Register the service (Linux) so you can run models locally
💡 After install, run to check:
```sh
ollama -v
```
You should see version *0.17.1-rc2* printed (if that release is published and available via the install script). citeturn0reddit29
---
## 🧑💻 2) Build From Source (Advanced / GitHub)
If the version *v0.17.1-rc2* **isn’t available via the installer script** or you want to build it yourself, you can clone and compile the source.
### Steps (macOS & Linux)
```sh
# Clone the repo at the pre-release tag
git clone https://github.com/ollama/ollama.git
cd ollama
git checkout v0.17.1-rc2
# Build with Go (Ol
lama is written in Go)
go build ./cmd/ollama
# Move the binary into your PATH
sudo mv ollama /usr/local/bin/
```
You may also need:
- Go installed (go1.20 or later)
- CMake & build tools (Linux/macOS dev tools)
After that you can run:
```sh
ollama serve # starts the local server
ollama -v # verify version
```
This builds the `ollama` CLI launcher locally rather than downloading prebuilt binaries.
---
## 🐳 3) Using Docker (Alternative)
If you don’t want to install directly on your machine, you can use the official Docker image:
```sh
docker run -d \
-v ollama_data:/root/.ollama \
-p 11434:11434 \
ollama/ollama:0.17.1-rc2
```
This runs Ollama in a container with persistent model storage.
> Note: Replace `0.17.1-rc2` with the literal tag (if the Docker image for that tag exists on Docker Hub). citeturn0search1
---
## 📌 After Installation
Once `ollama` is installed, you can:
### 🔽 Download / run models
```sh
ollama run gemma3 # latest Gemma 3 model
ollama run gemma3:1b # specify size
```
### 📊 Check local server
```sh
ollama serve # start service
ollama list # list downloaded models
```
### 🛠 Install client libraries
```sh
pip install ollama # Python
npm install ollama # Javascript
```
And then use them:
```python
from ollama import chat
response = chat(model='gemma3', messages=[{'role':'user','content':'Hello'}])
print(response.message.content)
```
---
## 🧠 Notes & Troubleshooting
- Make sure your shell session picks up the new `PATH` after installation.
- Some Linux installer versions historically shipped mismatched serve binaries — building from source avoids that.citeturn0search6
- GPU support depends on your GPU and drivers.
---
If you want, I can also walk through running specific models (e.g., *gpt-oss*, *Gemma*) after installation step-by-step. Just let me know!
gpt-5-2
Here’s how to **install and build link_titleollama/ollama v0.17.1-rc2 turn0view0** from source on your machine (including a quick “cloning the tag” step and building it locally).
---
## 🧱 1. Clone the v0.17.1-rc2 Source
You want the release candidate tag you linked:
```bash
git clone https://github.com/ollama/ollama.git
cd ollama
git checkout v0.17.1-rc2
```
This checks out the exact version you’re targeting. citeturn0view0
---
## 🛠️ 2. Install Build Dependencies
Before building from source, install the required tools for your platform:
### 📌 Prerequisites (common)
- **Go** (1.22 or later) — required to compile the main binary
- **CMake** — used for native LLM code compilation (for some platforms)
- **GCC/Clang (or Visual Studio on Windows)** — for native build toolchain
Example on **Linux**:
```bash
sudo apt install build-essential cmake golang
```
Example on **macOS**:
```bash
brew install cmake go
```
On **Windows**, install Visual Studio with *Desktop development with C++* and set up mingw/msys2 for POSIX tooling if needed for CGO. citeturn1search1
---
## 🧠 3. Build and Run Ollama
### 👩💻 Simple Build
From the root of the repository:
```bash
# Optionally clear caches
go clean -cache
# Build a local binary
go build .
```
That produces an `ollama` executable in the current directory.
### 🚀 Run Server
Once built, start the Ollama server:
```bash
./ollama serve
```
Then in a separate terminal:
```bash
./ollama run llama3.2
```
This runs a model (e.g., `llama3.2`) locally. citeturn1search1
---
## 🧩 Alternate Build (with CMake)
On **macOS Intel**, **Windows**, or if you want a more traditional native build:
1. Generate build files:
```bash
cmake -B build
```
2. Build the project:
```bash
cmake --build build
```
3. Run:
```bash
./ollama serve
```
This is useful if you need native acceleration support (e.g., GPU features). Requirements like CUDA or ROCm are optional but may require additional setup. citeturn1search1
---
## 📌 Notes & Tips
✔ **CGO:** Ollama includes parts in Go that call C code, so CGO must be enabled (which it is by default when a C toolchain is present). citeturn1search1
✔ **Model downloads:** Once the server is running, you can pull models (like `gemma3`) using:
```bash
ollama pull gemma3
```
✔ Building the server doesn’t download models automatically — models are pulled at runtime. citeturn1search11
---
## 🚢 Quick “Install Script” Option
If you don’t need a custom compile and just want the *v0.17.x-rc* version installed system-wide, you can sometimes install specific versions via the installer script:
```bash
curl -fsSL https://ollama.com/install.sh | OLLAMA_VERSION=0.17.1-rc2 sh
```
However **this depends on whether that tag exists in the install script’s artifact registry** — many pre-release tags are _not_ hosted there. citeturn0reddit28
---
## 🏁 Recap
| Step | Action |
|------|--------|
| **1** | Clone the tagged source (`v0.17.1-rc2`) |
| **2** | Install Go, CMake, C/C++ compiler |
| **3** | Build with `go build` or via CMake |
| **4** | Run server + pull/run models |
---
If you want, I can give you a **ready-made script** (bash/PowerShell) for your exact OS (Linux/macOS/Windows) that automates these steps — just tell me your OS.
gpt-5-2
[GIN] 2026/02/26 - 12:32:52 | 500 | 213.969208ms | 127.0.0.1 | POST "/api/chat"
llama_model_load_from_file_impl: using device Metal (Apple M4 Pro) (unknown id) - 38338 MiB free
llama_model_loader: loaded meta data with 42 key-value pairs and 851 tensors from /Users/danielkliewer/.ollama/models/blobs/sha256-728960e4dda52d4f2af5bee09b2cbe86addfa93220fe9324bfac9dc727605c17 (version GGUF V3 (latest))
llama_model_loader: Dumping metadata keys/values. Note: KV overrides do not apply in this output.
llama_model_loader: - kv 0: general.architecture str = qwen35
llama_model_loader: - kv 1: general.type str = model
llama_model_loader: - kv 2: general.sampling.top_k i32 = 20
llama_model_loader: - kv 3: general.sampling.top_p f32 = 0.950000
llama_model_loader: - kv 4: general.sampling.temp f32 = 0.600000
llama_model_loader: - kv 5: general.name str = Qwen3.5-27B
llama_model_loader: - kv 6: general.basename str = Qwen3.5-27B
llama_model_loader: - kv 7: general.quantized_by str = Unsloth
llama_model_loader: - kv 8: general.size_label str = 27B
llama_model_loader: - kv 9: general.license str = apache-2.0
llama_model_loader: - kv 10: general.license.link str = https://huggingface.co/Qwen/Qwen3.5-2...
llama_model_loader: - kv 11: general.repo_url str = https://huggingface.co/unsloth
llama_model_loader: - kv 12: general.tags arr[str,1] = ["image-text-to-text"]
llama_model_loader: - kv 13: qwen35.block_count u32 = 64
llama_model_loader: - kv 14: qwen35.context_length u32 = 262144
llama_model_loader: - kv 15: qwen35.embedding_length u32 = 5120
llama_model_loader: - kv 16: qwen35.feed_forward_length u32 = 17408
llama_model_loader: - kv 17: qwen35.attention.head_count u32 = 24
llama_model_loader: - kv 18: qwen35.attention.head_count_kv u32 = 4
llama_model_loader: - kv 19: qwen35.rope.dimension_sections arr[i32,4] = [11, 11, 10, 0]
llama_model_loader: - kv 20: qwen35.rope.freq_base f32 = 10000000.000000
llama_model_loader: - kv 21: qwen35.attention.layer_norm_rms_epsilon f32 = 0.000001
llama_model_loader: - kv 22: qwen35.attention.key_length u32 = 256
llama_model_loader: - kv 23: qwen35.attention.value_length u32 = 256
llama_model_loader: - kv 24: qwen35.ssm.conv_kernel u32 = 4
llama_model_loader: - kv 25: qwen35.ssm.state_size u32 = 128
llama_model_loader: - kv 26: qwen35.ssm.group_count u32 = 16
llama_model_loader: - kv 27: qwen35.ssm.time_step_rank u32 = 48
llama_model_loader: - kv 28: qwen35.ssm.inner_size u32 = 6144
llama_model_loader: - kv 29: qwen35.full_attention_interval u32 = 4
llama_model_loader: - kv 30: qwen35.rope.dimension_count u32 = 64
llama_model_loader: - kv 31: tokenizer.ggml.model str = gpt2
llama_model_loader: - kv 32: tokenizer.ggml.pre str = qwen35
llama_model_loader: - kv 33: tokenizer.ggml.tokens arr[str,248320] = ["!", "\"", "#", "$", "%", "&", "'", ...
llama_model_loader: - kv 34: tokenizer.ggml.token_type arr[i32,248320] = [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, ...
llama_model_loader: - kv 35: tokenizer.ggml.merges arr[str,247587] = ["Ġ Ġ", "ĠĠ ĠĠ", "i n", "Ġ t",...
llama_model_loader: - kv 36: tokenizer.ggml.eos_token_id u32 = 248046
llama_model_loader: - kv 37: tokenizer.ggml.padding_token_id u32 = 248044
llama_model_loader: - kv 38: tokenizer.ggml.add_bos_token bool = false
llama_model_loader: - kv 39: tokenizer.chat_template str = {%- set image_count = namespace(value...
llama_model_loader: - kv 40: general.quantization_version u32 = 2
llama_model_loader: - kv 41: general.file_type u32 = 15
llama_model_loader: - type f32: 353 tensors
llama_model_loader: - type q8_0: 96 tensors
llama_model_loader: - type q4_K: 263 tensors
llama_model_loader: - type q5_K: 96 tensors
llama_model_loader: - type q6_K: 43 tensors
print_info: file format = GGUF V3 (latest)
print_info: file type = Q4_K - Medium
print_info: file size = 15.58 GiB (4.98 BPW)
llama_model_load: error loading model: error loading model architecture: unknown model architecture: 'qwen35'
llama_model_load_from_file_impl: failed to load model
time=2026-02-26T12:32:55.098-06:00 level=INFO source=sched.go:473 msg="NewLlamaServer failed" model=/Users/danielkliewer/.ollama/models/blobs/sha256-728960e4dda52d4f2af5bee09b2cbe86addfa93220fe9324bfac9dc727605c17 error="unable to load model: /Users/danielkliewer/.ollama/models/blobs/sha256-728960e4dda52d4f2af5bee09b2cbe86addfa93220fe9324bfac9dc727605c17"
[GIN] 2026/02/26 - 12:32:55 | 500 | 212.2515ms | 127.0.0.1 | POST "/api/chat"
This line is the entire problem:
```
error loading model architecture: unknown model architecture: 'qwen35'
```
Your **Ollama binary does not recognize the `qwen35` architecture** inside that GGUF.
---
## ✅ What’s Happening
The model metadata shows:
```
general.architecture = qwen35
```
That architecture was added **very recently** in `llama.cpp`, and your Ollama build (even though you checked out `v0.17.1-rc2`) does **not include support for it**.
So the model loads fine…
The tensors are valid…
Metal is detected…
Memory is fine (38GB free on your M4 Pro)…
But Ollama simply doesn’t know what `qwen35` means.
---
# 🔥 The Real Fix
You need **a newer Ollama version that includes updated llama.cpp support for Qwen 3.5**.
`v0.17.1-rc2` is too old for this model.
---
# 🧠 Why This Happens
Ollama vendors a specific commit of `llama.cpp`.
When new architectures are added (like:
- `qwen2`
- `qwen2.5`
- `qwen35`
- etc.
), Ollama must update its embedded llama.cpp version.
Your build is using an older commit that predates Qwen 3.5 support.
---
# 🛠️ Solution Options
## Option 1 — Easiest (Recommended)
Install the latest Ollama main branch:
```bash
git checkout main
git pull
go clean -cache
go build .
```
Then restart:
```bash
./ollama serve
```
That will include updated architecture support.
---
## Option 2 — Install Latest Release Binary
If you don’t specifically need rc2:
```bash
brew upgrade ollama
```
or
```bash
curl -fsSL https://ollama.com/install.sh | sh
```
---
## Option 3 — Downgrade the Model
If you must stay on `v0.17.1-rc2`, you need a model built with:
- `qwen2`
- `llama`
- `mistral`
- etc.
But **Qwen 3.5 will not work**.
---
# 💡 Why Your Setup Is Otherwise Perfect
Your logs show:
- ✅ Metal backend detected (Apple M4 Pro)
- ✅ 38GB VRAM free
- ✅ Model file valid
- ✅ GGUF V3
- ✅ Quantized Q4_K (15.6GB — good fit)
So the hardware side is totally fine.
This is 100% a **binary compatibility issue**.
---
# 🚀 My Recommendation For You
Given you're building local-first tooling and experimenting with models:
I would:
```bash
git checkout main
go build .
```
Stay on bleeding-edge if you want to test newer architectures like Qwen 3.5.
You’re exactly the kind of person who benefits from tracking upstream.
---
If you want, paste:
```bash
ollama --version
```
and I’ll tell you precisely which llama.cpp commit you're on and whether it supports qwen35.
gpt-5-2