Ollama

Ollama 安装与配置

下载与安装

https://ollama.com/download/linux

1
2
# Ollama 的默认安装脚本会尝试将二进制文件安装到 /usr/local/bin 目录下,这通常需要管理员(root)权限。
curl -fsSL https://ollama.com/install.sh | sh
1
2
3
4
5
6
7
8
9
10
11
12
13
- curl 是一个强大的命令行工具,用于通过 URL 与服务器进行数据传输。

* -f 或 --fail: 静默失败 (Fail silently)。
* -s 或 --silent: 静音模式 (Silent mode)。
* -S 或 --show-error: 显示错误 (Show error)。
* -L 或 --location: 跟随重定向 (Follow location/redirects)。
- 这部分命令的作用是:以安全、静默的方式从 https://ollama.com/install.sh 这个地址下载安装脚本。如果下载过程中出现网络错误,它不会输出错误页面的代码;如果 URL 发生了跳转,它也能正确地找到最终的脚本文件。

- | (管道符号)。 | 在命令行中被称为管道 (Pipe)。它的作用非常直接:将左边命令的输出,作为右边命令的输入。
* 在这个例子中,curl 命令成功下载了 install.sh 脚本的内容。这些内容本应该显示在终端屏幕上,但因为管道符 | 的存在,它们没有被显示,而是被直接传送给了管道符右边的 sh 命令。

- sh 是 Shell 的缩写,它是一个命令解释器。当你执行 sh 命令时,它会读取并执行你提供给它的脚本。
* 在这个命令中,sh 接收了从 curl 通过管道传过来的 install.sh 脚本的全部内容,并立即开始逐行解释和执行这些脚本命令。
1
2
3
$ which ollama && ollama --version
/usr/local/bin/ollama
ollama version is 0.12.3

TODO:

我也尝试了一下把Ollama安装到个人目录下,但是没有成功。有机会再试一下!

基本使用,命令比较多,找个教程:Ollama 教程 | 菜鸟教程

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
ollama --help

# 1、使用方法
ollama [flags]:使用标志(flags)运行 ollama。
ollama [command]:运行 ollama 的某个具体命令。

# 2、可用命令
serve:启动 ollama 服务。
create:根据一个 Modelfile 创建一个模型。
show:显示某个模型的详细信息。
run:运行一个模型。
stop:停止一个正在运行的模型。
pull:从一个模型仓库(registry)拉取一个模型。
push:将一个模型推送到一个模型仓库。
list:列出所有模型。
ps:列出所有正在运行的模型。
cp:复制一个模型。
rm:删除一个模型。
help:获取关于任何命令的帮助信息。

# 3、标志(Flags)
-h, --help:显示 ollama 的帮助信息。
-v, --version:显示版本信息。

下载模型

1
2
ollama pull qwen3:8b   # 对话模型
ollama pull all-minilm # all-minilm 是一个嵌入模型(Embedding Model),不是对话模型。

这里其实是下载到了ollama的默认地址,我尝试了去把地址换到我的个人目录下,但是会有一个问题!

ollama安装的同时会创建一个用户,而找个用户跟我们的个人用户不在同一个组中,所以没有权限访问我们的文件,所以不可行!

1
2
$ cat /etc/passwd
ollama:x:999:999::/usr/share/ollama:/bin/false

TODO:

怎么改默认的模型下载位置?

配置

如果 Ollama 以 systemd 服务的形式运行,则应使用 systemctl 设置环境变量。通过调用 systemctl edit ollama.service 编辑 systemd 服务。

  • 设置指定运行的GPU

    1
    2
    3
    4
    5
    6
    7
    $ sudo mkdir -p /etc/systemd/system/ollama.service.d
    $ cd /etc/systemd/system/ollama.service.d

    $ sudo tee /etc/systemd/system/ollama.service.d/override.conf << 'EOF'
    [Service]
    Environment="CUDA_VISIBLE_DEVICES=2"
    EOF
  • 设置Ollama的监听地址和端口

当前Ollama只监听在127.0.0.1:11434(本地回环地址:默认监听端口),这意味着只能从本机访问,无法从其他机器通过局域网访问。需要修改Ollama的配置,让它监听所有网络接口,而不仅仅是本地回环,所以需要设置OLLAMA_HOST环境变量。同时,为了安全把模型端口也改一下。

1
2
3
4
5
$ sudo cat /etc/systemd/system/ollama.service.d/override.conf
[sudo] password for $(whoami):
[Service]
Environment="CUDA_VISIBLE_DEVICES=2"
Environment="OLLAMA_HOST=0.0.0.0:x" # 这里的x就是自己设定的端口

重启ollama服务

