【Linux入门篇】Ubuntu和CentOS包管理不一样?apt与yum对比实操,看完再也不混淆
予枫个人主页 个人专栏: 《Java 从入门到起飞》《读研码农的干货日常》 Debug 这个世界Return 更好的自己引言做Linux开发或运维的朋友几乎每天都会和软件安装打交道——换yum源报错、离线环境装不上依赖、源码编译卡壳在make步骤这些问题是不是让你反复踩坑其实不管是CentOS的yum/dnf、Ubuntu的apt还是rpm/deb离线安装、源码编译核心逻辑都很简单。今天就一次性把Linux软件安装与包管理讲透新手也能跟着实操从此告别“安装失败”的烦恼文章目录引言一、前言为什么要学好Linux包管理二、在线安装yum/dnfCentOS与aptUbuntu实操2.1 CentOSyum/dnf使用换源安装卸载2.1.1 为什么要换源2.1.2 yum换源实操CentOS 72.1.3 dnf使用CentOS 82.1.4 yum/dnf核心命令必记2.2 Ubuntuapt使用换源安装卸载2.2.1 apt换源实操Ubuntu 20.04/22.042.2.2 apt核心命令必记2.3 常见问题排查避坑重点三、离线安装rpm/deb包实操无网环境必备3.1 CentOSrpm包离线安装3.1.1 核心命令必记3.1.2 实操案例安装nginx rpm包3.1.3 依赖问题解决重点难点3.2 Ubuntudeb包离线安装3.2.1 核心命令必记3.2.2 实操案例安装chrome deb包四、源码安装make make install 实操以Redis为例4.1 实操案例源码安装Redis通用流程其他软件可参考4.1.1 前提准备安装编译依赖4.1.2 第一步下载并解压Redis源码包4.1.3 第二步配置编译参数./configure4.1.4 第三步编译源码make4.1.5 第四步安装软件make install4.1.6 第五步验证安装是否成功4.2 源码安装常见问题五、总结一、前言为什么要学好Linux包管理做Linux相关开发、运维甚至是日常使用Linux桌面版「软件安装与包管理」都是绕不开的基础技能。你可能遇到过这些场景想装一个软件输入命令后提示“找不到包”不知道该怎么办换了国内yum源还是报错“无法连接仓库”排查半天找不到问题服务器没网下载好rpm包安装却提示“缺少依赖包”陷入死循环想安装某个软件的最新版本官方只有源码包不会编译安装。这些问题本质上都是没吃透Linux包管理的核心逻辑。今天这篇文章就针对「在线安装yum/dnfapt、离线安装rpm/deb、源码安装」三大场景结合实操案例手把手教你搞定所有Linux软件安装难题收藏这一篇以后不用再查零散教程温馨提示文章含大量实操命令建议点赞收藏方便后续实操时对照查看二、在线安装yum/dnfCentOS与aptUbuntu实操在线安装是最常用的方式核心优势是“自动解决依赖”不用手动下载依赖包效率极高。不同Linux发行版的包管理工具不同CentOSRHEL系用yum/dnfUbuntuDebian系用apt我们分别讲解。2.1 CentOSyum/dnf使用换源安装卸载2.1.1 为什么要换源默认情况下CentOS的官方yum源是国外的国内访问速度很慢甚至会出现“无法连接”的情况因此第一步必须先换「国内源」阿里云、清华源都可以这里以阿里云源为例。2.1.2 yum换源实操CentOS 7备份默认yum源防止出错后无法恢复# 进入yum源配置目录cd/etc/yum.repos.d/# 备份所有默认repo文件mkdirbackupmv*.repo backup/下载阿里云yum源文件# 下载CentOS 7阿里云源对应自己的CentOS版本wget-O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo清理缓存生成新缓存# 清理旧缓存yum clean all# 生成新缓存加载新源yum makecache验证换源是否成功# 查看yum源列表yum repolist# 若显示“阿里云”相关仓库且没有报错说明换源成功2.1.3 dnf使用CentOS 8CentOS 8及以上版本默认用dnf替代了yumdnf是yum的升级版本用法基本一致速度更快换源和使用方法和yum类似# 备份默认源cd/etc/yum.repos.d/mkdirbackupmv*.repo backup/# 下载阿里云dnf源wget-O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-8.repo# 清理缓存生成新缓存dnf clean all dnf makecache2.1.4 yum/dnf核心命令必记# 安装软件自动解决依赖yuminstall-y 软件名# CentOS 7dnfinstall-y 软件名# CentOS 8# 卸载软件不卸载依赖推荐yum remove -y 软件名 dnf remove -y 软件名# 卸载软件同时卸载依赖谨慎使用可能误删系统依赖yum erase -y 软件名 dnf erase -y 软件名# 更新所有已安装软件yum update -y dnf update -y# 搜索软件查看软件是否在仓库中yum search 软件名 dnf search 软件名注意安装时加上-y参数会自动确认所有提示不用手动输入“y”提升效率卸载软件时优先用remove避免erase误删依赖。2.2 Ubuntuapt使用换源安装卸载Ubuntu的包管理工具是apt用法和yum类似但命令略有不同同样先换国内源阿里云、清华源以清华源为例。2.2.1 apt换源实操Ubuntu 20.04/22.04备份默认源sudocp/etc/apt/sources.list /etc/apt/sources.list.bak编辑源文件替换为清华源# 用vim编辑源文件若没有vim先执行 sudo apt install -y vimsudovim/etc/apt/sources.list清空原有内容粘贴以下清华源对应Ubuntu 22.04其他版本可去清华源官网替换deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy main restricted universe multiverse deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-updates main restricted universe multiverse deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-backports main restricted universe multiverse deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-security main restricted universe multiverse更新缓存加载新源sudoaptupdate2.2.2 apt核心命令必记# 安装软件自动解决依赖sudoaptinstall-y 软件名# 卸载软件不卸载依赖sudoaptremove -y 软件名# 卸载软件同时卸载依赖配置文件彻底删除sudoaptpurge -y 软件名# 更新所有已安装软件sudoaptupgrade -y# 搜索软件sudoaptsearch 软件名# 清理无用依赖卸载软件后清理残留的依赖包sudoaptautoremove -y注意Ubuntu的apt命令需要加sudo管理员权限否则会报错autoremove命令可以定期执行清理系统残留释放磁盘空间。2.3 常见问题排查避坑重点换源后报错“无法连接仓库”检查网络是否正常确认源文件的版本和自己的Linux发行版一致比如CentOS 7不能用CentOS 8的源安装时提示“没有可用软件包”用yum search或apt search确认软件名是否正确Linux软件名区分大小写缓存报错重新执行yum makecache或apt update清理缓存后再尝试。三、离线安装rpm/deb包实操无网环境必备很多时候服务器处于内网环境没有外网权限无法使用yum/apt在线安装这时候就需要用「离线包安装」——先在有网的机器上下载好rpmCentOS或debUbuntu包再拷贝到内网服务器安装。3.1 CentOSrpm包离线安装3.1.1 核心命令必记# 安装rpm包注意不会自动解决依赖需手动处理依赖rpm-ivh 软件包名.rpm# 卸载rpm包rpm-e 软件包名# 查看已安装的rpm包rpm-qa|grep软件包名# 查看rpm包的依赖关系rpm-qR 软件包名.rpm3.1.2 实操案例安装nginx rpm包有网机器下载nginx rpm包推荐从阿里云镜像站下载对应CentOS版本用U盘或远程拷贝如scp将rpm包传到内网CentOS服务器执行安装命令# 安装nginx rpm包rpm-ivh nginx-1.24.0-1.el7.x86_64.rpm3.1.3 依赖问题解决重点难点rpm安装最大的问题是「无法自动解决依赖」若提示“缺少xxx依赖包”解决方案有2种手动下载所有缺少的依赖包按顺序安装依赖包也需要rpm格式用yum localinstall命令推荐该命令会自动查找本地rpm包的依赖若本地有依赖包直接安装若无会提示适合内网有本地仓库的场景yum localinstall -y nginx-1.24.0-1.el7.x86_64.rpm3.2 Ubuntudeb包离线安装3.2.1 核心命令必记# 安装deb包不会自动解决依赖sudodpkg -i 软件包名.deb# 卸载deb包sudodpkg -r 软件包名# 彻底卸载deb包删除配置文件sudodpkg -P 软件包名# 查看已安装的deb包dpkg -l|grep软件包名# 解决deb包依赖问题关键sudoapt-finstall-y3.2.2 实操案例安装chrome deb包有网机器下载chrome deb包拷贝到内网Ubuntu服务器执行安装命令# 安装chrome deb包sudodpkg -i google-chrome-stable_current_amd64.deb# 若提示缺少依赖执行以下命令自动修复sudoapt-finstall-y重点Ubuntu的deb包安装后若有依赖缺失直接执行sudo apt -f install -y系统会自动下载并安装缺少的依赖比rpm包的依赖处理更简单。四、源码安装make make install 实操以Redis为例有些软件的最新版本官方只提供源码包.tar.gz格式没有rpm/deb包也无法通过yum/apt安装这时候就需要「源码编译安装」——手动编译源码生成可执行文件再安装到系统中。源码安装的核心流程解压源码包 → 配置编译参数 → 编译源码 → 安装软件即tar → ./configure → make → make install。4.1 实操案例源码安装Redis通用流程其他软件可参考4.1.1 前提准备安装编译依赖源码编译需要用到gcc编译器若系统没有先在线安装有网环境# CentOS安装gccyuminstall-y gcc gcc-c# Ubuntu安装gccsudoaptinstall-y gcc g4.1.2 第一步下载并解压Redis源码包# 下载Redis源码包官网最新版本可替换为自己需要的版本wgethttps://download.redis.io/releases/redis-7.2.4.tar.gz# 解压源码包解压到当前目录tar-zxvf redis-7.2.4.tar.gz# 进入解压后的目录cdredis-7.2.44.1.3 第二步配置编译参数./configure# 配置编译参数默认配置安装到/usr/local/redis目录./configure --prefix/usr/local/redis说明--prefix指定安装目录若不指定默认安装到/usr/local/bin目录若配置报错大概率是缺少编译依赖重新安装gcc即可。4.1.4 第三步编译源码make# 编译源码将源码编译为可执行文件make注意编译过程中若出现“error”说明编译失败大概率是依赖缺失或源码包损坏若出现“warning”一般不影响可以继续。4.1.5 第四步安装软件make install# 安装编译好的软件将可执行文件复制到指定的安装目录makeinstall4.1.6 第五步验证安装是否成功# 进入安装目录的bin目录cd/usr/local/redis/bin# 启动Redis验证可执行文件是否正常./redis-server若能正常启动Redis说明源码安装成功后续可配置Redis为系统服务实现开机自启此处不展开感兴趣的朋友可以评论区留言后续单独出教程。4.2 源码安装常见问题执行./configure报错缺少gcc编译器安装gcc即可make编译报错源码包损坏重新下载源码包或缺少对应依赖根据报错信息安装依赖安装后找不到可执行文件忘记指定--prefix可执行find / -name 软件名查找或重新安装并指定安装目录。五、总结本文围绕Linux软件安装与包管理讲解了三大核心场景在线安装CentOS的yum/dnf、Ubuntu的apt重点是换国内源解决访问慢的问题离线安装rpmCentOS、debUbuntu重点是处理依赖问题源码安装以Redis为例讲解了tar → ./configure → make → make install的完整流程适合安装无包管理的软件。其实Linux包管理并不难核心就是“解决依赖”——在线安装自动解决离线安装手动/半自动解决源码安装提前准备依赖。记住本文的实操命令和避坑点以后不管遇到哪种安装场景都能轻松搞定。好了以上就是本文的全部内容。如果对你有帮助记得点赞收藏关注我是予枫专注分享Linux、Python相关实操教程下期再见

