当前位置: 首页 > news >正文

Linux 软件安装 “命令密码本”:yum/apt/brew 一网打尽

在这里插入图片描述


目录


刚上手Linux的你,是不是也曾对着软件安装命令一脸懵?想装个Nginx,搜教程看到有人用yum install,换个帖子又变成apt-get install;切换到macOS,同事又甩来brew install的命令——明明都是装软件,为啥命令五花八门?这些命令背后藏着什么门道?不同系统到底该用哪个?

其实这种“混乱”并非无章可循,而是Linux生态的特性所致。本文就从你最困惑的命令差异入手,拆解Linux发行版与包管理系统的核心逻辑,手把手教你识别系统派系、选对安装工具,彻底告别“命令试错”的尴尬,不管是开发、运维还是新手,都能轻松搞定Linux软件安装。

前言

用过Linux的同学大概率都遇到过这样的困惑:安装软件时一会儿是 yum install,一会儿是 apt install, macOS 上又要用 brew install,甚至还会见到 rpmdpkg 等陌生命令。这些命令背后是什么逻辑?不同发行版为什么要搞不同的包管理工具?该如何根据自己的系统和场景选择合适的安装方式?

本文将结合Linux生态的核心本质,从基础概念到实操落地,系统化梳理Linux软件安装的全知识点,帮你彻底告别命令混乱,掌握不同场景下的软件安装技巧——无论你是开发、运维,还是刚入门Linux的新手,都能找到需要的内容。

一、基础认知:先搞懂Linux生态的核心逻辑

要理解Linux软件安装的“混乱”,首先要理清两个核心概念:Linux内核与发行版包管理系统的本质。这是后续所有知识点的基础。

1.1 Linux:内核≠完整系统

很多人误以为“Linux”是一个能直接使用的操作系统,但实际上:

  • Linux内核:仅指林纳斯·托瓦兹发起的开源内核项目,是系统的“底层核心引擎”——负责管理CPU、内存、硬盘等硬件资源,协调软件与硬件的通信,相当于汽车的“底盘+发动机”,但没有方向盘、座椅等可操作的“上层组件”。
  • Linux发行版(Distribution):厂商(如Canonical、Red Hat)将Linux内核与图形界面(GNOME/KDE)、基础工具(ls/cd)、应用软件、包管理系统等整合打包,解决兼容性问题后发布的“完整可用系统”,相当于“完整汽车”(如宝马3系、丰田卡罗拉)。

简单说:发行版 = Linux内核 + 上层软件集合 + 包管理系统,不同发行版的核心差异在于“上层组件”的选择,尤其是包管理系统——这也是导致软件安装命令不同的根本原因。

1.2 核心结论:派系与系统的差异本质

不同系统的命令差异,核心是“两大Linux派系+类Unix(macOS)”的定位分化,以及Red Hat系内部对不同场景的覆盖:

  • Red Hat系vs Debian系:Linux两大主流派系,差异集中在包管理、定位和支持模式,适配“企业稳定”与“通用易用”两类核心需求;
  • macOS:类Unix系统(非纯Linux),仅生态兼容部分Linux工具,定位和使用场景与纯Linux完全不同;
  • Red Hat系多系统:通过RHEL、CentOS、Fedora覆盖“企业付费稳定”“免费替代”“前沿测试”三类需求,形成生态闭环。

1.3 三大派系/系统核心差异对比

按核心维度对比,快速分清不同系统的定位与工具:

对比维度Red Hat 系(Linux)Debian 系(Linux)类Unix(macOS)
核心定位企业级、稳定性优先(服务器为主)通用型、易用性优先(桌面+服务器)桌面/开发机(个人/开发者用)
包管理系统底层.rpm,上层yum(旧)/dnf(新)底层.deb,上层apt-get(旧)/apt(新)原生pkg(弱),主流用brew(第三方)
代表系统RHEL、CentOS、FedoraUbuntu、Debian、Linux MintmacOS(非纯Linux)
支持模式付费企业支持(RHEL)+ 免费社区版免费社区支持为主,部分商业衍生版苹果官方付费支持(个人/企业)
软件更新策略保守更新(优先稳定,软件版本偏旧)分版本:LTS版(稳定)+ 普通版(较新)定期大版本更新(软件版本较新)
典型使用场景企业服务器、生产环境、运维部署桌面办公、开发机、轻量服务器、树莓派个人开发、日常办公、设计创作
权限管理默认root用户+sudo(需配置)默认普通用户+sudo(开箱即用)管理员账户+密码授权(图形化为主)

