【Linux 系统篇(六)】基础开发工具(一) —— 软件安装完全指南

作者:Huangjin007_日期:2026/7/24

大家好,欢迎来到 huangjin007_ 的博客
个人主页:huangjin007_
🔥 文章收录专栏:Linux 内功修炼手册(系统篇)

总会有一些坚持 能从冰封的土地里 培育出十万朵怒放的蔷薇


Linux 系统篇(六) —— 软件安装完全指南

文章目录

  • Linux 系统篇(六) —— 软件安装完全指南
    • 1. 软件包管理器
      • 1.1 什么是软件包?
        • 1.2 Linux 软件生态
        • 1.3 包管理器具体操作
          • 1.3.1 查看软件包(搜索)
            * 1.3.2 安装软件
            * 1.3.3 卸载软件
        • 1.4 安装源
    • 2. Linux 软件安装的演进与核心思想
      • 2.1 三种安装方式
        • 2.2 为什么需要包管理器?
        • 2.3 权限与系统全局安装
    • 结语:

1. 软件包管理器

1.1 什么是软件包?

如果你准备自己组装一台电脑。这时你需要买来 CPU、主板、内存、硬盘等各种零件,对着说明书一步步安装——这就是 Linux 下源码编译安装软件的原始方式:下载程序的源代码,然后执行配置、编译、安装等步骤,最终得到可执行程序。

这种方式虽然灵活,但对使用者要求很高。

为了让安装软件变得简单,一些热心的社区维护者和大神们,提前把常用的软件编译好,并且按照一定的规范打包成一个“压缩包”,这个压缩包不仅包含编译好的程序文件,还记录了软件的版本、依赖关系、安装路径等信息。这样一个封装好的整体,就叫做软件包(可以类比成 Windows 上的 .exe 安装程序)。

软件包被集中存放在专门的服务器上,供用户下载。而负责管理和操作这些软件包的工具,就是软件包管理器

我们可以用一个类比来理解二者的关系:

  • 软件包 相当于手机上的一个 App
  • 软件包管理器 就相当于手机上的 应用商店

通过应用商店,你可以搜索、一键安装、升级和卸载 App,完全不用关心 App 内部的文件结构。同样,有了包管理器,你只需要几条简单的命令,就能自动完成软件的下载、依赖检查和安装。

  • yum(Yellow dog Updater, Modified)是Linux下非常常常用的一种包管理器。主要应用在Fedora,RedHat, Centos等发行版上.
  • Ubuntu:主要使用apt(Advanced Package Tool)作为其包管理器。apt同样提供了自动解决依赖关系、下载和安装软件包的功能。

1.2 Linux 软件生态

软件从哪里来?

一个软件的诞生路径大致是这样的:

  1. 开发者 写出源代码并开源(比如在 GitHub 上发布)。
  2. 操作系统发行版社区(如 CentOS 社区、Ubuntu 社区)的维护者,会挑选稳定版本的源码,根据自己系统的规范编译成二进制的软件包,并放入“软件仓库”。
  3. 最终用户 使用包管理器,从软件仓库中下载并安装这些编译好的软件包。

一个操作系统的好坏,看什么?

评价 Linux 发行版时,我们通常会关注两点:内核版本社区生态

  • 内核版本决定了系统支持的新硬件和底层技术。
  • 社区生态则决定了你能用多少软件、遇到问题能否快速找到答案。丰富的文档、活跃的论坛、海量的软件仓库。这也解释了为什么 Ubuntu 和 CentOS 能成为服务器领域的宠儿——它们背后有庞大的社区和商业支持。

软件包依赖问题

在实际安装中,一个软件往往需要其他软件或库才能运行。这些被需要的软件,就叫做“依赖”。

包管理器最大的价值之一,就是自动解决依赖关系。它会递归检查所有依赖项,一并下载安装,并确保各个软件包的版本兼容,让你一条命令就搞定所有。

国内镜像源

官方软件仓库的服务器大多在国外,在国内直接下载速度很慢。为了解决这个问题,国内许多公司和高校建立了镜像站,它们会定期与官方仓库同步,然后在国内提供高速下载通道。

