StackTraces
DeepSeek已驗證

ollama pull deepseek-r1:8B 報 pull model manifest: file does not exist

@debug_master11 天前更新閱讀 6 min00

pull model manifest: file does not exist 不是網絡錯也不是磁盤錯,是 Ollama 拿到了 registry 的“沒這個 tag”應答。最常見三種原因:tag 大小寫錯了、tag 是某個不存在的量化檔、OLLAMA_HOST 指向了另一臺機器。

Issue & Env(案發現場與環境)

  • 業務場景:第一次跑 DeepSeek-R1,按博客/視頻裡看到的命令照搬,Ollama 直接回 file does not exist,沒下任何東西。
  • 環境:Ollama v0.34.x,ollama pull <name>:<tag> 是拉模型的官方入口;tag 是命名空間 model:tag 裡冒號右邊的部分,區分大小寫且必須與模型頁一字不差。

StackTrace(堆疊日誌)

pulling manifest
Error: pull model manifest: file does not exist

如果請求裡帶了不存在的模型名或錯位的字符,Ollama 在解析 manifest 階段就失敗,連「開始下載」的進度條都不會出現。如果進度條走了一會再掛,多半是磁盤滿或網絡超時,不是這個錯。

Reproduce(復現程式碼)

# 1) 大写 B:常见误写
ollama pull deepseek-r1:8B
# Error: pull model manifest: file does not exist

# 2) 自创的量化档:模型页根本没这个 tag
ollama pull deepseek-r1:8b-q8_0
# Error: pull model manifest: file does not exist

# 3) 跑/拉都报同一个错(首次拉模型也会触发)
ollama run deepseek-r1:32b-instruct-q5_K_M
# Error: pull model manifest: file does not exist

對照可用的命令:

ollama pull deepseek-r1:8b      # OK
ollama pull deepseek-r1:latest  # OK,与 8b 同源

Root Cause(根因分析)

Ollama 拉模型的流程是:先解析 model:tag → 向 registry 要 manifest → 按 manifest 列表拉 layer。Manifest 是「這個 tag 由哪幾個權重/模板文件組成」的小型描述文件。file does not exist 出現在第一步,也就是 registry 端返回 404 後客戶端把錯誤翻譯成人話。

按踩坑頻率排序,根因就三種。

一、tag 大小寫或下劃線寫錯

這是最高頻的。社區案例裡 ollama pull llama3.2:3B 失敗而 llama3.2:3b 通過是同一種問題。Ollama 的 tag 解析是 exact string,沒有“自動歸一化大小寫”這一步。同樣的坑在量化檔上更明顯:Q4_K_M 與 q4_K_M、q4_k_m 在某些鏡像源裡會被當成不同 tag 處理。

deepseek-r1 系列 tag 全部小寫:1.5b/7b/8b/14b/32b/70b/671b。8B、8b-instruct 都不存在。

二、tag 在 registry 裡壓根沒發佈

模型不一定發佈了你期望的那個 tag。deepseek-r1 在 Ollama 庫頁只發了這 7 個數字 tag,沒有 -q4_K_M 後綴、沒有 -chat 後綴、沒有 -instruct 後綴。llama3.1:8b-instruct-q4_K_M 這種帶詳細後綴的寫法是 llama.cpp / Hugging Face 那一套習慣,照搬到 Ollama 必然 manifest 缺失。

三、客戶端打到了另一臺機器

OLLAMA_HOST 一旦被改成另一臺機器的 IP,本機 ollama pull 實際訪問的是遠端的 registry 視圖。模型在遠端沒拉過、或者遠端 registry 不可達,表現出來的都是 file does not exist。這種情況下 ollama list 在本機可能是空的,但其它機器上有。直接 ollama list 比對一下就能定位。

ollama create 出來的本地模型走另一條路,但同樣會因為 FROM ./some-model.gguf 找不到本地文件而報同名錯。

The Fix(解決方案)

第一步:複製模型頁的精確 tag

打開 https://ollama.com/library/deepseek-r1 頁面的 tags 列表,逐字複製。8b、14b、32b、70b、671b 這些數字 + b 的寫法才對。

ollama pull deepseek-r1:8b

第二步:懷疑大小寫就先試 latest

deepseek-r1:latest 是個穩定的別名,與 deepseek-r1:8b 同源(都是 DeepSeek-R1-0528-Qwen3-8B 的 Q4_K_M)。先跑 latest 驗證服務可用,再去敲具體 tag:

ollama pull deepseek-r1:latest     # 验证用
ollama pull deepseek-r1:8b         # 精确 tag

第三步:拉之前查本地和遠端

ollama list        # 本地已有什么
curl http://localhost:11434/api/tags   # 服务端视角

如果 OLLAMA_HOST 被改了,ollama list 只會列你設定的遠端那臺機器上的模型。本機命令行用預設 http://127.0.0.1:11434,遠端的 OLLAMA_HOST 設置在另一個 shell 裡跑著,兩邊各看各的。排查時把當前 shell 的環境也看一眼:env | grep OLLAMA。

第四步:模型確實要某個 tag 才存在時怎麼辦

Ollama 庫裡沒有 deepseek-r1:14b-q5_K_M,但你就要 Q5_K_M。兩個選項:

  • 直接拉 Hugging Face 上的 DeepSeek-R1-Distill-Qwen-14B-Q5_K_M.gguf,再用 Modelfile FROM ./xxx.gguf 創建本地 tag:
curl -L -o deepseek-r1-distill-qwen-14b-q5_k_m.gguf \
  https://huggingface.co/deepseek-ai/DeepSeek-R1-Distill-Qwen-14B-GGUF/resolve/main/deepseek-r1-distill-qwen-14b-q5_k_m.gguf

cat > Modelfile <<'EOF'
FROM ./deepseek-r1-distill-qwen-14b-q5_k_m.gguf
PARAMETER num_ctx 4096
EOF

ollama create deepseek-r1:14b-q5_K_M -f Modelfile
ollama run deepseek-r1:14b-q5_K_M
  • 等 Ollama 官方加 tag(觀察庫頁更新或 Ollama 官方博客的 release notes)。

ollama create 這條路在路徑錯(相對路徑寫錯、./ 漏了)時也會觸發同名錯——Modelfile 的 FROM 必須能解析到具體文件,否則也會回退到 registry 查詢。

References(參考來源)

最後更新於 2026-09-30

這篇幫到你了嗎?

剛解決了一個棘手的報錯?花兩分鐘記錄下來,幫助下一個遇到同樣問題的開發者。

貢獻一條解法