1.4 Red Hat系内部:多系统的定位分工

在这里插入图片描述

Red Hat系的三个核心系统,相当于“同一系列的三款差异化产品”,互不冲突且形成互补:

(1)RHEL(Red Hat Enterprise Linux):企业付费稳定版
  • 定位:面向企业/机构的商业Linux系统,主打“极致稳定+官方付费支持”。
  • 关键特点:内核和软件经过严格测试,更新极保守(优先保稳定,用旧版但修复所有漏洞),保障7x24小时不宕机;提供官方技术支持、漏洞修复和合规认证。
  • 核心用户:金融、政府、大型企业的生产服务器,需要稳定保障和官方背书。
(2)CentOS:RHEL的免费开源替代版
  • 定位:基于RHEL源码重新编译的免费版,目标是“与RHEL完全兼容但不收费”。
  • 关键特点:和RHEL内核、软件版本完全一致,功能1:1兼容(企业开发用RHEL,测试/非核心环境用CentOS省钱);无官方付费支持,依赖社区维护。
  • 核心用户:个人开发者、中小企业,追求RHEL的稳定性但不愿付费。
(3)Fedora:Red Hat系的前沿测试版
  • 定位:Red Hat的“技术试验田”,主打“最新功能+前沿特性”。
  • 关键特点:优先采用最新Linux内核和软件版本,更新频率高(每6个月一个版本);稳定性不如RHEL/CentOS,但能提前体验新技术。
  • 核心用户:开发者、技术爱好者,需要最新软件环境或测试新功能;Fedora的成熟功能会逐步移植到RHEL,再同步到CentOS。

简单总结:Fedora是“实验室”,RHEL是“商业化成品”,CentOS是“免费复刻成品”,三者覆盖从技术探索到企业落地的全链路需求。

1.5 包管理系统:软件安装的“智能管家”

手动安装Linux软件的原始方式是“源码编译”(./configure && make && make install),但存在两大痛点:

  1. 依赖地狱:安装软件A可能需要依赖B,安装B又需要依赖C,手动处理繁琐且容易出错;
  2. 管理混乱:软件安装路径分散,后续升级、卸载需要手动追踪文件,极易残留垃圾。

包管理系统的核心作用就是解决这两个问题,它相当于软件的“智能管家”,具备三大核心功能:

  • 标准化打包:将软件的可执行文件、配置文件、依赖说明等打包成统一格式(如.rpm.deb);
  • 自动依赖处理:安装软件时自动识别并下载所需依赖;
  • 统一管理:支持软件的安装、升级、卸载、查询等全生命周期操作。

我们常用的 yumaptbrew 都是包管理系统的“前端命令工具”,而 .rpm.deb 是底层的“软件包格式”——工具与格式一一绑定,对应不同的发行版派系。

二、主流包管理工具详解:按发行版派系分类

Linux发行版主要分为两大主流派系(Red Hat系、Debian系),再加上类Unix系统(macOS)的补充,形成了三类核心包管理工具体系。下面逐一详解其特点、用法和适用场景。

2.1 Red Hat系:yum/dnf + RPM格式

Red Hat系是企业级场景的主流选择,底层包格式为 .rpm(Red Hat Package Manager),上层管理工具为 yumdnf

2.1.1 核心工具:yumdnf 的区别
  • yum:全称Yellowdog Updater Modified,Red Hat系早期主流工具,基于RPM格式,自动解决依赖,命令简洁。

    • 适用系统:CentOS 6/7、RHEL 6/7、旧版Fedora(22之前);
    • 局限性:依赖解析速度慢,多版本依赖处理能力弱。
  • dnfyum的下一代替代工具,完全兼容yum命令,依赖解析、内存占用、扩展性均有提升。

    • 适用系统:CentOS 8+、RHEL 8+、Fedora 22+;
    • 优势:支持模块化安装、滚动更新,依赖处理更智能,是当前推荐工具。
2.1.2 常用命令(yum/dnf 通用,以 yum 为例)
# 安装软件(自动解决依赖)
yum install nginx  # dnf install nginx# 卸载软件(保留依赖,如需删除依赖加 --nodeps)
yum remove nginx  # dnf remove nginx# 更新指定软件
yum update nginx  # dnf update nginx# 更新系统所有软件
yum update  # dnf update# 搜索软件
yum search nginx  # dnf search nginx# 查看软件详情
yum info nginx  # dnf info nginx# 列出已安装软件
yum list installed  # dnf list installed# 清理缓存
yum clean all  # dnf clean all
2.1.3 底层操作:rpm 命令(直接操作 .rpm 包)

