Linux离线安装软件完整教程:从下载依赖到验证安装

为什么需要离线安装?哪个场景最常用?


生产环境或内网服务器往往不能直接访问互联网,Linux离线安装软件就成了运维必备技能。

无论是部署数据库、监控工具还是安全补丁,掌握离线安装方法能让你在无网络情况下也顺利完成环境搭建。


准备工作:找到能联网的“搬运工”


你需要一台可联网的机器(与目标服务器相同架构和系统版本),用于下载安装包及其依赖。

同时确认目标服务器的 Linux 发行版(Ubuntu/Debian 系用 dpkg,CentOS/RHEL/Fedora 系用 rpm)。


小技巧:可以通过 cat /etc/os-release 查看发行版信息。

核心操作:从下载依赖到传输安装


第一类:Debian/Ubuntu 系统


1. 下载软件包(包含依赖)


在联网机器上,使用 apt-get downloadapt-get install --download-only 将软件包及其依赖下载到本地目录。


# 创建一个临时目录
mkdir ~/offline-packages && cd ~/offline-packages

下载 nginx 及其所有依赖包(不安装)

apt-get download $(apt-cache depends --recurse --no-recommends --no-suggests --no-conflicts --no-breaks --no-replaces --no-enhances nginx | grep "^[a-zA-Z0-9]" | sort -u)


2. 将目录打包传输到离线服务器


tar -czf nginx-offline.tar.gz ~/offline-packages
scp nginx-offline.tar.gz user@offline-server:/tmp/

3. 在离线服务器上解压并安装


cd /tmp && tar -xzf nginx-offline.tar.gz
cd nginx-offline
sudo dpkg -i *.deb

注意:如果提示依赖缺失,说明下载时遗漏了某些包。可以使用 dpkg -i --force-depends 强行安装,但一般不建议,优先保证所有依赖都下载完整。

第二类:CentOS/RHEL 系统


使用 yumdownloader 工具(属于 yum-utils 包)来下载 rpm 包及其依赖。


# 安装 yum-utils(联网机器上)
sudo yum install yum-utils -y

创建目录并下载 nginx 及其依赖

mkdir ~/rpm-packages && cd ~/rpm-packages
yumdownloader --resolve --destdir=. nginx


传输步骤与 Debian 类似,打包后 scp 到目标服务器,然后执行:


cd /tmp/rpm-packages
sudo rpm -Uvh *.rpm --nodeps # 注意:--nodeps 可能跳过依赖检查,但前提是依赖已齐全

更推荐使用 yum localinstall(需先配置本地 repo)或直接 rpm -ivh 逐个安装,顺序由 yumdownloader 自动处理好。


高频问题:缺少依赖报错怎么处理?


Q:安装时提示“缺少 libXXXX.so”


A:说明依赖包没有完全下载。

解决方法:回到联网机器,手动查找缺失的包名(一般错误信息会给出 .so 文件名对应的包名,可在 packages.ubuntu.comrpmfind.net 搜索)。

重新执行下载命令,或直接下载缺失的单个包。


Q:dpkg 或 rpm 提示版本冲突或架构不匹配


A:务必保证联网机与离线机的 OS 版本、架构(x86_64/aarch64)一模一样。

下载时不要跨版本。


Q:软件安装成功但无法启动


A:检查是否缺少运行时的动态库,可以用 ldd /usr/sbin/nginx 查看所有依赖库的加载情况,缺失则补充对应包。


避坑说明:这几个细节一定要记住



  • 不要直接在生产环境用 --nodeps 强制安装,除非你完全清楚依赖链且已经将所有包放好。

  • 优先选择 .deb.rpm 格式的包,避免编译安装(编译需要更多依赖,离线更难处理)。

  • 传包时用 scprsync,注意文件权限和路径。

  • 安装完成后及时清理临时目录,避免占用空间。


验证安装:确认软件已生效


# 查看版本信息
nginx -v

查看安装路径或文件列表

dpkg -L nginx # Debian/Ubuntu
rpm -ql nginx # CentOS/RHEL

启动服务并检查状态

sudo systemctl start nginx
sudo systemctl status nginx


如果能看到版本号和运行状态,说明Linux离线安装软件成功。

后续你可以把下载的压缩包保留,方便其他同配置服务器复用。


如果你正在处理 Linux 离线安装软件,建议先按本文步骤完整执行,再根据自己的环境做微调;

遇到异常时优先回看避坑和高频问题部分,基本能解决 80% 的报错。

分享到:
上一篇
WordPress一键备份恢复:WordPress网站搬家不
下一篇
Docker与虚拟机对比:Docker和虚拟机到底该选谁?运
1
系统公告

泽御云五一特惠活动🔥

泽御云持证合规运营,资质齐全可查,长久稳定! 五一限时多重福利同步开启: ✅ 香港 2 核 2G 云服务器超值拼团,低价入手团长免费 ✅ 4 核 4G 多机房年付拼团,性价比拉满 ✅ 内蒙古新区限时 7 折(zeyuyunnmg)特惠,专属优惠码锁价续费 ✅ 全站通用 75 折优惠,老用户充值享专属赠金 官方站点:zeyuyun.com 合规资质齐全|售后有保障|活动限时错过不再有
服务中心
客服
在线客服
24小时为您服务
咨询
联系我们
联系我们,为您的业务提供专属服务。
24/7 技术支持
如果您遇到寻求进一步的帮助,请过工单与我们进行联系。
24/7 即时支持
泽御云
售前客服
泽御云
泽御云
售后客服
泽御云
技术支持
评价
您对当前页面的整体感受是否满意?
😞
非常不满意
😕
不满意
😐
一般
🙂
满意
😊
非常满意