ARTICLE DETAIL

资讯详情

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

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

【Linux基础开发工具(一)】Linux包管理器与软件生态全解析:从国内镜像源到yum/apt实战 目录一、前言二、软件包管理器1.什么是软件包2.Linux软件生态1.Linux下载软件的过程Ubuntu、Centos、other2.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主要使⽤aptAdvanced Package Tool作为其包管理器。apt同样提供了⾃动解决依赖关系、下载和安装软件包的功能。2.Linux软件生态1.Linux下载软件的过程Ubuntu、Centos、other2.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 命令只筛选出我们关注的包.Centosyum list | grep 包Ubuntuapt 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-discusslists.ubuntu.com Original-Maintainer: Martin A. Godisch godischdebian.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.卸载软件包# Centos1sudo yum remove [-y] 包# Ubuntusudo apt remove [-y] 包4.软件依赖问题什么是软件依赖一个程序很少是完全自包含的。它通常会调用系统提供的动态链接库Linux 下.soWindows 下.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卸载这些命令虽然简单但却是日常运维中使用频率最高的操作。如果这篇文章对你有帮助不妨点赞、收藏、关注三连支持一下你的鼓励是我持续更新的最大动力我们下篇见
返回列表