rpm 是直接操作 .rpm 包的底层命令,不自动解决依赖,适合手动下载 .rpm 包的场景:

# 安装本地 .rpm 包(不解决依赖)
rpm -ivh nginx-1.20.1-9.el8.x86_64.rpm# 卸载软件
rpm -e nginx# 查看已安装的 .rpm 包
rpm -qa# 查看软件安装路径
rpm -ql nginx
2.1.4 适用场景
  • 企业级服务器、生产环境(优先RHEL/CentOS Stream);
  • 对稳定性要求高、需要长期支持的场景;
  • 深度模型部署、大数据处理等高性能需求场景(大厂多基于Red Hat系自研定制系统,如阿里Anolis OS、腾讯TencentOS Server)。

2.2 Debian系:apt/apt-get + DEB格式

Debian系以“易用性”和“通用性”著称,底层包格式为 .deb(Debian Package),上层管理工具为 apt-getapt

在这里插入图片描述

2.2.1 核心工具:aptapt-get 的区别
  • apt-get:Debian系早期经典工具,功能全面但命令繁琐,需配合 apt-cache 等使用。

    • 特点:稳定性强,适合脚本自动化场景;
    • 局限性:用户交互一般,命令分散(搜索用 apt-cache search,安装用 apt-get install)。
  • apt:Ubuntu 16.04+推出的简化工具,整合 apt-getapt-cache 核心功能,命令简洁,支持进度条。

    • 特点:兼顾易用性和完整性,兼容apt-get核心命令;
    • 优势:新手友好,日常操作效率更高。
2.2.2 常用命令(apt 为主,apt-get 对比)
# 安装软件(自动解决依赖)
apt install nginx  # apt-get install nginx# 卸载软件(保留配置文件,如需删除配置加 --purge)
apt remove nginx  # apt-get remove nginx
apt purge nginx   # 彻底卸载(删除配置)# 更新软件源缓存(修改源后必须执行)
apt update  # apt-get update# 更新指定软件(需先执行 apt update)
apt upgrade nginx  # apt-get upgrade nginx# 更新系统所有软件(含内核升级)
apt full-upgrade  # apt-get dist-upgrade# 搜索软件
apt search nginx  # apt-cache search nginx# 查看软件详情
apt show nginx  # apt-cache show nginx# 列出已安装软件
apt list --installed# 清理无用依赖(自动移除不再需要的软件)
apt autoremove
2.2.3 底层操作:dpkg 命令(直接操作 .deb 包)

dpkg 是Debian系底层包管理命令,直接处理 .deb 包,不自动解决依赖:

# 安装本地 .deb 包(不解决依赖)
dpkg -i nginx_1.18.0-6ubuntu14.4_amd64.deb# 修复依赖问题(安装缺失的依赖)
apt -f install# 卸载软件(保留配置文件)
dpkg -r nginx# 彻底卸载(删除配置文件)
dpkg -P nginx# 查看已安装的 .deb 包
dpkg -l# 查看软件安装路径
dpkg -L nginx
2.2.4 适用场景
  • 桌面办公、个人开发机(优先Ubuntu LTS版);
  • 轻量服务器、树莓派等边缘设备;
  • 开源项目测试、快速原型开发(软件源更新快,工具生态丰富)。

2.3 类Unix(macOS):brew(Homebrew)

macOS是类Unix系统(非纯Linux),原生包管理工具(.pkg)生态薄弱,且不支持自动依赖处理。brew(Homebrew)是macOS专属的第三方包管理工具,弥补了原生工具的不足,是开发者的必备工具。

2.3.1 brew 的核心特点
  • 支持命令行工具(如 wgetgit)、图形化应用(如Chrome、VS Code)、开发库(如 opensslPython)的安装;
  • 自动解决依赖,安装路径统一(默认 /usr/local/Cellar),管理清晰;
  • 支持国内镜像源,解决网络下载慢的问题。
2.3.2 安装与常用命令
(1)安装 brew(macOS)

先安装Xcode命令行工具(编译依赖),再执行官方脚本:

# 安装Xcode命令行工具
xcode-select --install# 安装brew(官方脚本,需科学上网)
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"# 国内镜像(清华源,无需科学上网)
/bin/bash -c "$(curl -fsSL https://mirrors.tuna.tsinghua.edu.cn/git/homebrew/install.git)/install.sh"
(2)常用命令
# 安装软件(命令行工具)
brew install wget# 安装图形化应用(Cask工具)
brew install --cask google-chrome# 卸载软件
brew uninstall wget
brew uninstall --cask google-chrome# 更新brew本身
brew update# 更新指定软件
brew upgrade wget# 更新所有软件
brew upgrade# 搜索软件
brew search wget# 查看软件详情
brew info wget# 清理无用依赖和旧版本
brew cleanup
2.3.3 适用场景
  • macOS 个人开发机、日常办公;
  • 本地轻量化开发、模型调试(搭配Python/Go/Java等开发环境);
  • 安装Linux兼容工具(如 vimsshdocker)。

2.4 跨发行版工具:snapflatpak

除了派系专属工具,还有两类跨发行版包管理工具,解决“特定软件在部分发行版上装不上”的问题——软件包自带所有依赖,无需担心系统兼容性。

  • snap:由Ubuntu开发,预打包所有依赖,支持沙箱隔离,安装简单:

    # 安装snap(Ubuntu默认预装,CentOS需手动安装)
    sudo yum install snapd  # CentOS
    sudo apt install snapd  # Ubuntu# 安装软件(如VS Code)
    snap install code
    
  • flatpak:开源跨发行版工具,兼容性更广,支持更多发行版:

    # 安装flatpak
    sudo apt install flatpak  # Debian系
    sudo dnf install flatpak  # Red Hat系# 安装软件(如Firefox)
    flatpak install flathub org.mozilla.firefox
    

适用场景:安装小众软件、新版本软件,或需要沙箱隔离的场景(如测试不稳定软件)。

三、底层打包格式:RPM 与 DEB 深度对比

前面提到的 yum/apt 都是上层工具,其底层依赖于 .rpm.deb 两种打包格式。这两种格式是两大派系的核心差异之一,下面从多个维度对比:

对比维度RPM(Red Hat系)DEB(Debian系)
适用系统CentOS、RHEL、Fedora、Anolis OSUbuntu、Debian、Linux Mint、Raspbian
包后缀.rpm.deb
底层操作命令rpmdpkg
依赖处理需手动解决(或用 yum/dnf需手动解决(或用 apt/apt-get
软件元数据包含版本、依赖、安装路径等包含版本、依赖、安装路径等
权限控制基于系统用户权限基于系统用户权限
打包工具rpmbuilddpkg-deb

核心结论:两种格式不能混用(如在Ubuntu上安装 .rpm 包会报错),若需跨格式安装,可使用 alien 工具转换(不推荐生产环境使用,可能存在兼容性问题):

# 安装alien(Debian系)
sudo apt install alien# 将.rpm包转换为.deb包
alien xxx.rpm

四、实操手册:快速上手与问题排查

4.1 如何查看自己的系统派系和版本?

在选择包管理工具前,需先明确系统类型,推荐以下3个命令(优先按顺序尝试):

(1)lsb_release -a(最清晰,推荐)
lsb_release -a
# Ubuntu输出示例
No LSB modules are available.
Distributor ID: Ubuntu  # 发行版名称(Debian系)
Description:    Ubuntu 22.04.3 LTS
Release:        22.04
Codename:       jammy
(2)cat /etc/os-release(无依赖,所有Linux支持)
cat /etc/os-release
# CentOS输出示例
NAME="CentOS Linux"
VERSION="8 (Core)"
ID="centos"
ID_LIKE="rhel fedora"  # 关键:基于RHEL/Fedora(Red Hat系)
PRETTY_NAME="CentOS Linux 8 (Core)"
(3)macOS专属:sw_vers
sw_vers
ProductName:    macOS
ProductVersion: 14.5
BuildVersion:   23F79

4.2 工具安装与验证

(1)yum/dnf:Red Hat系默认预装
# 验证yum
yum --version# 验证dnf
dnf --version
(2)apt:Debian系默认预装
apt --version
(3)brew:macOS手动安装(见2.3.2)
brew --version

4.3 常见问题排查

(1)yum/apt 安装软件提示“找不到包”?
  • 原因:软件源中没有该软件,或软件源未更新;
  • 解决:
    1. 更新软件源缓存:yum update(Red Hat系)/ apt update(Debian系);
    2. 安装EPEL源(Red Hat系):yum install epel-release
    3. 手动添加第三方软件源(如Ubuntu PPA)。
(2)brew 安装超时/失败?
  • 原因:网络问题(官方源在国外);
  • 解决:切换国内镜像源(如清华源、中科大源),参考Homebrew镜像配置指南。
(3)rpm/dpkg 安装提示“缺少依赖”?
  • 原因:底层命令不自动解决依赖;
  • 解决:使用上层工具修复依赖:
    • Red Hat系:yum -y install --skip-broken
    • Debian系:apt -f install

五、场景化选型指南:不同场景该用什么?

使用场景推荐系统推荐包管理工具核心优势
企业生产服务器CentOS Stream/RHELdnf/yum稳定、企业级支持、兼容K8s
深度模型部署(生产)Anolis OS/TencentOSdnf + Docker云原生优化、GPU兼容好
个人开发机(Linux)Ubuntu 22.04 LTSapt易用性强、工具生态全
个人开发机(macOS)macOS 13+/14+brew跨平台工具兼容、安装便捷
树莓派/边缘设备Raspbian/Ubuntu Coreapt/snap轻量化、硬件适配好
测试新版本软件Fedora/Arch Linuxdnf/pacman软件版本新、更新快

六、总结

Linux软件安装的“命令混乱”本质是发行版派系差异导致的——不同派系为适配自身场景(稳定/易用/前沿),选择了不同的包管理体系,但核心逻辑都是“标准化打包+自动依赖处理”。

掌握以下核心规律,就能应对所有场景:

  1. 先判断系统派系:Red Hat系用 yum/dnf,Debian系用 apt,macOS用 brew
  2. 优先使用上层工具(yum/apt/brew),避免直接用底层命令(rpm/dpkg);
  3. 生产环境优先Red Hat系(稳定),开发环境优先Ubuntu/macOS(易用);
  4. 跨发行版需求用 snap/flatpak,小众软件用第三方源。

附录:常用命令速查表

操作Red Hat系(yum/dnfDebian系(aptmacOS(brew
安装软件yum install xxxapt install xxxbrew install xxx
卸载软件yum remove xxxapt remove xxxbrew uninstall xxx
更新软件yum update xxxapt upgrade xxxbrew upgrade xxx
搜索软件yum search xxxapt search xxxbrew search xxx
查看软件详情yum info xxxapt show xxxbrew info xxx
更新软件源yum updateapt updatebrew update
清理缓存yum clean allapt cleanbrew cleanup
http://www.dtcms.com/a/585583.html

相关文章:

  • 做网站框架显示不出来中国最大的软件公司
  • 轻量级云原生体验:在OpenEuler 25.09上快速部署单节点K3s
  • 程序员 给老婆做网站网站建设 海南
  • 解释 StringRedisTemplate 类和对象的作用与关系
  • MATLAB遗传算法优化RVFL神经网络回归预测(随机函数链接神经网络)
  • 建设网站的知识竞赛国家建设网站
  • ROS2 Humble 笔记(七)标准与自定义 Interface 接口
  • 深入探索序列学习:循环神经网络(RNN)及其变体(LSTM、GRU)的详尽解析
  • 永川区做网站临沂网站建设方案报价
  • B哩B哩车机版专为汽车端或大屏设备开发
  • 一种基于视网膜图像的深度学习系统 DeepRETStroke
  • 2025汽车零部件行业数字化转型落地方案
  • 前后端分离和传统非分离(后端渲染)方案的核心差异
  • 【ZeroRange WebRTC】在自有 AWS 环境实现与 Amazon KVS 等效的 WebRTC 安全方案(落地指南)
  • 用wordpress建站要不要用宝塔网页制作基础教程免费
  • 深入解析红黑树:高效平衡的艺术
  • 李云飞:比亚迪将坚持磷酸铁锂电池路线
  • 制作网站赚钱不建设门户网站的请示
  • 张祥前统一场论动量公式P=m(C-V)误解解答
  • 建设工程施工员考试在哪个网站网页设计欣赏熊出没
  • Kafka-2 Kafka的特点
  • 悟空AI-CRM 15,最新版 开源了!
  • winlogon登录对话框中USER32!SLEditWndProc函数分析之WM_CHAR消息是如何来的--重要
  • 杭州外贸网站建设公司价格建立网站大概投入
  • 长沙营销网站建站公司百度数据研究中心官网
  • AWS EC2实例重启后SSH/SFTP连接失败的全面排查指南
  • Tigshop 开源商城系统 php v5.1.9.1版本正式发布
  • Wordpress Advanced Ads插件漏洞CVE-2025-10487复现
  • nvm命令使用,nvm国内镜像,nvm命令for Linux/Mac
  • 如何使用 Docker Compose 安装 WordPress