下面是一些常用且稳定的国内镜像站:

  1. 阿里云官方镜像站
  2. 清华大学开源软件镜像站(TUNA)
  3. 中国科学技术大学开源镜像站(USTC)
  4. 中国科学院软件研究所镜像站(ISCAS)
  5. 上海交通大学开源镜像站
  6. 网易开源镜像站

在实际使用中,我们可能还需要扩展源(EPEL)。EPEL 是 Extra Packages for Enterprise Linux 的缩写,它为 Red Hat 系列系统提供了大量官方基础源里没有的额外软件包。

1sudo yum install -y epel-release   # CentOS 下安装 EPEL 扩展源
2

1.3 包管理器具体操作

下面我们通过实际例子,来掌握最常用的软件管理操作。无论你用的是 CentOS 还是 Ubuntu,思路完全一致,只是命令稍有不同。所有操作都需要确保网络畅通,可以提前用 ping -c3 www.baidu.com 验证。

1.3.1 查看软件包(搜索)

CentOS (yum)

1yum list | grep lrzsz
2

这条命令会列出当前系统中所有可用的软件包,然后用管道 | 交给 grep 进行过滤,只显示包含 “lrzsz” 的行。

Ubuntu (apt)

1apt search lrzsz
2

它会进行全文搜索,列出所有匹配项,并用简介说明功能。如果想查看某个包的详细信息,可以使用:

1apt show lrzsz
2

会输出版本、依赖、维护者、描述等完整信息,帮助你判断是否需要安装。

1.3.2 安装软件

安装软件只需记住一条命令。

CentOS

1sudo yum install -y lrzsz
2
  • sudo 表示以超级管理员权限执行。
  • -y 参数的作用是自动对所有确认提示回答 “yes”。

Ubuntu

1sudo apt install -y lrzsz
2

注意事项

  • 安装软件时需要 root 权限,普通用户必须加 sudo 或直接切换到 root 账户。
  • 同一时间不能同时运行两个包管理器进程。如果你在一个终端里执行 yum install,还没结束就打开另一个终端再执行 yum install,第二个会报错提示锁被占用。apt 同理。
1.3.3 卸载软件

不需要某个软件时,同样用一行命令完成卸载。

CentOS

1sudo yum remove lrzsz
2

加上 -y 可以跳过确认:

1sudo yum remove -y lrzsz
2

Ubuntu

1sudo apt remove lrzsz
2

1.4 安装源

包管理器怎么知道该去哪个网址下载软件包?

CentOS 安装源路径

CentOS 的 yum 源配置位于目录 /etc/yum.repos.d/ 下,每个 .repo 文件代表一个仓库。

1$ ls /etc/yum.repos.d/
2CentOS-Base.repo    # 基础源(官方核心软件)
3epel.repo           # 扩展源(额外软件,需手动安装epel-release包生成)
4

Ubuntu 安装源路径

Ubuntu 使用 apt 管理软件,主源配置文件为:

1/etc/apt/sources.list
2

此外,也可以在 /etc/apt/sources.list.d/ 目录下添加额外的 .list 文件,作为扩展源。

查看主源文件:

1$ cat /etc/apt/sources.list
2

更新安装源信息

下面以修改yum源为例:

  • 备份原始yum源配置文件:
  • 下载新的yum源配置文件:
  • 清空缓存然后重新生成缓存:
1yum clean all
2yum makecache
3
  • 更新系统软件包:
1yum update
2

对于云服务器,通常服务商已经默认将源配置为国内地址(比如阿里云 ECS 内部会自动使用阿里内部源),一般不需要我们手动更换。


2. Linux 软件安装的演进与核心思想

