Linux环境下Ollama的快速安装与配置指南
1. 为什么选择在Linux上部署Ollama?
如果你对AI大模型感兴趣,想在自己的电脑上免费、私密地玩转像Llama、Mistral这样的明星模型,那么Ollama绝对是你的首选工具。它就像一个“模型管理器”,让你用几条简单的命令就能下载、运行和管理各种开源大语言模型。而Linux系统,无论是Ubuntu、CentOS还是Debian,往往是运行这类服务的“黄金搭档”。为什么这么说呢?首先,Linux系统稳定,资源占用相对可控,特别适合需要长时间运行AI服务的场景。其次,在服务器环境下,Linux几乎是标准配置,学会在Linux上部署,就等于掌握了在生产环境里应用AI模型的基础技能。我自己在本地开发和测试模型时,也习惯用Linux虚拟机或者云服务器,环境干净,依赖问题少,折腾起来心里有底。
很多人可能觉得在Linux上安装软件是件麻烦事,尤其是面对一个“新潮”的AI工具。但说实话,Ollama的安装过程比想象中简单太多了,官方也提供了非常清晰的指引。这篇文章,我就把自己在Ubuntu 22.04 LTS上反复安装、配置Ollama的经验,用最直白的话分享给你。我会涵盖两种最常用的安装方法,并详细解释每一步背后的“为什么”,而不仅仅是“怎么做”。确保你跟着走一遍,就能拥有一个稳定运行的Ollama服务,为后续连接WebUI界面、部署自己的AI应用打好坚实的基础。
2. 安装前的准备工作:打好地基
在开始安装Ollama之前,花几分钟时间做好准备工作,能避免后面遇到各种奇怪的错误。这就像盖房子前要先平整土地、准备好建材一样。
2.1 检查你的Linux系统
首先,打开你的终端。我们需要确认两件事:系统架构和已安装的依赖。
1. 确认系统架构: Ollama主要支持x86_64(也就是常说的amd64)和ARM64架构。运行下面的命令看看你的机器是哪一种:
uname -m
如果输出是 x86_64,那么恭喜,这是最通用的架构。如果输出是 aarch64,那就是ARM架构(常见于树莓派、苹果M系列芯片或某些云服务器)。本文的演示将以 x86_64 为主,但ARM架构的安装步骤几乎完全一致。
2. 更新系统包管理器: 这是一个好习惯,能确保我们接下来安装的依赖都是最新版本。根据你的Linux发行版执行对应的命令:
- 对于Ubuntu/Debian系:
sudo apt update && sudo apt upgrade -y
- 对于CentOS/RHEL/Fedora系:
sudo yum update -y
# 或者使用dnf(新版本Fedora/CentOS)
sudo dnf update -y
2.2 安装必要的依赖
Ollama本身是一个打包好的二进制文件,但它运行时可能需要一些基础的库支持。为了万无一失,我们安装几个常见的工具。
对于Ubuntu/Debian系统,建议安装:
sudo apt install -y curl wget tar
curl和wget:用来从网络下载安装脚本或文件。tar:用来解压下载的压缩包。
对于CentOS/RHEL系统,通常需要:
sudo yum install -y curl wget tar
# 或
sudo dnf install -y curl wget tar
这些工具大概率你的系统已经自带了,但执行一下安装命令确认一遍总没坏处。完成以上两步,我们的“地基”就算打好了,可以开始正式安装Ollama了。
3. 两种安装方法:总有一款适合你
Ollama官方提供了两种主要的安装方式,我把它们分别叫做“一键脚本安装法”和“手动下载安装法”。第一种最省心,第二种更灵活、可控。我会详细讲解这两种方法,你可以根据你的网络环境和偏好来选择。
3.1 方法一:一键脚本安装(最推荐新手)
这是官方主推的方式,只需要一行命令。它的原理是,通过curl命令从Ollama官网下载一个安装脚本,然后自动执行这个脚本来完成所有安装步骤。
打开终端,输入以下命令:
curl -fsSL https://ollama.com/install.sh | sh
让我拆解一下这行命令:
curl:一个命令行工具,用于传输数据。-fsSL:这是几个选项的组合。-f:静默失败,如果服务器返回错误,curl会安静地退出,而不是输出一堆HTML错误页面。-s:静默模式,不显示进度条或错误信息。-S:当与-s一起使用时,如果失败,会显示错误信息。-L:如果服务器报告请求的页面已移动到其他位置,此选项会让curl自动重新请求新位置。这对于安装脚本很重要,因为网址可能会重定向。
https://ollama.com/install.sh:这是官方安装脚本的地址。| sh:管道符|将curl下载的脚本内容,直接传递给sh(Shell命令解释器)来执行。
执行过程与可能的问题: 当你敲下回车后,脚本会开始运行。它会自动检测你的系统架构,下载对应版本的Ollama二进制文件,将其安装到 /usr/bin/ 目录下,并尝试创建一个系统服务。整个过程都是自动的。
但是,这里有一个非常重要的“坑”需要提醒你: 这个安装脚本在运行时,会从GitHub等国外站点下载资源。如果你的网络环境访问这些地址比较慢,或者不稳定,那么整个安装过程可能会卡住,或者下载失败,这就是为什么有些人会觉得“这种方式比较慢”。如果你遇到了长时间没有响应,或者看到连接超时的错误,那么可以果断考虑第二种方法。
3.2 方法二:先下载后安装(网络不佳时的首选)
这种方法适合网络连接不顺畅的环境,或者你想更清晰地掌控安装的每一步。它的思路很简单:我们手动把安装包下载到本地,然后手动解压和放置文件。
步骤1:手动下载安装包 我们需要根据系统架构,选择正确的安装包下载链接。对于大多数电脑,是x86_64架构。
# 对于 x86_64 (amd64) 架构
curl -L https://ollama.com/download/ollama-linux-amd64.tgz -o ollama-linux-amd64.tgz
# 对于 ARM64 架构
curl -L https://ollama.com/download/ollama-linux-arm64.tgz -o ollama-linux-arm64.tgz
这里我用了 -o 参数来指定下载的文件名。如果下载速度慢,你甚至可以用浏览器或其他下载工具先把这个 .tgz 压缩包下载下来,再上传到你的Linux服务器上。
步骤2:解压安装包到系统目录 下载完成后,我们将其解压到 /usr 目录下。/usr/bin 是系统存放可执行文件的常用位置。
sudo tar -C /usr -xzf ollama-linux-amd64.tgz
sudo:因为要向系统目录/usr写入文件,所以需要管理员权限。tar:解压命令。-C /usr:指定解压的目标目录为/usr。tar命令会保持压缩包内的目录结构,通常会把ollama可执行文件解压到/usr/bin下。-xzf:x表示解压,z表示处理gzip压缩(.tgz或.gz),f表示后面跟着文件名。
执行完这一步,Ollama的主程序就已经安装好了。你可以通过一个简单的命令来验证:
ollama -v
如果安装成功,它会输出当前Ollama的版本号,比如 ollama version is 0.1.xx。
4. 运行与验证:让Ollama动起来
安装完成,我们当然要马上试试它能不能工作。Ollama有两种运行模式:前台直接运行和配置为系统服务后台运行。我们先从最简单的开始。
4.1 前台直接运行(快速测试)
在终端里直接输入:
ollama serve
这个命令会启动Ollama的服务端。你会看到它输出一些日志信息,比如“Listening on 127.0.0.1:11434”。这表明Ollama服务已经成功启动,并在本地的11434端口上监听请求。重要提示: 以这种方式运行时,这个终端窗口必须一直保持打开,一旦你关闭终端或按了Ctrl+C,服务就停止了。所以这只适合临时测试。
打开另一个新的终端窗口,我们可以测试一下服务是否正常。除了刚才的 ollama -v,还可以尝试列出可用的模型(虽然现在还没下载任何模型):
ollama list
或者,尝试拉取一个小的模型来测试(这会开始下载模型文件):
ollama pull llama2:7b
如果网络通畅,你会看到下载进度。这是验证安装是否成功最直接的方式。测试完毕后,回到运行 ollama serve 的终端,按 Ctrl+C 停止服务。
4.2 配置为系统服务(长期运行必备)
对于长期使用,我们肯定希望Ollama能像MySQL、Nginx这些服务一样,在后台静默运行,开机自启。这就需要用到Linux的 systemd 服务管理器。下面我来一步步教你配置。
步骤1:创建专用的系统用户和用户组 为了安全起见,我们不建议让Ollama以root用户身份运行。创建一个专用的、没有登录权限的用户是很好的实践。
sudo useradd -r -s /bin/false -U -m -d /usr/share/ollama ollama
useradd:创建用户。-r:创建一个系统用户。-s /bin/false:指定该用户的登录Shell为/bin/false,这意味着这个用户不能用来登录系统,更安全。-U:同时创建一个与用户名同名的用户组。-m:创建用户的家目录。-d /usr/share/ollama:指定家目录为/usr/share/ollama,Ollama后续下载的模型默认会存放在这个目录下。ollama:用户名。
步骤2:创建systemd服务配置文件 我们需要创建一个服务单元文件来告诉systemd如何管理Ollama。
sudo vi /etc/systemd/system/ollama.service
如果你不熟悉vi,也可以用nano编辑器:sudo nano /etc/systemd/system/ollama.service。 然后将以下配置内容粘贴进去:
[Unit]
Description=Ollama Service
After=network-online.target
Wants=network-online.target
[Service]
Type=exec
ExecStart=/usr/bin/ollama serve
User=ollama
Group=ollama
Restart=always
RestartSec=3
Environment="PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
# 可选:如果你需要配置HTTP代理来下载模型,可以在这里设置
# Environment="http_proxy=http://your-proxy:port"
# Environment="https_proxy=http://your-proxy:port"
[Install]
WantedBy=default.target
让我解释几个关键点:
After=network-online.target:确保在网络就绪后才启动服务,因为Ollama可能需要联网下载模型。Type=exec:告诉systemd,我们启动的是一个一次性命令(ollama serve),它会自己作为守护进程运行。User和Group:指定服务以我们刚才创建的ollama用户和组身份运行。Restart=always和RestartSec=3:这是非常实用的配置。它意味着如果Ollama进程意外退出,systemd会在3秒后自动重启它。这大大增强了服务的健壮性。Environment:这里显式设置了环境变量PATH,并注释了代理设置的例子。如果你的服务器需要通过代理访问外网,取消注释并填上你的代理地址,这样Ollama下载模型时就能走代理了。
编辑完成后,保存并退出。
步骤3:启动并启用服务 首先,重新加载systemd配置,让它识别我们新建的服务文件:
sudo systemctl daemon-reload
然后,设置Ollama服务开机自动启动:
sudo systemctl enable ollama
现在,启动Ollama服务:
sudo systemctl start ollama
最后,检查一下服务的运行状态:
sudo systemctl status ollama
如果一切顺利,你会看到绿色的“active (running)”字样,以及一些服务启动的日志。这意味着Ollama已经在后台稳定运行了!以后你就可以用 sudo systemctl stop/start/restart ollama 来管理它,用 sudo systemctl status ollama 来查看状态。
5. 基础使用与模型管理
服务跑起来了,现在我们来看看怎么玩转它。Ollama的核心功能就是管理模型。所有操作都通过 ollama 这个命令行工具来完成。
5.1 拉取你的第一个模型
Ollama支持很多模型,比如Meta的Llama 2、Llama 3,Mistral AI的Mistral、Codestral,Google的Gemma等等。你可以去 Ollama官方模型库 查看所有可用模型。每个模型可能有不同参数规模的版本(如7B、13B、70B,B代表十亿参数),用冒号分隔。
让我们拉取一个经典的、对硬件要求相对友好的模型——Llama 2的7B参数版:
ollama pull llama2:7b
这个命令会从Ollama的模型仓库下载模型文件。下载速度取决于你的网络和模型大小(7B模型大约4GB)。你可以看到实时的下载进度条。小技巧: 如果你在服务器上安装,网络很慢,可以考虑先在网络好的机器上下载好模型文件,然后通过scp命令传到服务器的 /usr/share/ollama/.ollama/models 目录下(需要ollama用户权限),这样可以节省大量时间。
5.2 与模型对话
模型下载好后,最简单直接的交互方式就是在命令行里聊天:
ollama run llama2:7b
运行这个命令,你会进入一个交互式会话。输入你的问题,比如“用Python写一个快速排序函数”,模型就会开始生成回答。按 Ctrl+D 可以退出对话。
如果你只是想快速问一个问题,也可以直接用:
ollama run llama2:7b "请用一句话解释什么是人工智能"
5.3 常用的模型管理命令
掌握下面几个命令,你就能轻松管理模型了:
ollama list:列出本地已经下载的所有模型及其版本。ollama ps:显示当前正在运行的模型实例。ollama stop <model_name>:停止某个正在运行的模型。ollama rm <model_name>:从本地删除一个模型。例如ollama rm llama2:7b。ollama cp <source_model> <new_model_name>:复制一个模型并创建新名称的副本,常用于基于已有模型创建自定义模型(Modelfile)的起点。
6. 进阶配置与优化
基本的安装和运行搞定后,我们可以根据实际需求进行一些优化,让Ollama用起来更顺手、更高效。
6.1 修改模型存储路径
默认情况下,Ollama会把模型下载到 ~/.ollama(即当前用户的家目录下)或者我们之前为ollama用户指定的 /usr/share/ollama/.ollama。如果你的系统盘空间紧张,或者想统一管理数据,可以修改这个路径。
方法是通过环境变量 OLLAMA_MODELS 来指定。 对于通过systemd服务运行的情况,我们需要修改之前创建的服务文件:
sudo vi /etc/systemd/system/ollama.service
在 [Service] 部分,添加一行:
Environment="OLLAMA_MODELS=/path/to/your/large/disk/models"
比如改成 Environment="OLLAMA_MODELS=/data/ollama-models"。记得确保 /data/ollama-models 这个目录存在,并且 ollama 用户有读写权限:
sudo mkdir -p /data/ollama-models
sudo chown -R ollama:ollama /data/ollama-models
修改服务文件后,需要重新加载配置并重启服务:
sudo systemctl daemon-reload
sudo systemctl restart ollama
之后新下载的模型就会存储在新的路径下了。
6.2 配置API访问与安全
Ollama默认监听 127.0.0.1:11434,这意味着它只接受来自本机的请求。如果你想从同一网络内的其他机器(比如你的Windows/Mac电脑)访问这台Linux服务器上的Ollama,就需要修改监听地址。
同样是通过环境变量 OLLAMA_HOST 来配置。修改服务文件:
Environment="OLLAMA_HOST=0.0.0.0:11434"
将监听地址改为 0.0.0.0,表示监听所有网络接口。请注意: 这样做会使得Ollama API暴露在网络上,可能存在安全风险。请确保你的服务器防火墙(如ufw或firewalld)只允许受信任的IP地址访问11434端口。
例如,使用ufw防火墙:
# 假设你只想允许IP为192.168.1.100的机器访问
sudo ufw allow from 192.168.1.100 to any port 11434
6.3 性能调优小贴士
运行大模型很吃资源,这里有几个小建议可以提升体验:
- 使用量化模型: 在模型库中,你会看到类似
llama2:7b、llama2:7b-text-q4_K_M这样的标签。带q4、q8的是量化模型,它们通过降低模型权重的精度来大幅减少内存占用和提升推理速度,而性能损失通常很小。对于资源有限的机器,优先选择这些量化版本(如q4_K_M)。 - 利用GPU加速: 如果你的Linux服务器配有NVIDIA GPU,Ollama可以自动利用CUDA进行加速。你需要确保系统已安装正确版本的NVIDIA驱动和CUDA Toolkit。Ollama在启动时会自动检测CUDA环境,如果存在,就会优先使用GPU进行计算,速度会有质的飞跃。你可以通过运行
ollama run llama2:7b时的输出日志,查看是否出现了“Using GPU”之类的字样来确认。 - 控制并发: 如果你通过WebUI(如Open WebUI)同时发起多个请求,可能会把服务器内存撑爆。可以在启动Ollama时,通过环境变量
OLLAMA_NUM_PARALLEL来限制并行处理的请求数,例如Environment="OLLAMA_NUM_PARALLEL=2"。
7. 故障排除与常见问题
即使按照步骤来,也可能会遇到一些问题。这里我总结几个我踩过的“坑”和解决办法。
问题1:执行 ollama serve 或启动服务失败,提示“Permission denied”或“端口被占用”。
- 权限问题: 确保二进制文件
/usr/bin/ollama有可执行权限 (sudo chmod +x /usr/bin/ollama),并且我们创建的ollama用户有权访问它和它的存储目录。 - 端口占用: 11434端口可能被其他程序占用。可以用
sudo netstat -tlnp | grep 11434查看。如果被占用,可以修改Ollama的监听端口,通过设置环境变量OLLAMA_HOST=0.0.0.0:11435(换一个端口)来实现。
问题2:下载模型速度极慢,或者一直失败。
- 网络问题: 这是最常见的问题。首先,可以尝试用
curl -v https://ollama.com测试一下对Ollama官网的连接性。如果不行,考虑使用HTTP/HTTPS代理。就像前面在service文件里注释掉的那样,设置http_proxy和https_proxy环境变量是最有效的方法。 - 手动下载: 如果代理也不行,终极方法就是“手动下载”。在能访问的机器上,用
ollama pull拉取模型,然后找到模型文件(位于~/.ollama/models下),将其整个目录打包,上传到服务器的对应目录下。
问题3:运行模型时内存不足(OOM)。
- 选择更小的模型: 7B模型通常需要8GB以上内存才能流畅运行。如果你的内存只有4GB或更少,可以尝试更小的模型,比如
tinyllama或phi,或者选择量化程度更高的版本(如q4_0)。 - 增加交换空间(Swap): 如果物理内存不足,可以临时增加交换分区的大小,但这会显著降低运行速度,只能作为应急手段。
问题4:systemd服务状态为 active (exited) 而不是 active (running)。
- 这可能是因为服务文件中的
Type设置不正确。确保Type=exec。如果Ollama进程自己退出了,systemd就会报告exited。检查日志sudo journalctl -u ollama -f来查看具体的错误信息。
安装和配置Ollama的过程,其实就是熟悉一个现代AI工具在Linux环境下部署的标准流程。从准备环境、选择安装方式、配置后台服务,到管理模型和优化性能,每一步都挺有代表性。我自己的几台测试服务器都是这么搭起来的,跑起来一直很稳定。遇到问题别慌,多看看日志,大部分都能找到线索。希望这份详细的指南能帮你省下一些摸索的时间,顺利开启你的本地AI之旅。
更多推荐


所有评论(0)