相关新闻

知识库投喂:如何构建与优化AI的核心大脑

知识库投喂:如何构建与优化AI的核心大脑

人工智能系统构建与应用时,知识库起着核心“大脑”作用。它不是静态数据库,是精心设计、持续喂养且动态优化的智能信息体。把海量、多源、异构数据转化成机器可理解利用知识的过程,业界常形象称作“知识库投喂”。其质量直接决定后续AI模型在…

2026/7/4 23:57:05 阅读更多 →
基于Spring Boot的企业数据资产登记系统

基于Spring Boot的企业数据资产登记系统

🍅 作者主页:Selina .a 🍅 简介:Java领域优质创作者🏆、专注于Java技术领域和学生毕业项目实战,高校老师/讲师/同行交流合作。 主要内容:SpringBoot、Vue、SSM、HLMT、Jsp、PHP、Nodejs、Python、爬虫、数据…

2026/7/5 16:31:03 阅读更多 →
第九章-数字三角形

第九章-数字三角形

数字三角形问题给定一个数字三角形(通常是一个二维数组或类似结构),例如:73 88 1 02 7 4 4 4 5 2 6 5你从顶部出发,每次可以向下走左下或右下的相邻数字,到达底部,求出从顶部到底部的路径上数字…

2026/5/17 3:14:09 阅读更多 →