2.1 三种安装方式

  1. 源码编译安装
    最原始的方式,优点是可以自定义编译选项、优化性能;缺点是需要手动解决所有依赖,对新手极不友好。
  2. 裸软件包安装
    将编译好的程序打包成 .rpm(Red Hat 系)或 .deb(Debian 系)格式。优点是省去了编译过程,但依赖关系仍然需要用户自己处理。假如你下载了一个 rpm 包并执行 rpm -ivh package.rpm,很可能会报错“缺少依赖 xxx”,然后你不得不去寻找那个缺失的包,很可能再次遇到新的依赖,陷入死循环。
  3. 包管理器安装(yum、apt)
    自动解决依赖关系,一键式安装,是目前最主流的方式。包管理器背后连接着联网的软件仓库,它能自动计算出所有需要的依赖包,统一下载安装,同时还会检查版本兼容性,避免冲突。

2.2 为什么需要包管理器?

手动安装的痛点可总结为两个词:依赖缺失版本冲突。包管理器完美地解决了这两个问题。此外,它还能:

  • 统一管理已安装的软件,方便升级和卸载
  • 验证软件包的来源和完整性,安全可靠
  • 批量操作,自动化运维的基础

2.3 权限与系统全局安装

在 Linux 下,软件通常安装到诸如 /usr/bin/usr/lib 等系统核心目录下。这些目录只有 root 超级管理员才有写权限。因此,执行 installremove 等操作时,必须加上 sudo 或切换至 root 用户。


结语:

今天的内容到这里就结束了,希望你能有所收获~

干货整理到手抖,觉得有用的话,赏个三连回回血?__(:ᗤ」ㄥ)_ _


【Linux 系统篇(六)】基础开发工具(一) —— 软件安装完全指南》 是转载文章,点击查看原文


相关推荐


【Python学习】(认识函数、列表、元组、字典与文件核心知识要点)
承渊政道2026/7/16

🔥承渊政道:个人主页 ❄️个人专栏: 《C语言基础语法知识》 《数据结构与算法》 《C++知识内容》 《Linux系统知识》 《算法刷题指南》 《测评文章活动推广》 《大模型语言路线学习》 《MySQL数据库学习》 《Python知识内容》 ✨逆境不吐心中苦,顺境不忘来时路!✨ 🎬 博主简介: 在学习 Python 的过程中,掌握基础语法只是第一步,真正决定代码是否清晰、高效、易维护的,是对函数、列表、元组、字典以及文件操作等核心知识的理解


Java ActiveMQ 实战指南:从 JMS 队列、主题到 Spring Boot 消息处理
唐青枫2026/7/8

简介 ActiveMQ 是 Apache 提供的消息中间件。 它在 Java 生态里很常见,尤其是传统企业系统、老项目改造、JMS 规范相关系统中出现得比较多。 简单理解: 生产者 | v ActiveMQ Broker | v 消费者 ActiveMQ 最常见的使用方式是 JMS。 JMS 全称是 Java Message Service,它是一套 Java 消息服务 API 规范。 ActiveMQ 和 JMS 的关系可以类比成: JMS 是规范 ActiveMQ 是实现


SPI 加入 Apple,Swift 迈向自举 -- 肘子的 Swift 周报 #142
东坡肘子2026/6/30

SPI 加入 Apple,Swift 迈向自举 几天前,Swift Package Index(SPI)宣布已加入 Apple。双方将共同建设一个面向 Swift 开发者的综合 package registry;与此同时,SPI 现有的包发现、兼容性检查、文档托管等能力仍会继续提供,包作者在短期内也无需调整现有的发布流程。 这也让 #135⁠ 中“SwiftPM 才刚到第二章”的判断得到了新的注脚:CocoaPods 的退场只是把 SPM 推上了默认位置,而 SPI 加入 Apple,才真正揭开


@开发者,提前解锁 FORCE 原动力大会五大看点,限时赢取门票福利
火山引擎Agent社区2026/6/21

过去一年,AI 关注点不断变化,从大模型能力,进一步包括 Agent 能力。能力重点从“生成内容”转向“执行任务”,应用形态也从单点交互,走向多 Agent 协同和系统级运行。 对开发者来说,问题也变了:不只是模型选型,Agent 怎么设计、怎么跑稳、怎么进入真实业务系统,同样成为必须面对的课题。 围绕这些关键问题,我们梳理出 FORCE 原动力大会值得开发者关注的五大亮点。 Future|论坛前沿议题 获得 Agent 时代的技术坐标 Agent 的下一阶段竞争,不只是模型能力,更是系统能


