Linux操作系统从入门到实战(六)Linux开发工具(上)详细介绍什么是软件包管理器,Linux下如何进行软件和软件包的安装、升级与卸载

06-02 1589阅读

Linux操作系统从入门到实战(六)Linux开发工具(上)详细介绍什么是软件包管理器,Linux下如何进行软件和软件包的安装、升级与卸载

  • 前言
  • 一、 软件包管理器
    • 1.1 传统安装方式的麻烦:从源代码说起
    • 1.2 软件包:把“乐高”提前拼好的成品
    • 1.3 包管理器:你的“软件应用商店”
    • 1.4 常见的“商店”:不同Linux系统的选择
    • 二、Linux下如何进行软件安装、升级、卸载
      • 1. 主流Linux发行版软件安装、升级、卸载
        • 1.1 Ubuntu/Debian系:APT
        • 1.2 CentOS/RHEL系:YUM与DNF
        • 1.3 其他发行版:
        • 2.软件包依赖:
          • 2.1 依赖管理的重要性
          • 2.2 常见依赖问题与解决方案
          • 3. 国内镜像源:
            • 3.1 为什么选择国内镜像源?
            • 3.2 主流国内镜像站推荐
            • 3.3 镜像源配置步骤(以Ubuntu、CentOS为例)
              • 3.3.1 Ubuntu/Debian系(以清华源为例)
                • 步骤1:备份原配置
                • 步骤2:替换为国内源(清华源)
                • 步骤3:更新软件源索引
                • 3.3.2 CentOS/RHEL系(以阿里云源为例)
                  • 步骤1:备份原配置(可选)
                  • 步骤2:替换为国内源(阿里云源)
                  • 步骤3:更新软件源缓存

                    前言

                    • 在前序博客中,我们系统讲解了 Linux 权限体系、基础操作指令,分步演示了 VMware 17 Pro 与 CentOS 9 Stream 的安装流程,并完成了 Vim 编辑器配置及 C++ 开发环境搭建。
                    • 本节博客将聚焦软件包管理体系,深入解析 Linux 环境下软件包的安装、升级及卸载机制,帮助读者掌握主流包管理工具的核心操作逻辑。

                      我的个人主页,欢迎来阅读我的其他文章

                      https://blog.csdn.net/2402_83322742?spm=1011.2415.3001.5343

                      我的Linux知识文章专栏

                      欢迎来阅读指出不足

                      https://blog.csdn.net/2402_83322742/category_12879535.html?spm=1001.2014.3001.5482


                      一、 软件包管理器

                      对于刚接触Linux的我们来说,理解软件包和包管理器可以从我们熟悉的手机或电脑使用经验入手。

                      • 比如大家在手机上装App,很少会自己编写代码,而是直接去应用商店搜索下载,Linux里的“软件包”就相当于手机里的App安装包,“包管理器”则像应用商店,帮我们快速找到并安装这些“App”。

                        1.1 传统安装方式的麻烦:从源代码说起

                        假设你想在Linux里装一个聊天软件,如果按照最原始的方法,需要先找到这个软件的“源代码”(就像一堆工程图纸),然后自己用编译工具把它“组装”成可以直接运行的程序。这个过程就像自己动手拼乐高:

                        1. 先要安装一堆编译工具(比如gcc、make),相当于准备好螺丝刀、胶水等工具;
                        2. 编译过程中可能会遇到各种“依赖问题”,比如软件需要某个版本的插件,但你的电脑里没有,就得先手动找插件、安装,否则就拼不起来;
                        3. 万一源代码有小错误,还得自己排查修改,对新手非常不友好。

                          这种方式就像“手动拼乐高”,虽然能学会原理,但太费时间,尤其对普通用户来说,只想快速用上软件,不想当“工程师”。

                          Linux操作系统从入门到实战(六)Linux开发工具(上)详细介绍什么是软件包管理器,Linux下如何进行软件和软件包的安装、升级与卸载

                        1.2 软件包:把“乐高”提前拼好的成品

                        Linux操作系统从入门到实战(六)Linux开发工具(上)详细介绍什么是软件包管理器,Linux下如何进行软件和软件包的安装、升级与卸载

                        于是有人想了个办法:把常用软件提前编译好,打包成一个“安装包”(类似Windows的.exe安装程序),里面不仅包含可直接运行的程序,还提前打包了它需要的所有“依赖插件”,就像工厂直接生产好的乐高成品套装。这个“安装包”就是软件包。

                        • 比如你想装微信Linux版,不需要自己编译,只要下载一个.deb或.rpm格式的软件包(不同Linux版本格式不同),告诉包管理器“我要装这个”,它就会帮你把软件放到合适的位置,连带着它需要的所有“零件”都装好,再也不用手动处理依赖问题。

                          1.3 包管理器:你的“软件应用商店”

                          Linux操作系统从入门到实战(六)Linux开发工具(上)详细介绍什么是软件包管理器,Linux下如何进行软件和软件包的安装、升级与卸载

                          有了软件包,还需要一个“商店”来管理它们——这就是包管理器。它的作用就像手机的应用商店:

                          1. 集中管理软件库:包管理器连接着官方或第三方的“软件仓库”,里面存着成千上万的软件包,你不需要自己去各个网站找安装包,直接在命令行输入软件名称(比如“微信”),包管理器就能从仓库里找到对应的安装包;
                          2. 自动解决依赖:比如你装A软件需要B插件,装B插件需要C库,包管理器会一次性把A、B、C都装好,不用你操心“先装谁”;
                          3. 方便升级和卸载:就像应用商店可以一键更新所有App,包管理器也能一键升级系统里的所有软件,或者彻底卸载某个软件,不会留下残留文件。

                          1.4 常见的“商店”:不同Linux系统的选择

                          不同的Linux“家族”(发行版)常用的“包管理器商店”不同:

                          Linux操作系统从入门到实战(六)Linux开发工具(上)详细介绍什么是软件包管理器,Linux下如何进行软件和软件包的安装、升级与卸载

                          • yum(代表系统:CentOS、RedHat、Fedora):比如你用的是CentOS系统,想装一个浏览器,打开终端输入sudo yum install firefox,yum就会从官方仓库下载Firefox的软件包并安装,全程自动。

                            Linux操作系统从入门到实战(六)Linux开发工具(上)详细介绍什么是软件包管理器,Linux下如何进行软件和软件包的安装、升级与卸载

                            • apt(代表系统:Ubuntu、Debian):如果你用Ubuntu,命令类似sudo apt install firefox,apt的优势是仓库更新快,对新手更友好,很多Linux服务器也常用它。

                              二、Linux下如何进行软件安装、升级、卸载

                              Linux操作系统从入门到实战(六)Linux开发工具(上)详细介绍什么是软件包管理器,Linux下如何进行软件和软件包的安装、升级与卸载

                              Linux生态的优越性,很大程度体现在软件包管理的成熟度上。一个优秀的操作系统,需具备:

                              1. 标准化的包格式(如Debian的.deb、RedHat的.rpm),确保软件分发的规范性;
                              2. 自动化依赖解析,避免手动处理复杂依赖关系;
                              3. 完善的软件仓库,提供海量预编译软件包,降低用户编译成本;
                              4. 便捷的版本控制,支持快速升级、降级或卸载,保障系统稳定性。

                              这些要素共同构成了操作系统的“软件生态基础设施”,而国内镜像源的建设,则进一步优化了这一基础设施的访问效率。

                              1. 主流Linux发行版软件安装、升级、卸载

                              1.1 Ubuntu/Debian系:APT

                              核心工具:apt-get/apt(命令行)、software-center(图形界面)

                              安装流程:

                              1. 更新软件源列表:sudo apt update,获取最新软件包索引;
                              2. 安装软件:sudo apt install ,自动解析并安装依赖;
                              3. 卸载软件:sudo apt remove (保留配置文件)或sudo apt purge (彻底删除);
                              4. 升级系统:sudo apt upgrade(单个软件)或sudo apt dist-upgrade(系统级升级)。

                              特色:支持“渐进式升级”,通过/etc/apt/sources.list配置国内镜像源(如清华源、阿里源),显著提升下载速度。

                              1.2 CentOS/RHEL系:YUM与DNF

                              核心工具:yum(CentOS 7及以下)、dnf(CentOS 8+)

                              安装流程:

                              1. 启用软件仓库:通过rpm -ivh安装repo文件,或直接编辑/etc/yum.repos.d/下的配置文件;
                              2. 安装软件:sudo yum install ,依赖问题由YUM自动处理;
                              3. 卸载软件:sudo yum remove ;
                              4. 升级系统:sudo yum update(全系统升级)或指定软件升级。

                              进化:CentOS 8引入的DNF(Dandified YUM)优化了依赖解析算法,支持并行下载,效率更高。

                              1.3 其他发行版:

                              • Arch系(Arch/Manjaro):使用pacman,强调“滚动更新”,通过pacman -S 安装,支持AUR(用户仓库)扩展生态;
                              • Gentoo:基于Portage,通过emerge编译安装,用户可自定义软件配置(如CPU优化、功能裁剪);
                              • SUSE:使用zypper,结合官方OBS仓库,适合企业级环境的稳定部署。

                                2.软件包依赖:

                                Linux操作系统从入门到实战(六)Linux开发工具(上)详细介绍什么是软件包管理器,Linux下如何进行软件和软件包的安装、升级与卸载

                                2.1 依赖管理的重要性

                                软件包通常依赖其他库或工具(如libc、GCC运行时),若依赖缺失或版本冲突,会导致安装失败或运行异常。包管理工具的核心价值,在于通过“依赖图”自动解析并安装所需组件。

                                2.2 常见依赖问题与解决方案

                                1. 依赖缺失:
                                  • 方案:通过包管理工具自动解决(如apt -f install修复破损依赖);
                                  • 特例:第三方软件可能需手动安装依赖(参考官方文档或使用容器化方案)。
                                  • 版本冲突:
                                    • 方案:使用apt policy 查看版本优先级,通过apt install =指定安装版本;
                                    • 进阶:利用Docker/Kubernetes等容器技术,实现“依赖隔离”。
                                    • 跨发行版依赖:
                                      • 挑战:Debian与RedHat系包格式不兼容;
                                      • 解决方案:使用通用二进制(如Go语言编译的可执行文件)、容器镜像,或通过alien工具转换包格式(非推荐)。

                                3. 国内镜像源:

                                3.1 为什么选择国内镜像源?

                                • 速度优势:直接从国内服务器下载,避免国际链路延迟;
                                • 稳定性:国内镜像站同步频率高(多数每日更新),减少“源不可用”问题;
                                • 本地化支持:部分镜像站提供中文文档(如清华源的详细配置指南)。

                                  3.2 主流国内镜像站推荐

                                  1. 阿里云镜像站(https://developer.aliyun.com/mirror/)

                                    • 特色:覆盖几乎所有主流Linux发行版(Ubuntu/CentOS/Arch等),支持Docker镜像、编程语言包(如PyPI/NPM),企业级稳定性。
                                    • 清华大学开源软件镜像站(https://mirrors.tuna.tsinghua.edu.cn/)

                                      • 特色:教育网用户友好,提供IPv4/IPv6双栈支持,镜像列表清晰,附带详细的配置教程(如如何替换系统默认源)。
                                      • 中国科学技术大学镜像站(http://mirrors.ustc.edu.cn/)

                                        • 特色:同步速度极快,支持反向代理(如npm、Maven中央仓库),适合开发者使用,提供多线路解析(教育网/电信/联通)。
                                        • 北京交通大学镜像站(https://mirror.bjtu.edu.cn/)

                                          • 特色:专注于常用发行版和开发工具,状态监控清晰(显示每个镜像的同步状态),适合高校及科研机构。
                                          • 网易镜像站(http://mirrors.163.com/)

                                            • 特色:历史悠久,支持传统Linux发行版(如Debian老版本),提供便捷的搜索功能,快速定位所需软件包。

                                  3.3 镜像源配置步骤(以Ubuntu、CentOS为例)

                                  3.3.1 Ubuntu/Debian系(以清华源为例)

                                  核心文件:/etc/apt/sources.list(全局软件源配置)

                                  适用系统:Ubuntu 16.04+、Debian 9+等

                                  步骤1:备份原配置
                                  sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak  
                                  

                                  作用:防止配置错误导致系统无法更新,便于恢复默认源。

                                  步骤2:替换为国内源(清华源)

                                  使用文本编辑器(如nano、vim)打开配置文件:

                                  sudo nano /etc/apt/sources.list  
                                  

                                  清空原有内容,替换为以下镜像地址(根据Ubuntu版本选择对应分支,如jammy为22.04,ubuity为23.10):

                                  deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy main restricted universe multiverse  
                                  deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-updates main restricted universe multiverse  
                                  deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-backports main restricted universe multiverse  
                                  deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-security main restricted universe multiverse  
                                  # 如需使用测试版软件,取消注释以下行  
                                  # deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-proposed main restricted universe multiverse  
                                  

                                  注意:镜像地址需与系统版本匹配,可通过lsb_release -a查看Ubuntu版本代号。

                                  步骤3:更新软件源索引
                                  sudo apt update  
                                  

                                  验证:若输出中无404 Not Found或Failed to fetch错误,说明配置成功。

                                  3.3.2 CentOS/RHEL系(以阿里云源为例)

                                  核心文件:/etc/yum.repos.d/目录下的.repo文件(每个仓库独立配置)

                                  适用系统:CentOS 7/8、Rocky Linux、AlmaLinux等

                                  步骤1:备份原配置(可选)
                                  sudo mkdir -p /etc/yum.repos.d/bak && sudo cp /etc/yum.repos.d/*.repo /etc/yum.repos.d/bak/  
                                  

                                  作用:备份官方仓库配置,避免误操作导致依赖问题。

                                  步骤2:替换为国内源(阿里云源)
                                  1. 下载镜像站提供的repo文件(以CentOS 7为例):

                                    sudo wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo  
                                    

                                    或手动编辑文件:

                                    sudo nano /etc/yum.repos.d/CentOS-Base.repo  
                                    

                                    将所有baseurl字段替换为阿里云镜像地址:

                                    [base]  
                                    name=CentOS-$releasever - Base  
                                    baseurl=http://mirrors.aliyun.com/centos/$releasever/BaseOS/$basearch/os/  
                                    gpgcheck=1  
                                    gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7  
                                    [updates]  
                                    name=CentOS-$releasever - Updates  
                                    baseurl=http://mirrors.aliyun.com/centos/$releasever/updates/$basearch/os/  
                                    # 其他仓库(如extras、centosplus)同理替换  
                                    

                                    关键参数:$releasever自动匹配系统版本,$basearch为架构(x86_64/arm64等)。

                                  2. 启用EPEL仓库(可选,用于获取额外软件包):

                                    sudo wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo  
                                    
                                  步骤3:更新软件源缓存
                                  sudo yum makecache  # CentOS 7及以下  
                                  # 或  
                                  sudo dnf makecache  # CentOS 8及以上(DNF工具)  
                                  

                                  验证:输出中显示Metadata Cache Created,表示缓存生成成功。

                                  通过以上步骤,可显著提升Ubuntu/CentOS系统的软件下载速度和稳定性,尤其适合国内用户环境。配置时建议选择与自身网络匹配的镜像站(如教育网选清华/中科⼤,企业网选阿里云/网易),并定期执行更新命令以获取最新软件包。


                                  以上就是这篇博客的全部内容,下一篇我们将继续探索Linux的更多精彩内容。

                                  我的个人主页

                                  欢迎来阅读我的其他文章

                                  https://blog.csdn.net/2402_83322742?spm=1011.2415.3001.5343

                                  我的Linux知识文章专栏

                                  欢迎来阅读指出不足

                                  https://blog.csdn.net/2402_83322742/category_12879535.html?spm=1001.2014.3001.5482

                                  非常感谢您的阅读,喜欢的话记得三连哦

                                  Linux操作系统从入门到实战(六)Linux开发工具(上)详细介绍什么是软件包管理器,Linux下如何进行软件和软件包的安装、升级与卸载

免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理! 图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库和百度,360,搜狗等多加搜索引擎自动关键词搜索配图,如有侵权的图片,请第一时间联系我们。

目录[+]

取消
微信二维码
微信二维码
支付宝二维码