最新新闻

UI自动化测试实战指南:从原理到工具选型与Selenium项目搭建

UI自动化测试实战指南:从原理到工具选型与Selenium项目搭建

1. 从“点点点”到“自动跑”:UI自动化测试到底是什么? 如果你是一名软件测试工程师,或者正在学习软件测试,那么“UI自动化测试”这个词你一定不陌生。它听起来很高大上,似乎充满了技术感,但它的本质其实很…

2026/7/6 9:55:12 阅读更多 →
SpringBoot+Vue2办公系统源码包:含审批流、日志填报、会议室预约与RBAC权限控制

SpringBoot+Vue2办公系统源码包:含审批流、日志填报、会议室预约与RBAC权限控制

本文还有配套的精品资源,点击获取 简介:开箱即用的轻量级OA系统,后端用SpringBoot 2.x MyBatis MySQL,前端基于Vue 2.6 Element UI构建,适配毕业设计和中小团队内部管理场景。功能覆盖公告管理、文件收发与档案归…

2026/7/6 9:55:12 阅读更多 →
JMeter录制脚本全攻略:从零搭建性能测试自动化流水线

JMeter录制脚本全攻略:从零搭建性能测试自动化流水线

1. 项目概述:为什么录制脚本是性能测试的“临门一脚” 刚接触性能测试的新手,常常会卡在第一步:脚本怎么写?手动在JMeter里一个个添加HTTP请求,配置参数、头信息,不仅效率低下,还容易出错&#…

