Linux的Ollama离线部署与各模型gguf文件离线导入

纯离线部署查了很多文档,发现很多不全,有些还把命令藏起来变成一个安装脚本才能部署ollama。

最后测通后发现还是比较简单的,纯净系统没有装其他的依赖库和环境。

本文是CentOS7.4纯净版离线环境下部署了ollama后搭载Deepseek-R1:14b跑,其他的模型只要有gguf格式模型包也同样支持上传。

1、下载ollama-linux-amd64.tgz 和deepseek-r1:14b.gguf文件,gguf的文件可以重命名,不影响后面部署。之后先都上传到离线服务器。


2、解压ollama包

sudo tar -C /usr -xzf ollama-linux-amd64.tgz

3、解压完后就可以直接启动ollama

ollama serve

4、启动完后页面会卡住,因为不是后台启动的,这时候可以新开另外一个ssh。

输入ollama list
可以出现查看所有下载的模型,NAME    ID    SIZE    MODIFIED,

输入ps -ef|grep ollama
可以看到有一个ollama serve起着,输入netstat -anltp|grep LISTEN可以看到起着11434端口,则ollama部署完成。

5、修改环境的端口,让外部服务器可以访问。如何修改端口见最后。

vi /etc/profile在最后加上export OLLAMA_HOST=0.0.0.0:11434,之后source /etc/profile

6、vi  /etc/systemd/system/ollama.service 输入

[Unit]
Description=Ollama Service
After=network-online.target

[Service]
ExecStart=/usr/local/bin/ollama serve
User=root
Group=root
Restart=always
RestartSec=3
Environment="OLLAMA_HOST=0.0.0.0"
Environment="PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin"

[Install]
WantedBy=default.target

7、执行命令  #做开机自启
sudo systemctl daemon-reload
systemctl start ollama
systemctl enable ollama

8、创建目录,

sudo mkdir -p  /data/modes,

上传gguf文件。在同目录下输入命令
touch  Modelfile
在文件中复制以下内容,

①下面三个引号"""   """"中间的部分是要去https://ollama.com/library/网站上查到,选择了模型的型号后把Template的复制进去。下面这个是7b的,这边要选择14b的模型复制。

②模型名也要根据自己的模型修改

# 上一步的模型名
FROM ./deepseek-r1:14b.gguf
# 可以到 ollama 网站上的模型库去寻找, 如deepseek-r1 14b 的模板地址: https://ollama.com/library/
# 直接复制 ollama 上的 Template 到如下三个双引号中间
TEMPLATE """{{- if .Messages }}
{{- if or .System .Tools }}<|im_start|>system
{{- if .System }}
{{ .System }}
{{- end }}
{{- if .Tools }}
# Tools
You may call one or more functions to assist with the user query.
You are provided with function signatures within <tools></tools> XML tags:
<tools>
{{- range .Tools }}
{"type": "function", "function": {{ .Function }}}
{{- end }}
</tools>
For each function call, return a json object with function name and arguments within <tool_call></tool_call> XML tags:
<tool_call>
{"name": <function-name>, "arguments": <args-json-object>}
</tool_call>
{{- end }}<|im_end|>
{{ end }}
{{- range $i, $_ := .Messages }}
{{- $last := eq (len (slice $.Messages $i)) 1 -}}
{{- if eq .Role "user" }}<|im_start|>user
{{ .Content }}<|im_end|>
{{ else if eq .Role "assistant" }}<|im_start|>assistant
{{ if .Content }}{{ .Content }}
{{- else if .ToolCalls }}<tool_call>
{{ range .ToolCalls }}{"name": "{{ .Function.Name }}", "arguments": {{ .Function.Arguments }}}
{{ end }}</tool_call>
{{- end }}{{ if not $last }}<|im_end|>
{{ end }}
{{- else if eq .Role "tool" }}<|im_start|>user
<tool_response>
{{ .Content }}
</tool_response><|im_end|>
{{ end }}
{{- if and (ne .Role "assistant") $last }}<|im_start|>assistant
{{ end }}
{{- end }}
{{- else }}
{{- if .System }}<|im_start|>system
{{ .System }}<|im_end|>
{{ end }}{{ if .Prompt }}<|im_start|>user
{{ .Prompt }}<|im_end|>
{{ end }}<|im_start|>assistant
{{ end }}{{ .Response }}{{ if .Response }}<|im_end|>{{ end }}
"""

