最近Windows 10上的ollama又开始弹升级提示了,后台不少朋友问我同一个问题:ollama到底怎么升才稳?说实话,这软件升级不像普通软件那样点个“检查更新”就完事,它需要下载新版安装包重新覆盖,而且很多朋友已经把模型放到了D盘或者自定义目录,升级完出现模型路径丢失、服务起不来、版本号还是老样子,各种幺蛾子我都见过。这篇就把Windows 10下ollama升级的完整方法、注意事项和排查思路一次讲清楚,适合本地部署过私有大模型、或者准备把ollama升到新版去跑新模型的朋友参考。
1. 升级前先认清四件事,避免白折腾
1.1 当前版本怎么看,升级目标是什么
不管你是被弹窗提醒,还是因为某个新模型必须要新版ollama才能跑,第一步永远是先确认当前版本。打开命令提示符或者PowerShell,敲一行:
bash复制ollama --version
输出大概长这样:
bash复制ollama version is 0.5.7
ollama的版本更新频率相当高,有时候一个月能出好几个小版本。升级前我习惯去官网或者项目主页的Release页面看一眼新版到底更新了什么,再决定要不要马上升。比如某些版本专门修了Windows下的显存溢出问题,这类升级对你价值就很大;如果只是加了某个你用不上的新功能,倒也不必一出来就追。
这里有个很多新手容易忽略的点:升级的目标不是“装个最新版图个心里踏实”,而是要解决你当前遇到的问题。先把旧版本号记下来,到时候验证升级是否成功才有对比依据。
1.2 模型到底放在哪,升级会不会把模型弄丢
这是大家最关心的问题,我直接给答案:升级程序文件不会主动删除你的模型目录。
Windows下ollama的默认模型目录在:
bash复制C:\Users\你的用户名\.ollama\models
如果你曾经手动设置过OLLAMA_MODELS环境变量,那么模型目录就在你指定的路径下。怎么确认?执行:
bash复制ollama list
如果模型列表正常显示,说明当前模型目录没问题。想进一步看路径,可以在资源管理器地址栏输入%USERPROFILE%\.ollama\models,或者去系统环境变量里查OLLAMA_MODELS。
虽然升级不会删模型,但我确实见过升级后模型“看起来消失”的案例,原因是升级后环境变量丢了,ollama不知道去哪里找模型,最后误以为模型被清空。所以该做的备份和记录还是要做,后面我会专门讲。
1.3 为什么ollama升级不是“自动更新”
不少人以为ollama会像Chrome浏览器那样,后台自动更新,下次启动就变成新版了。实际上Windows版ollama目前没有这套自动更新机制,它发布的是安装器(installer),安装器负责把主程序放到%LOCALAPPDATA%\Programs\Ollama,然后在系统里注册服务。
所以官方推荐的升级方式就是:下载新版安装包,重新运行安装,覆盖旧版本。整个过程不会格式化你的模型目录,本质上就是一次“原地重装”,装完以后程序文件是新的,数据文件全部保留。
明白这个逻辑之后,你就不会再担心“重装会不会把模型搞没了”这类问题了。真正需要担心的反而是安装过程中的细节,比如进程没退干净、目录被占用,这些才是升级翻车的高发原因。
1.4 升级前的检查清单
根据我多次升级的实践经验,升级前花两分钟过一遍下面这个清单,成功率会高很多:
- 确认Windows 10系统补丁已经更新到比较新的状态,尤其建议使用22H2及以上版本,太老的系统容易出现新版本ollama启动失败。
- 退出ollama,右下角托盘图标右键选择退出。
- 关闭所有正在调用ollama的程序,比如Open WebUI、ChatBox、VS Code里接入本地模型的各种插件。
- 备份模型清单,执行
ollama list > models_backup.txt,把输出保存下来。 - 看一眼磁盘剩余空间,新版本安装包虽然不大,但建议留出至少1GB空间,避免安装过程中临时文件写不进去。
这个清单看起来简单,但每条背后都有真实案例支撑。特别是第三点,我有一次升级后怎么都装不上,最后发现是某个浏览器插件一直占着ollama的进程,把它关掉后一次通过。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 最主流的升级方式:官方安装包覆盖安装
2.1 安装包从哪里下载
Windows 10下升级ollama,最常规的方式就是去官网下载Windows版本安装包。打开浏览器进入ollama官网,找到Windows下载按钮,下载后缀为.exe的安装文件即可。
如果你在官网下载比较慢,我推荐你先试试winget。winget是Windows 10自带的包管理器,它分发的是微软CDN里的官方安装包,很多场景下比直接浏览器下载稳定得多。安装ollama或者升级ollama只需要一行命令:
bash复制winget install --id Ollama.Ollama -e
这条命令会检测你本机是否已安装ollama,如果已安装,会自动执行升级逻辑,下载新版并覆盖安装。如果你不确定winget版本是否够新,可以先执行winget --version看看,老版本可能需要先从微软商店更新一下winget。
这里多说一句,尽量不要从乱七八糟的第三方下载站去拿安装包。熟悉我的朋友都知道,我见过不止一次第三方“加速下载”站点把安装包替换成捆绑软件的情况。下载完安装包后,可以在文件上右键“属性”,切到“数字签名”选项卡,确认签名信息正常,这个习惯能避免很多安全问题。
2.2 先退出ollama相关进程再跑安装包
安装新版本之前,一定要先确保旧版本没有在运行。很多人习惯性双击安装包,结果安装器弹一个“ollama is running,please close it first”的提示,这就是因为进程没退干净。
规范操作分三步走:
- 右键系统托盘里的ollama图标,选择退出或Quit。
- 打开任务管理器,切到“详细信息”页签,确认没有名为
ollama.exe或ollama app.exe的进程残留。 - 保险起见可以在命令行执行检查:
bash复制tasklist | findstr ollama
如果还有输出,说明有进程没退干净,可以在任务管理器里直接结束任务,或者用命令强杀:
bash复制taskkill /f /im ollama.exe
注意,ollama.exe和ollama app.exe是两个不同的程序,前者是后台服务,后者是桌面客户端,两个都要退出。为什么这一步如此重要?因为安装器需要覆盖替换ollama.exe文件,如果这个文件正在被运行,Windows会拒绝覆盖,最终要么安装失败,要么出现“看起来装好了,但一运行还是旧版本”的诡异情况。
2.3 运行安装包,处理“装到D盘”的老问题
双击安装包后,一路默认即可。这里重点说一下大家都关心的“ollama怎么安装到D盘”问题。
官方安装包默认安装路径是%LOCALAPPDATA%\Programs\Ollama,也就是C:\Users\你的用户名\AppData\Local\Programs\Ollama,它没有提供图形化的目录选择界面,所以很多人一开始就放弃了……但如果你确实想把程序本体放到D盘,我实测可行的方法是“先装再迁目录”:
- 先默认安装一次,让目录结构生成完整。
- 把
C:\Users\你的用户名\AppData\Local\Programs\Ollama整个目录复制到D:\Ollama。 - 删除C盘原目录。
- 打开命令提示符(管理员),执行目录联接命令:
bash复制mklink /J "C:\Users\你的用户名\AppData\Local\Programs\Ollama" "D:\Ollama"
这样C盘那个“目录”实际上是指向D盘的联接点,ollama读写文件都会落到D盘。
但这里有个升级时要特别小心的坑:安装器在覆盖安装时可能会重新创建真实的C盘目录,导致你原来的目录联接失效。升级完一定要检查一下,右键C盘那个Ollama目录,看“属性”里是不是“联接”或“符号链接”,如果不是,说明联接被破坏了,需要重新执行上述第4步。
顺带说一句,模型文件另说。模型目录默认在C盘用户目录下,如果你想把模型也放D盘,正确做法是单独设置OLLAMA_MODELS环境变量,指向D盘某个文件夹。程序目录和模型目录是两回事,不要混在一起折腾。
2.4 安装完成后立刻做三项验证
安装过程一般几十秒就结束,装完别急着关窗口,至少做三项验证:
- 验证版本号:
bash复制ollama --version
看到版本号变成新版,说明程序文件替换成功。
- 验证服务状态:
bash复制sc query ollama
查看STATE是不是RUNNING。如果不是,可以尝试手动启动服务。
- 验证模型还在:
bash复制ollama list
看到之前的模型列表都在旁边,基本上就可以放心了。
如果想进一步确认API服务正常,浏览器访问http://127.0.0.1:11434/,或者直接用ollama run试跑一个模型,输入一句测试对话,看能不能正常回复。
3. 不想去官网下载的另一个选择:winget与命令行升级
3.1 winget一行命令完成升级
如果你不想手动下载安装包,winget是最省事的方案。在管理员权限的命令行里执行:
bash复制winget upgrade --id Ollama.Ollama -e
winget会自动比对已安装版本和仓库里的最新版本,如果有新版,会下载并静默安装。整个过程中不需要你手动点“下一步”,体验比双击安装包顺畅不少,适合远程维护或者习惯命令行的朋友。
如果winget提示找不到包,可能是源没有更新,先执行:
bash复制winget source update
再重试升级命令。另外,winget安装完成的ollama,默认路径同样在%LOCALAPPDATA%\Programs\Ollama,和官网安装包一致,所以不用担心出现两套环境。
3.2 手动替换ollama.exe的硬核方案,不建议新手尝试
有人会问,能不能只下载新版ollama.exe,直接覆盖旧文件,省得跑安装流程?理论上可以,如果你之前用的是便携版或者解压版,确实可以这么干。但我明确不建议新手这么做,原因有两个:
一是ollama在Windows上不仅是单个exe,它还注册了Windows服务、设置了环境变量PATH,单纯替换文件很容易漏掉服务配置的更新,导致升级后服务起不来。
二是新版本可能依赖额外的运行库或者调整了目录结构,只换一个文件很容易出现各种莫名其妙的兼容性问题。
如果你实在想试,至少保证先备份旧版ollama.exe,然后从官方渠道下载对应版本的可执行文件,替换后执行ollama --version验证版本号,再跑一次ollama list确认服务正常。一旦有问题,立刻用备份回滚。我的态度是:官方安装包本身就很方便,没必要为了省两步点击去冒额外风险。
3.3 自定义安装目录的用户,升级时最容易踩的雷
前面提到过用mklink /J做目录联接来“装到D盘”的方案,这个方案平时用起来没问题,但升级时容易踩雷。安装器在覆盖安装时可能会删除并重建C盘原目录,导致你的目录联接失效,程序实际写到了C盘,D盘的旧版程序却没人管了。
我的建议是,升级后第一时间检查两件事:
- 打开
%LOCALAPPDATA%\Programs\Ollama,右键属性,确认“常规”页签里显示是不是“联接”或者“符号链接”。如果是普通文件夹,说明联接被破坏了。 - 如果联接确实失效,先删除这个新的真实目录,再重新执行
mklink /J命令建立D盘指向。
另外,升级后还要再确认一下OLLAMA_MODELS环境变量是否还在。正常情况下升级不会动环境变量,但当你手工折腾过安装目录后,路径变化可能导致环境变量里的老路径失效,进而出现模型“全没了”的假象。检查方式:echo %OLLAMA_MODELS%,看看输出路径是否存在。
4. 升级后必做的验证与配置检查
4.1 程序、服务、模型三层验证
升级完成后不要急着跑大模型,先用一条组合拳把“程序-服务-模型”三层都验一遍:
bash复制ollama --version
sc query ollama
ollama list
第一条确认程序版本,第二条确认Windows服务处于运行状态,第三条确认模型列表正常。这三个检查全都通过,基本上本次升级就是成功的。
如果sc query ollama显示状态是STOPPED,先尝试:
bash复制net start ollama
如果启动失败,大概率是端口被占用或者安装时服务注册出了问题,后面排查章节会细说。
4.2 环境变量和端口配置要重新确认
升级过程中最容易被忽略的就是环境变量。ollama在Windows下常用的环境变量有:
| 变量名 | 作用 | 升级后常见问题 |
|---|---|---|
| OLLAMA_MODELS | 模型存放目录 | 丢失或路径失效,模型无法加载 |
| OLLAMA_HOST | 服务监听地址 | 被重置为默认值,原本的局域网访问失效 |
| OLLAMA_NUM_GPU | GPU层数设置 | 被覆盖为自动,显存占用异常 |
打开“系统属性-环境变量”,逐个确认这些值还在不在、路径是否仍然有效。尤其是如果你之前设置了OLLAMA_HOST=0.0.0.0:11434让局域网内其他设备可以访问,升级后这个值被重置的话,别人的电脑就连不上你的服务了。
有个小技巧:环境变量改完后不需要重启电脑,但需要重启ollama服务才能生效。命令行执行:
bash复制net stop ollama && net start ollama
4.3 防火墙和Windows Defender别乱拦
升级到新版本后,Windows 10防火墙可能会弹窗询问“是否允许ollama访问网络”。这个弹窗一定要看清楚,如果你需要本机API调用,至少勾选“专用网络”;如果需要局域网内其他设备访问,还要勾选“公用网络”。
另一个常见问题是Windows Defender把新版ollama识别为“潜在不需要的应用”。这种情况多出现在官方签名信息因为版本更新而变化的场景下,处理方式不是直接删除,而是先在“病毒和威胁防护-保护历史记录”里确认文件路径,如果路径确实是你的ollama安装目录,可以点击“允许”,或者在排除项里添加上整个Ollama安装目录。
当然,前提是你确认安装包来源是官方渠道。如果你从不靠谱的下载站拿的安装包,Defender报毒就真的要注意了。
4.4 依赖ollama的上层应用要不要改配置
升级完成后,如果你在用Open WebUI、ChatBox、VS Code里的Claude Code插件等工具,正常情况下不需要做任何配置变更。因为这些工具连接的是本机API地址,默认就是http://127.0.0.1:11434,升级不会修改API端口和服务地址。
但有一种情况要留意:升级后服务如果没起来,或者端口被其他程序占用,上层应用就会报“连接失败”。这类问题排查时,先回到第4.1节的三层验证,确认服务本身是正常的,再考虑上层应用的问题。
判断API服务是否正常,最直接的方法:
bash复制curl http://127.0.0.1:11434/api/tags
如果返回一段包含模型列表的JSON,说明API服务没问题,上层应用连不上就要从应用自身配置去找原因。
5. 升级失败与异常问题的排查实录
5.1 安装包双击没反应或者闪退
Windows 10下升级ollama最常见的翻车现场就是双击安装包没反应,或者闪一下就没下文了。我遇到过的原因主要有三种:
第一种是ollama进程还在后台跑着,安装器检测到后主动退出。解决办法就是第2.2节那套退出流程,确保任务管理器里没有ollama.exe残留。
第二种是UAC权限问题。右键安装包,选择“以管理员身份运行”。有些精简版Windows 10会把UAC策略改得比较严格,导致普通双击时安装器无法完成服务注册。
第三种是安装日志报错。ollama安装器会在%TEMP%目录下留下安装日志,文件名一般以OllamaSetup开头。打开日志看最后的错误信息,如果出现access denied之类,多半还是权限问题;如果出现file in use,说明有进程占用。
5.2 升级后服务起不来,端口11434被占用
升级后执行ollama run提示Failed to connect to Ollama,或者sc query ollama显示服务停止,优先怀疑端口被占用。ollama默认监听11434端口,Windows下经常有别的程序抢占这个端口。
排查命令:
bash复制netstat -ano | findstr 11434
看输出最后一列PID,然后到任务管理器里找到这个进程,确认它是不是你认识的应用。如果不认识,可以结束它,再启动ollama服务:
bash复制net start ollama
如果你确实需要换端口,可以通过OLLAMA_HOST环境变量修改,比如改成127.0.0.1:11435,改完重启服务。但注意,改端口后上层应用也要跟着改,所以不是必须的话不建议动端口。
5.3 升级后模型加载失败或报错
升级后运行模型时报model not found,绝大部分情况是环境变量丢失导致ollama找不到模型目录。先检查OLLAMA_MODELS环境变量,再确认这个路径下的文件确实还在。
如果报的是insufficient memory或failed to load model,常见于你同时加载了多个大模型,显存或内存不够。新版ollama对显卡内存的管理策略可能和旧版有差异,表现为之前能跑的模型升级后反而跑不动了。这时候可以试着把OLLAMA_NUM_GPU环境变量改小一点,让更多层交给CPU计算,或者先卸载几个占用大的模型,腾出显存再试。
还有一种情况是模型文件在升级过程中损坏,多见于升级时模型正在下载或写入。遇到这种情况,最直接的办法是删掉这个出问题的模型重新拉取。删除用:
bash复制ollama rm 模型名
重新拉取:
bash复制ollama pull 模型名
5.4 Windows 10系统版本太旧导致的兼容性问题
ollama新版本对Windows 10的系统版本是有潜在要求的。如果你用的还是1809、1909这类比较老的版本,升级新版本ollama后可能出现安装成功但无法启动、或者启动后马上闪退的问题。
我碰到过一台老机器,系统一直停在某个旧版本,ollama升到新版后一点就闪退,后来把Windows补丁更新到22H2并安装最新累积更新后,问题就消失了。如果因为各种原因实在升不了系统补丁,那就只能暂时停留在旧版ollama,等系统环境允许后再升级。
顺手整理了一张排查速查表,方便大家直接对号入座:
| 现象 | 可能原因 | 解决思路 |
|---|---|---|
| 安装包双击没反应 | 进程未退出 / 权限不足 | 退出ollama进程,右键管理员运行 |
| 安装后版本号还是旧的 | 文件被占用,覆盖失败 | 彻底结束ollama相关进程后重装 |
| 服务起不来 | 端口被占用 / 服务注册异常 | netstat找占用进程,释放后net start ollama |
| 模型全没了 | OLLAMA_MODELS环境变量丢失 | 重新配置环境变量指向模型目录 |
| 模型加载报错 | 显存不足 / 模型文件损坏 | 调整OLLAMA_NUM_GPU,或ollama rm后重新拉取 |
| 升级后闪退 | 系统补丁过旧 | 更新Windows到22H2并安装最新补丁 |
6. 关于Windows 10上升级ollama的几条独家心得
6.1 “备份大于一切”这句话不是开玩笑
虽然理论上升级ollama不会清除模型目录,但我依然强烈建议升级前先做一次简单的“备份”。这里的备份指的不是把几十GB的模型全拷贝一遍,而是至少把模型清单导出来:
bash复制ollama list > models_backup.txt
万一真出现模型目录异常,你可以通过这个清单快速知道哪些模型需要重新拉取。另外,如果你手头有重要的自定义模型文件(比如自己微调的LoRA),建议直接复制一份到其他盘,防患于未然。
我自己的习惯是升级前截个图,把ollama list的输出和版本号保存下来,升级后对照一眼,心理踏实很多。备份的成本永远比后悔的成本低。
6.2 升级过程中别让模型处于“正在下载”状态
这是我在实际中踩过的坑。有次升级时后台正好在拉一个十几GB的大模型,升级过程中ollama服务重启,下载任务直接中断,后来重新启动时发现那个模型文件不完整,加载报错,最后只能删掉重新拉,白等了几个小时。
所以升级前一定要看看是否还有模型在下拉中,有就等它下完,或者干脆先暂停。正在跑推理的对话窗口也要全部关闭。简单一句话:确保ollama处于完全空闲状态,再执行升级。
6.3 下载安装包慢,别从来路不明的“加速站”找办法
官网下载慢是很多人头疼的问题,这里我给几个安全且实际有效的思路。
第一优先是winget,在前面已经详细说过,它走的是微软的分发通道,多数情况下比浏览器直连官网稳定,而且自动匹配最新版本。第二是错峰下载,工作日晚间或周末网络拥堵时容易慢,换个时间段再试。第三,如果你是技术值班,需要频繁重装ollama,可以保留一个官方安装包的本地副本,这样以后升级就不需要再重新下载旧版本。
这里必须强调一下:网上那些打着“一键加速”旗号的第三方安装包,我一律不推荐。轻则捆绑推广软件,重则植入恶意代码,为了省几分钟下载时间冒这个风险完全不值得。安装包下载后多看一眼数字签名,成本极低,价值极高。
6.4 我的升级节奏和习惯
最后说说我个人的升级习惯。我基本保持每个月看一次ollama的Release页面,了解一下新版更新内容。如果新版修复的问题正好是我当前遇到的痛点,就会立刻升;如果只是加了新模型的适配,我会等社区反馈一周,确认没有大面积坑之后再升。
新版本刚发布的第一两天不急着升级,这个习惯帮我避开了好几次“新版本发布后马上又发补丁版本”的情况。ollama整体在Windows 10上的兼容性做得不错,真正需要警惕的反而是系统补丁是否落后。如果你在用Windows 10,建议把系统保持在22H2以及后续的累积更新状态,这比折腾任何ollama配置都更能减少莫名其妙的故障。
最后再分享一个小技巧:升级完成后不要急着把安装包删掉,留着它。有时候同一个型号的机器需要重复部署环境,手头有安装包就不用重新下载,直接静默安装加离线模型包,十几分钟就能复现一整套环境。希望这篇经验能帮你在Windows 10上顺顺利利完成ollama升级,少踩我踩过的坑。