2026/7/6 9:53:09 阅读更多 →
从零搭建可私有化部署的AI Agent:Hermes三层记忆架构与实战指南

从零搭建可私有化部署的AI Agent:Hermes三层记忆架构与实战指南

🚀 30款热门AI模型一站整合,DeepSeek/GLM/Qwen 随心用,限时 5 折。 👉 点击领海量免费额度 最近在尝试将 AI Agent 从“玩具”升级为“生产力工具”时,发现了一个普遍痛点:很多教程要么停留在概念和 API…

2026/7/6 9:53:09 阅读更多 →
Python+Selenium UI自动化测试框架搭建:从PO模式到Pytest实战

Python+Selenium UI自动化测试框架搭建:从PO模式到Pytest实战

1. 项目概述与核心价值 最近在团队里做技术复盘,发现很多测试同学在尝试UI自动化时,总是一上来就埋头写脚本,结果代码越写越乱,维护成本高到离谱,最后项目不了了之。这让我想起几年前自己踩过的那些坑,所以…

2026/7/6 9:49:00 阅读更多 →
Kimi    LeetCode 3495. 使数组元素都变为零的最少操作次数 Rust实现

Kimi LeetCode 3495. 使数组元素都变为零的最少操作次数 Rust实现

这是 LeetCode 3495 的 Rust 实现。题目理解- 每个查询 [l, r] 定义数组 nums [l, l1, ..., r] - 每次操作选两个数 a, b,替换为 ⌊a/4⌋ 和 ⌊b/4⌋ - 求将所有元素变为 0 的最少操作次数核心思路一个数 x 变为 0 需要的操作次数是满足 4^p > x 的最小 p&#…

