欢迎光临
我们一直在努力

Linux中常见的离线安装方式(Ubuntu和CentOS)

对比项

Ubuntu

CentOS

包格式

deb

rpm

底层工具

dpkg

rpm

推荐离线方案

本地 APT 仓库

本地 YUM 仓库

单包安装

dpkg -i

rpm -ivh

自动依赖

apt

yum/dnf

Centos

一、什么是 RPM 安装方式

RPM(Red Hat Package Manager) 是 Red Hat 系(RHEL、CentOS、Rocky、Alma、Fedora 等)Linux 使用的软件包管理格式与工具。

RPM 包后缀:.rpm

本质:已编译好的二进制软件包

包内包含:

  • 程序文件(可执行文件)
  • 配置文件
  • 依赖关系说明
  • 安装/卸载脚本
  • 版本、作者、校验信息

二、RPM 安装方式适合什么场景

RPM 适用于以下情况:

  • 服务器离线环境(无外网)
  • 安装指定版本软件
  • 安装厂商官方提供的软件包
  • 排查问题、手动控制依赖
  • 面试中常考的基础运维能力
  • 在真实工作中,RPM 更多是底层能力,而不是最推荐方式。


    三、RPM 与 YUM / DNF 的关系(重点)

    1、 RPM 是“工具 + 格式”
    • 直接操作 .rpm 文件
    • 不会自动解决依赖
    2、 YUM / DNF 是“高级包管理器”
    • 底层仍然调用 RPM
    • 自动解决依赖
    • 从仓库下载软件

    关系一句话总结:YUM / DNF = RPM + 依赖管理 + 仓库


    四、RPM 常用命令

    1、 安装 RPM 包

    rpm -ivh 软件包名.rpm

    参数说明:

    参数

    含义

    -i

    install 安装

    -v

    显示详细过程

    -h

    显示进度条

    示例:

    rpm -ivh nginx-1.20.1-1.el7.x86_64.rpm


    2、 升级 RPM 包

    rpm -Uvh 软件包名.rpm

    说明:

    • 如果已安装 → 升级
    • 如果未安装 → 安装

    3、 卸载 RPM 包

    rpm -e 软件名

    示例:

    rpm -e nginx

    注意:

    • 不是 rpm 文件名
    • 是软件的 包名

    4、 查询是否已安装

    rpm -qa | grep nginx

    常见用途:

    • 检查是否安装
    • 排查版本冲突

    5、 查看已安装软件的详细信息

    rpm -qi nginx

    可以看到:

    • 版本
    • 安装时间
    • 描述信息

    6、 查看某个文件属于哪个 RPM 包(排障常用)

    rpm -qf /usr/sbin/nginx

    用于回答面试题:“系统里一个文件不知道是谁装的,怎么办?”


    7、 查看 RPM 包安装了哪些文件

    rpm -ql nginx


    五、RPM 安装的最大问题:依赖地狱

    示例问题

    rpm -ivh nginx.rpm

    报错:

    error: Failed dependencies:
    libpcre.so.1 is needed
    openssl >= 1.1.1 is needed

    原因:

    • RPM 不自动安装依赖
    • 你需要手动一个个找 .rpm 包

    这就是所谓的 依赖地狱(Dependency Hell)

    Ubuntu

    在 Ubuntu 离线环境中,通常通过 dpkg 安装 deb 包完成基础安装,但在生产或批量部署场景下,更推荐构建本地 APT 仓库,通过 apt 进行安装,从而自动解决依赖问题,保证系统一致性和可维护性。

    Ubuntu 离线安装的主流方式

    方式

    常用程度

    是否推荐

    典型场景

    dpkg 安装 .deb

    ⭐⭐⭐⭐

    推荐

    少量软件

    本地 APT 仓库

    ⭐⭐⭐⭐⭐

    强烈推荐

    服务器 / 批量

    apt-offline

    ⭐⭐⭐

    推荐

    可联网准备

    源码编译

    ⭐⭐

    不常用

    定制需求

    snap 离线

    ⭐

    很少

    桌面环境

    方式一:dpkg 安装 .deb(最基础)

    1、 核心命令

    dpkg -i 软件包.deb

    示例:

    dpkg -i nginx_1.18.0-6ubuntu14_amd64.deb

    2、 dpkg 的特点
    • 直接操作 .deb
    • 不自动解决依赖
    • 离线可用
    • 类似于 CentOS 的 rpm
    3、 典型问题

    dpkg: dependency problems prevent configuration

    解决方式:

    apt –fix-broken install

    ⚠️ 离线环境下,这一步往往 无法自动修复,因此 dpkg 只适合非常简单的安装。


    四、方式二:本地 APT 仓库(生产环境首选)

    这是 Ubuntu 离线安装的标准做法,在企业环境非常常见。


    1、 原理说明
    • 把 .deb 包集中到一个目录
    • 用 APT 作为“本地仓库”
    • apt 自动解决依赖
    • 体验和联网安装完全一致

    2、 实操流程(核心思路)

    (1)准备 deb 包(有网机器)

    apt download nginx
    apt download nginx-core
    apt download nginx-common

    或者:

    apt-get download $(apt-cache depends nginx | awk '/Depends/ {print $2}')


    (2)拷贝到离线服务器

    scp *.deb offline-server:/opt/debs/


    (3)在离线服务器创建仓库索引

    cd /opt/debs
    dpkg-scanpackages . /dev/null | gzip -9c > Packages.gz


    (4)添加本地源

    编辑:

    vim /etc/apt/sources.list

    添加:

    deb [trusted=yes] file:/opt/debs ./


    (5)更新并安装

    apt update
    apt install nginx

    依赖自动解决,和在线无区别


    面试总结一句话:Ubuntu 离线环境中,推荐通过构建本地 APT 仓库的方式进行软件安装,既能解决依赖,又便于统一管理和重复部署。

    赞(0)
    未经允许不得转载:171主机测评 » Linux中常见的离线安装方式(Ubuntu和CentOS)
    分享到: 更多 (0)

    评论 抢沙发

    • 昵称 (必填)
    • 邮箱 (必填)
    • 网址