声明
本文由 🤖AI 改写润色而成
1. 前言:为何需要离线安装
在客户服务器因涉密或特殊安全需求而无法连接互联网的背景下,离线安装软件成为一项必须掌握的技能。本文整理了若干常见工具的离线安装方法以供参考。
模拟无网环境的方法 (适用于主流 Linux 发行版):
1  | # 1. 允许所有已经建立的连接和相关连接的出站流量 (这是保持 SSH 不断的关键)  | 
Note
本文操作环境为 Ubuntu 22.04。
2. Caddy
在私有化部署场景中,Caddy 能便捷地用作反向代理及静态资源服务器。
2.1 下载二进制包
其离线安装采用静态二进制文件的方式,可从以下任一地址下载对应平台的二进制包:
2.2 配置服务
1  | # Move the caddy binary into your $PATH  | 
服务配置文件 (/etc/systemd/system/caddy.service):
1  | [Unit]  | 
2.3 验证
1  | # Verify that it is running:  | 
2.4 使用服务
1  | # edit your configuration  | 
3. Docker
以 Ubuntu 22.04 LTS (Jammy) 为例,离线安装主要分为下载 DEB 包和本地安装两个步骤。
3.1 下载 DEB 包
从官方仓库 https://download.docker.com/linux/ubuntu/dists/pool/stable/ 下载所需文件。
1  | # 定义要下载的软件包名称数组  | 
3.2 安装 DEB 包
1  | sudo dpkg -i $download_dir/*.deb  | 
3.3 验证
- 服务
1
2
3
4sudo systemctl status docker
sudo systemctl start docker
sudo usermod -aG docker ${USER}
newgrp docker - 命令
1
2docker version
docker compose version 
4. Python
不同于 Windows 和 macOS,Linux 系统常规的源码编译方式需要处理复杂的系统依赖。因此,本文推荐一种更便捷的方式:使用预编译的独立二进制包进行安装,思路类似于 pyenv。
4.1 下载二进制包
从 python-build-standalone/releases 下载合适的版本,例如:cpython-3.12.12+20251014-aarch64-unknown-linux-gnu-install_only.tar.gz
4.2 安装
1  | tar -xzvf cpython-3.12.12+20251014-aarch64-unknown-linux-gnu-install_only.tar.gz  | 
4.3 验证
1  | echo 'export PATH="/usr/local/python-3.12.12/bin:$PATH"' >> ~/.bashrc  | 
5. LLM 模型
首先在有网络的本地环境中下载所需模型,再将其同步到目标服务器上即可。
1  | # 使用 huggingface-cli 下载  | 
下载 MinerU 模型:
1  | uv pip install "mineru[core]"  | 
6. GPU + CUDA
Warning
注意:本章节内容仅为资料整理,尚未经过实际操作验证。
6.1 驱动和 CUDA
- 视频教程: Ubuntu 22.04 企业级 AI 生产环境 nvidia 显卡驱动 cuda 安装
 - 文档教程:
 
6.2 Nvidia Container Toolkit
官方文档未直接提供离线安装包,但我们可以从社区发布的版本(如 GitHub Releases)中下载 DEB 软件包到本地,再进行安装。
首先从 GitHub 下载合适的包,然后拷贝到目标机器进行安装。
1  | # 下载  | 
7. Ollama
7.1 安装
1  | # 下载并解压  | 
7.2 配置为服务
安装完成后,强烈建议在生产环境中将其配置为系统服务(Service)以确保稳定运行。
创建用户和组:
1
2
3
4sudo useradd -r -s /bin/false -U -m -d /usr/share/ollama ollama
sudo usermod -a -G ollama $(whoami)
newgrp ollama
groups创建服务文件 (
/etc/systemd/system/ollama.service):1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18[Unit]
Description=Ollama Service
After=network-online.target
[Service]
ExecStart=/usr/bin/ollama serve
User=ollama
Group=ollama
Restart=always
RestartSec=3
Environment="PATH=$PATH"
Environment="OLLAMA_KEEP_ALIVE=-1"
Environment="OLLAMA_HOST=0.0.0.0"
Environment="OLLAMA_CONTEXT_LENGTH=256000"
Environment="CUDA_VISIBLE_DEVICES=0,1,2,3"
[Install]
WantedBy=multi-user.targetNote
>
Environment部分按需修改。启动服务:
1
2
3
4sudo systemctl daemon-reload
sudo systemctl enable --now ollama
# 查看服务日志
journalctl -u ollama -f
7.3 验证与使用
1  | # 测试 embedding  | 
7.4 离线加载模型
离线加载模型的方法很简单:Ollama 的模型文件默认存储在 ~/.ollama/models/ 目录中。我们只需在有网络的机器上执行 ollama pull <model_name> 下载所需模型,然后将整个 models 目录同步到目标服务器的相应位置即可。
8. 总结:离线安装的核心经验
离线环境下的软件安装虽然比在线安装繁琐,但遵循一定的规律便能轻松应对。核心经验可以总结为以下几点:
- 优先选择二进制包:尽可能寻找软件官方提供的静态编译二进制文件(如 Caddy、Python Standalone)或适用于目标系统的标准软件包(如 
.deb、.rpm)。这是最简单、最不容易出错的方式,能最大限度地避免处理复杂的依赖关系。 - “打包”思维处理依赖:对于像 Docker 或 Nvidia 工具链这样有多个依赖包的软件,关键在于提前在有网环境中识别并下载所有必需的软件包。将这些包(程序本身 + 所有依赖)一同复制到目标服务器上,再使用 
dpkg -i *.deb等命令进行批量安装。 - 分离程序与数据:对于 Ollama 这类应用,除了安装程序本身,还需要离线部署其使用的数据(大模型文件)。通用的方法是在线下载好所需数据,然后将存储数据的整个目录(如 
~/.ollama/models)迁移到离线服务器的对应位置。 - 万变不离其宗:无论软件多么复杂,离线安装的本质都是“资源搬运”。提前规划,理清程序、依赖、配置和数据这四个要素,就能从容应对大多数离线部署场景。