2026/7/6 9:49:00 阅读更多 →

日新闻

H2 与 MySQL 单元测试兼容性:5 个关键 SQL 语句差异与规避方案

H2 与 MySQL 单元测试兼容性:5 个关键 SQL 语句差异与规避方案

H2与MySQL单元测试兼容性:5个关键SQL语句差异与规避方案1. 单元测试中的数据库兼容性挑战在Java开发领域,单元测试是保证代码质量的重要环节。当应用涉及数据库操作时,测试环境的搭建往往成为开发者的痛点。H2数据库因其轻量级、内存模式和快…

2026/7/6 0:01:17 阅读更多 →
Windows任务栏终极清理指南:用RBTray一键隐藏窗口到系统托盘

Windows任务栏终极清理指南:用RBTray一键隐藏窗口到系统托盘

Windows任务栏终极清理指南:用RBTray一键隐藏窗口到系统托盘 【免费下载链接】rbtray A fork of RBTray from http://sourceforge.net/p/rbtray/code/. 项目地址: https://gitcode.com/gh_mirrors/rb/rbtray 你是否厌倦了Windows任务栏上密密麻麻的图标&…

2026/7/6 0:01:17 阅读更多 →
Visual C++ 运行时库一键安装终极指南:告别DLL缺失烦恼

Visual C++ 运行时库一键安装终极指南:告别DLL缺失烦恼

Visual C 运行时库一键安装终极指南:告别DLL缺失烦恼 【免费下载链接】vcredist AIO Repack for latest Microsoft Visual C Redistributable Runtimes 项目地址: https://gitcode.com/gh_mirrors/vc/vcredist 你是否曾经遇到过这样的情况:下载了…

2026/7/6 0:05:19 阅读更多 →

周新闻

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容 【免费下载链接】BiliTools A cross-platform bilibili toolbox. 跨平台哔哩哔哩工具箱,支持下载视频、番剧等等各类资源 项目地址: https://gitcode.com/GitHub_Trending/bilit/BiliTools …

2026/7/6 8:11:50 阅读更多 →
威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型的陌生现状在忙碌疲惫的一天里,参与了关于混合后量子密码学的讨论,应付端点攻击找茬的人,还参与留言板讨论后,发现“威胁模型”对多数人仍是陌生概念,且多被当作时髦用语。有趣的相关画作有一幅由 Embyr 创作的…

2026/7/6 8:11:52 阅读更多 →
渗透测试入门指南:从零基础到实战环境搭建

渗透测试入门指南:从零基础到实战环境搭建

1. 从“看热闹”到“入门”:我理解的渗透测试到底是什么?每次看到新闻里说某个大公司的数据被“黑”了,或者某个网站被攻击导致服务瘫痪,你是不是和我一样,心里会冒出两个念头:一是“这黑客真厉害”&#x…

2026/7/6 6:52:56 阅读更多 →

月新闻