拓十年匠心定制 · 商业建站与技术教学双线并行 咨询热线:400-886-1026 service@lmnt.cn
ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

【Linux基础开发工具(一)】Linux包管理器与软件生态全解析:从国内镜像源到yum/apt实战

【Linux基础开发工具(一)】Linux包管理器与软件生态全解析:从国内镜像源到yum/apt实战

目录

一、前言

二、软件包管理器

1.什么是软件包

2.Linux软件生态

1.Linux下载软件的过程(Ubuntu、Centos、other)

2.Linux软件包生态问题

1. 操作系统自身(内核与基础架构)

2. 软件体系(应用生态)

3. 官网文档(开发与使用指南)

4. 社区论坛(用户互助与氛围)

5. 维护更新速度(生命周期与信任度)

6. 富有针对性的客户群体(市场定位)

3.yum/apt的具体操作

1.搜索软件包

2.安装软件包

3.卸载软件包

4.软件依赖问题

​编辑

4.安装源

提问:在使用yum/apt安装软件时,它们是怎样找到目标软件包的具体位置的?

三、小结


一、前言

以下是⼀些国内Linux软件安装源的官⽅链接[由⽂⼼⼀⾔⽣成]:
1.阿⾥云官⽅镜像站
官⽅链接:https://developer.aliyun.com/mirror/
阿⾥云提供了丰富的Linux发⾏版镜像,包括CentOS、Ubuntu、Debian等,⽤⼾可
以通过该镜像站快速下载和更新软件包。
2.清华⼤学开源软件镜像站
官⽅链接:https://mirrors.tuna.tsinghua.edu.cn/
清华⼤学镜像站提供了多种Linux发⾏版的镜像,以及Python、Perl、Ruby等编程语
⾔的扩展包。该镜像站还提供了丰富的⽂档和教程,帮助⽤⼾更好地使⽤这些软件
包。
3.中国科学技术⼤学开源镜像站
官⽅链接:http://mirrors.ustc.edu.cn/
中科⼤镜像站提供了多种Linux发⾏版的镜像,以及常⽤的编程语⾔和开发⼯具。⽤⼾
可以通过该镜像站⽅便地获取所需的软件包和⼯具。4.北京交通⼤学⾃由与开源软件镜像站
官⽅链接:https://mirror.bjtu.edu.cn/
北交⼤镜像站提供了多种Linux发⾏版的镜像,以及相关的软件仓库和⼯具。该镜像站
还提供了详细的⽂档和指南,帮助⽤⼾配置和使⽤这些软件源。
5.中国科学院软件研究所镜像站(ISCAS)
官⽅链接:http://mirror.iscas.ac.cn/
ISCAS镜像站提供了多种Linux发⾏版、编程语⾔和开发⼯具的镜像。⽤⼾可以通过该
镜像站快速获取所需的软件包和更新。
6.上海交通⼤学开源镜像站
官⽅链接:https://ftp.sjtu.edu.cn/
上海交⼤镜像站提供了丰富的Linux软件资源,包括多种发⾏版的镜像和软件仓库。⽤
⼾可以通过该镜像站⽅便地下载和安装所需的软件包。
7.⽹易开源镜像站
官⽅链接:http://mirrors.163.com/
⽹易镜像站提供了多种Linux发⾏版的镜像,以及相关的软件仓库和⼯具。该镜像站还
提供了便捷的搜索功能,帮助⽤⼾快速找到所需的软件包。
此外,还有⼀些其他的国内镜像源,如搜狐开源镜像站等,但可能由于时间变化或政策调
整,部分镜像站的链接或状态可能有所变动。因此,建议⽤⼾在使⽤前访问官⽅⽹站或咨询
相关社区以获取最新的信息和帮助。

二、软件包管理器

1.什么是软件包