初始化微信小程序
Oneslide2026/6/13

安装miniprogram-cli F:\business-system\weixin-app-order>npm install -g @wechat-miniprogram/miniprogram-cli npm warn deprecated inflight@1.0.6: This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tes


我做了一面互联网摸鱼墙:从无限 Canvas 到本地生产环境
戈德斯文2026/6/6

最近,我做了一个叫「摸鱼表格」的小项目。 它看起来像表格,却没有表头、公式、筛选和工作任务。这里有的,只是一面可以无限拖动、缩放和探索的公共格子墙。 任何人都能选一个空格,写下一句话、一个突然冒出的想法,或者把它当成临时树洞。 项目已经可以直接体验: moyu-table.tangyuan.art 这篇文章不只展示成品。我想完整复盘一次:一个看似简单的互动想法,如何逐步变成拥有数据库、登录、部署、备份和公网入口的产品。 一、它像表格,但这里没有标准答案 传统表格围绕效率组织信息:表头定义含义


Gateway 鉴权场景:网关统一鉴权 + 业务应用决定放行规则
超梦dasgg2026/5/30

目录 一、核心设计原则(一句话总结) 二、具体实现方案(最主流、最推荐) 1. 整体流程 2. 具体技术实现(Spring Cloud Gateway 为例) (1)业务服务:定义注解 + 扫描接口路由 (2)业务服务:启动时自动上报路由权限规则 (3)Gateway:拉取规则 + 全局过滤器统一鉴权 三、更轻量的简化方案(中小型项目常用) 四、为什么要这么设计?(面试加分回答) 五、面试标准回答(你可以直接背) 总结 这是微服务架构中最标准、最常用的鉴权方案:G


保姆级教程:零成本在本地跑AI大模型_Ollama
凤年徐2026/5/8

保姆级教程:零成本在本地跑 AI 大模型——Ollama 从安装到实战 手把手教你,用自己的电脑跑起来满血版 Qwen/DeepSeek/Llama,不需要 API Key,不需要云服务器 预计完成时间: 2-3 小时 所需技能: 会用命令行(3条命令够了) 适合人群: 想玩 AI 大模型但不想花钱、担心隐私泄露、喜欢折腾的同学 前言:为什么要在本地跑大模型? 用过 ChatGPT、DeepSeek 的同学应该知道,每次调用都是要花钱的——DeepSeek-V3 每次 A


我让 AI 当了回老师,把 Claude Code 从头到尾盘了一遍 🔥
LinDaiDai_霖呆呆2026/4/29

前言 你盼世界,我盼望你无bug。Hello 大家好,我是霖呆呆! 最近尝试在用 Claude Code 写项目,建仓库、修 bug、代码审查什么的都用它。但说实话,用是用了,总感觉自己就是个"面向弹窗编程"选手 —— 它弹窗我就点确认,它问我就说好,至于它到底是怎么运作的?权限模式有几种?Hooks 能干嘛?emmm...😅 直到我发现三元写了个 skill(名为 sigma) ,安装完后在 claudeCode 里使用 /sigma 你想学习的知识 命令,它就能变身 AI 1v1 家教,


拒绝低效!这款神器,让你的终端效率起飞 | 深度解析 fzf 终极指南
GetcharZp2026/4/20

还在手动敲 cd 和 ls?还在繁琐的 history 中翻找命令?是时候换个方式工作了。一篇文章带你彻底掌握命令行模糊找回神器 fzf,从安装到进阶玩法,助你效率翻倍! 身为开发者,我们每天大部分的时间都花在了终端(Terminal)里。不论是切换目录、搜索文件,还是翻阅历史命令,这些细碎的操作如果效率低下,积少成多便会吞噬掉大量专注力。 你是否也曾经历过: 想找一个深层目录下的文件,却记不清完整路径,只能不断 ls 确认? 按 Ctrl+R 搜索历史命令,结果搜出来的不是自己想要的?

首页编辑器站点地图

本站内容在 CC BY-SA 4.0 协议下发布

Copyright © 2026 聚合阅读