1
2
3
$ sudo systemctl daemon-reload   # 重新加载 systemd 管理器配置,当你手动创建、修改或删除了 /etc/systemd/system/ 目录下的 任何 单元配置文件(比如你在 ollama.service.d 中添加了一个新的 .conf 文件)之后,必须执行此命令。
$ sudo systemctl restart ollama # 重启 Ollama 服务。 systemd 会先执行服务的 停止 (stop) 动作,然后再执行 启动 (start) 动作。
$ sudo systemctl status ollama # 显示 Ollama 服务的 当前状态。

Check ollama, 测试一下API是否可以正常访问

1
2
3
4
5
6
7
8
9
10
11
12
13
14
$ curl http://localhost:11434/api/tags

$ curl http://10.70.246.224:11434/api/tags

$ curl -X POST http://10.70.246.224:11434/api/chat -H "Content-Type: application/json" -d '{
"model": "qwen3:8b",
"messages": [
{
"role": "user",
"content": "你好"
}
],
"stream": false
}'

Check ollama, 测试一下使用命令是否可以正常访问

1
2
$ ollama list
$ ollama run qwen3:8b "你好"

TODO:

systemd的外延知识

systemd不是很了解,之前在配置服务器网络的时候用到过!有时间可以再学一下!

1
2
3
- 这个目录的末尾是 .d,这在 systemd 中有一个特殊的含义:它是用来存放 配置文件片段 (drop-in snippets) 的目录。
- 目的: 用来覆盖 (override) 或增强 (extend) 原始的 ollama.service 单元文件,而不需要直接修改那个文件。
- 用途: 任何放在这个目录下的 .conf 文件都会在 ollama.service 主文件加载后被读取和应用。这是最佳实践,因为它能让你在系统更新时,原始的 ollama.service 文件被替换掉,你所做的自定义配置仍然会保留下来。

ollama服务的启动与停止

启动和停止服务

动作 命令 解释
启动 (Start) sudo systemctl start ollama 启动服务。如果服务未运行,则开始运行。如果已在运行,则什么也不做。
停止 (Stop) sudo systemctl stop ollama 优雅地停止服务。
重启 (Restart) sudo systemctl restart ollama 先停止,后启动服务。
重新加载 (Reload) sudo systemctl reload ollama 仅在服务支持时,重新加载其配置而不中断当前运行的任务。对于 Ollama 这种应用,通常使用 restart 更保险。

开机自启设置 (Enabling and Disabling)

动作 命令 解释
设置开机自启 sudo systemctl enable ollama 创建必要的符号链接,确保系统下次启动时 自动 启动 Ollama 服务。
取消开机自启 sudo systemctl disable ollama 移除符号链接,下次系统启动时 不会 启动 Ollama 服务。
检查是否自启 systemctl is-enabled ollama 检查服务是否已设置为开机自启。

完整启动/停止 Ollama 的流程

启动 Ollama:

  1. 如果你修改了配置:sudo systemctl daemon-reload
  2. sudo systemctl start ollama
  3. sudo systemctl status ollama (检查是否启动成功)

停止 Ollama:

  1. sudo systemctl stop ollama
  2. sudo systemctl status ollama (检查是否已停止)

现象解释

安装完Ollama之后我发现一个现象。

  • 在没有Ollama运行但没有对话的时候,GPU之后G-Mem被占用,G-Utl没有;
  • 对话的时候,G-Utl会占用很大;
  • 一段时间之后,Ollama会自动结束服务;

这里我觉得要区分一下Ollama和模型(如qwen3:8b):

  • Ollama的服务在启动后,并没有加载模型,只占用了CPU和Mem;
  • 通过api(api/chat)或者命令(ollama run qwen3:8b)之后,ollama会加载qwen3:8b模型,这时候会有G-Mem的占用;
  • 在对话的时候,则G-Utl会占用。

此外,Ollama的部署在资源管理上有很大的优势和特点:

  • 只有收到请求时才加载模型;加载时间通常几秒钟;
  • 默认5分钟无请求后自动卸载;释放GPU显存给其他程序使用;
  • 空闲时只有ollama服务进程,几乎不占用GPU;工作时模型占用显存;
  • 不会长期占用GPU资源;其他用户可以在模型空闲时使用GPU;

这就是为什么这种部署方式适合服务器环境的原因——按需使用,自动释放!
同理,在Zotero中使用GPT插件时,也是同样的机制:提问 → 模型加载 → 生成回答 → 5分钟后自动卸载

Ollama部署模型还有很多的应用待探索

  • Zotero GPT
  • 其他应用
  • ……

Zotero GPT

配置

  • Zotero GPT: 使用API URL http:$SERVER_IP//:$OLLAMA_PORT
  • API Key: 设置为空格 " "
  • 模型: qwen3:8b

这里其实是不需要API Key的,但应该这个插件的问题,不设置Key会报错。这里直接键入一个“空格”就能解决。


Ollama
https://blog.cosmicdusty.cc/post/Tools/Ollama/
作者
Murphy
发布于
2025年10月3日
许可协议