1.在Linux下安装软件, ⼀个通常的办法是下载到程序的源代码, 并进⾏编译, 得到可执⾏程序
但是这样太麻烦了, 于是有些⼈把⼀些常⽤的软件提前编译好, 做成软件包(可以理解成windows上
的安装程序)放在⼀个服务器上, 通过包管理器可以很⽅便的获取到这个编译好的软件包, 直接进⾏安。
2.软件包和软件包管理器, 就好⽐ "App" 和 "应⽤商店" 这样的关系。
3.yum(Yellow dog Updater, Modified)是Linux下⾮常常⽤的⼀种包管理器. 主要应⽤在Fedora,
RedHat, Centos等发⾏版上。
4.Ubuntu:主要使⽤apt(Advanced Package Tool)作为其包管理器。apt同样提供了⾃动解决依
赖关系、下载和安装软件包的功能。

2.Linux软件生态

1.Linux下载软件的过程(Ubuntu、Centos、other)

2.Linux软件包生态问题

评判一个操作系统的好坏,核心是看这个操作系统的生态是否完整。

操作系统生态包含哪些部分?

1. 操作系统自身(内核与基础架构)

这是生态的基石。

  • 核心内容:内核的稳定性、性能、安全性、硬件兼容性(驱动支持)、资源调度能力等。

  • 说明:操作系统本身如果不稳定、漏洞百出或对硬件支持极差,整个生态就无从谈起。它是支撑起上层建筑的地基。例如,Windows的易用性、macOS的软硬结合、Linux的开源与高度可定制,构成了各自生态的底色。

2. 软件体系(应用生态)

这是决定用户是否愿意使用该操作系统的核心驱动力。

  • 核心内容:办公软件、游戏、开发工具、行业专业软件等。

  • 说明:用户买电脑/服务器不是为了用操作系统本身,而是为了用上面的软件。著名的例子是微软的Windows Phone,它失败的核心原因就是软件体系贫瘠(缺少主流App),导致用户流失。反之,Windows和Android之所以强大,正是因为它们拥有海量的软件支持。

3. 官网文档(开发与使用指南)

这是连接系统与开发者的桥梁。

  • 核心内容:API文档、系统架构说明、最佳实践教程、故障排查手册等。

  • 说明:高质量的官方文档可以极大降低开发者的学习门槛,吸引更多人基于该系统开发软件,从而反哺“软件体系”。例如,Apple和微软的开发者文档极其详尽,这保证了第三方开发者的开发效率。

4. 社区论坛(用户互助与氛围)

这是生态的活水与黏合剂。

  • 核心内容:开发者问答、用户经验分享、开源社区、Bug反馈、技术讨论等。

  • 说明:官网文档通常是冰冷和官方的,而社区(如Stack Overflow、Reddit、国内的各种开发者社区)提供的是实战经验的交流。一个活跃的社区能快速解决问题,甚至反向推动系统迭代。Linux生态的繁荣,很大程度上得益于其极其庞大和活跃的开源社区(如Arch Wiki)。

5. 维护更新速度(生命周期与信任度)

这是用户和开发者安全感的来源。

  • 核心内容:系统补丁发布频率、漏洞修复速度、大版本迭代节奏、长期支持(LTS)策略等。

  • 说明:没有绝对安全的系统,只有不断修补的系统。如果更新太慢,会被黑客攻击和抛弃;更新太快,则可能导致系统不稳定,或者让开发者疲于适配。如何平衡“快速迭代”与“稳定可靠”,是操作系统维护的核心课题。

6. 富有针对性的客户群体(市场定位)

这是生态的指路明灯。

  • 核心内容:定位目标用户(如服务器运维、游戏玩家、设计师、办公白领、嵌入式设备等)。

  • 说明:没有任何一个操作系统能满足所有人。Windows主打大众办公与游戏,macOS主打创意设计与开发者,Linux主打服务器与极客,鸿蒙(HarmonyOS)主打万物互联。精准的客户群体定位,决定了系统该优先发展什么软件、提供什么样的文档、以及如何制定更新策略。

3.yum/apt的具体操作

1.搜索软件包