# 这一步参考 ollama 上的 parameters, 但是 ollama 上的14b 是没有参数的, 按照下面的格式添加即可
PARAMETER stop "<|im_start|>"
PARAMETER stop "<|im_end|>"


9、# 通过模型描述文件, 创建并运行 deepseek 模型
ollama create deepseek-r1:14b -f Modelfile
# 查看模型运行列表, 是否正在运行
ollama ls

# 通过 api 调用模型, 检测模型是否运行正常,这一步也可以用postman用http协议发
 curl --location --request POST 'http://127.0.0.1:11434/api/generate' \--header 'Content-Type: application/json' \--data '{"model": "deepseek-r1:14b","stream": false, "prompt": "1加1等于几?"}' \-w "Time Total: %{time_total}s\n"

10、修改端口
修改vi  /etc/systemd/system/ollama.service,修改里面的11434

之后sudo systemctl daemon-reload,systemctl restart ollama

修改vi /etc/profile在最后加上export OLLAMA_HOST=0.0.0.0:11434里面的11434,之后source /etc/profile

后面可以来看下可视化使用教程(Chatbox+Cherry Studio),没装web版因为web页面要额外装环境。

这里可以再去用ollama list命令看下挂载的模型名,因为有些模型因为导入的时候自己重命名了,可能模型名后面会自己加默认后缀。

Cherry Studio使用

1、安装Cherry Studio

2、点击设置

3、选择硅基流动,关闭启用

4、选择OLLAMA API,点击启用

5、修改API域名为http://10.38.113.233:2222

6、点击添加,输入deepseek-r1:14b

这里可以再去用ollama list命令看下挂载的模型名,因为有些

Chatbox使用

  1. 安装Chatbox
  2. 点击设置
  3. 选择OLLAMA API
  4. 输入API域名

http://10.38.113.233:2222

     5、选择模型:deepseek-r1:14b

### Ollama 模型离线安装方法 #### 准备工作 为了成功完成Ollama模型离线安装,需先确认操作系统版本并下载对应系统的安装包。对于MacOS用户而言,可从官方网址获取ZIP压缩包形式的安装文件Linux用户则有两种途径——利用`curl`命令执行脚本自动部署或是手动下载二进制文件至指定路径下赋予其执行权限;Windows环境下建议采用EXE格式的安装程序来简化流程。 针对Linux环境下的具体操作如下所示: ```bash wget https://hub.nuaa.cf/ollama/ollama/releases/download/v0.1.32/ollama-linux-amd64 -O /usr/bin/ollama sudo chmod +x /usr/bin/ollama ``` 上述指令实现了将目标URL指向的特定版本(v0.1.32)ollama Linux AMD64位版应用放置到系统全局命令空间内,并设置适当读写属性以便后续调用[^3]。 #### 配置环境变量 当完成了软件本身的安置之后,还需关注模型本身的数据准备环节。考虑到网络状况不稳定等因素影响,在线拉取预训练权重未必总是可行的选择。此时便体现出离线模式的优势所在:预先保存好所需资源再统一导入项目工程之中即可实现无缝衔接的效果。为此,可通过设定`OLLAMA_MODELS`这一环境变量告知框架本地存储位置从而加速启动过程以及减少对外部依赖程度。 例如,在Bash Shell中临时生效的方式为: ```bash export OLLAMA_MODELS=/path/to/local/models ``` 而永久化修改通常涉及编辑用户的shell profile文件如`.bashrc`或`.zshrc`等[^1]。 #### 加载自定义模型 除了官方提供的几种常见架构之外,亦允许使用者自行上传个性化定制后的神经网络结构参推理计算任务当中去。这里涉及到两种不同的输入样式:一种是以GGUF格式封装好的完整体;另一种则是基于已有成果做进一步优化调整后重新打包而成的新产物。无论是哪种情况都离不开对`modelfile`参数的有效配置以指明确切地址给解析器识别处理。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值