通过 yum list 命令可以罗列出当前⼀共有哪些软件包. 由于包的数⽬可能⾮常之多, 这⾥我们需要使⽤ grep 命令只筛选出我们关注的包.
Centos:
yum list | grep 包
Ubuntu:
apt search 包
# Centos $ yum list | grep lrzsz lrzsz.x86_64 0.12.20-36.el7 @base # Ubuntu $ apt search lrzsz Sorting... Done Full Text Search... Done cutecom/focal 0.30.3-1build1 amd64 Graphical serial terminal, like minicom lrzsz/focal,now 0.12.21-10 amd64 [installed] Tools for zmodem/xmodem/ymodem file transfer $ apt show lrzsz Package: lrzsz Version: 0.12.21-10 Priority: optional Section: universe/comm Origin: Ubuntu Maintainer: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com> Original-Maintainer: Martin A. Godisch <godisch@debian.org> ...
注意事项:
软件包名称: 主版本号.次版本号.源程序发⾏号-软件包的发⾏号.主机平台.cpu架构。
"x86_64" 后缀表⽰64位系统的安装包, "i686" 后缀表⽰32位系统安装包. 选择包时要和系统匹配。
"el7" 表⽰操作系统发⾏版的版本. "el7" 表⽰的是 centos7/redhat7. "el6" 表⽰ centos6/redhat6。
最后⼀列, base 表⽰的是 "软件源" 的名称, 类似于 "⼩⽶应⽤商店", "华为应⽤商店" 这样的概念。
Ubuntu 有上述有详细介绍。

2.安装软件包

# Centos
$ sudo yum install -y 包
# Ubuntu
$ sudo apt install -y 包
yum/apt 会⾃动找到都有哪些软件包需要下载, 这时候敲 "y" 确认安装。
出现 "complete" 字样或者中间未出现报错, 说明安装完成。

3.卸载软件包

# Centos
1sudo yum remove [-y] 包
# Ubuntu
sudo apt remove [-y] 包

4.软件依赖问题

什么是软件依赖?

一个程序很少是完全自包含的。它通常会:

  • 调用系统提供的动态链接库(Linux 下.so,Windows 下.dll)

  • 依赖某个运行环境(如 Python、Java、.NET)

  • 依赖其他第三方库(如 OpenSSL、zlib、Qt)

  • 甚至依赖特定版本的编译器运行时

比如你在 Linux 上装一个nginx,它可能依赖libpcre、zlib、openssl等。如果这些库没装或版本不对,nginx就启动不了。

  • 包管理器yum、apt会自动下载并安装所有依赖,还会处理版本冲突。

4.安装源

提问:在使用yum/apt安装软件时,它们是怎样找到目标软件包的具体位置的?

引出->配置文件:

安装软件前,系统里已经配置好了软件仓库(repo)。这些配置写在:

  • yum:/etc/yum.repos.d/下的.repo文件(稳定软件源和拓展软件源)

  • apt:/etc/apt/sources.list和/etc/apt/sources.list.d/下的文件

注意:拓展软件源默认没有安装,需要大家手动安装。

三、小结

到这里,关于Linux软件安装与包管理器的内容就告一段落啦!回顾一下,我们从国内常用的镜像源讲起,解决了“下载慢”的痛点;接着弄懂了软件包和包管理器的关系——yum和apt就像是Linux世界的“应用商店”,帮我们自动解决依赖、下载和安装。

更重要的是,我们深入探讨了操作系统生态的六大核心部分,明白了评判一个系统的好坏,绝不仅仅是看内核,更要看软件体系、社区、文档等全方位的建设。最后,我们还揭开了yum/apt“找包”的底层逻辑:仓库配置 + 元数据索引 + 相对路径拼接 = 最终下载地址。

当然,实战部分也不能少。yum list | grep搜索、yum install -y安装、yum remove卸载,这些命令虽然简单,但却是日常运维中使用频率最高的操作。

如果这篇文章对你有帮助,不妨点赞、收藏、关注三连支持一下,你的鼓励是我持续更新的最大动力!我们下篇见!

返回列表