Linux 基础开发工具入门:软件包管理器的全方位实操指南


🔥草莓熊Lotso: 个人主页
❄️个人专栏: 《C++知识分享》 《Linux 入门到实践:零基础也能懂》
✨生活是默默的坚持,毅力是永久的享受!


🎬 博主简介:


文章目录

  • 前言:
  • [一. 认识软件包管理器:Linux的 "应用商店"](#一. 认识软件包管理器:Linux的 “应用商店”)
    • [1.1 什么是软件包](#1.1 什么是软件包)
    • [1.2 Linux的软件包生态问题](#1.2 Linux的软件包生态问题)
  • [二. 为什么需要国内镜像源?](#二. 为什么需要国内镜像源?)
    • [2.1 国内主流开源镜像站汇总](#2.1 国内主流开源镜像站汇总)
  • [三. yum 与 apt 实操:常用命令全解析](#三. yum 与 apt 实操:常用命令全解析)
    • [3.1 查看软件包:确认是否可安装](#3.1 查看软件包:确认是否可安装)
    • [3.2 安装软件:一条命令搞定](#3.2 安装软件:一条命令搞定)
    • [3.3 卸载软件:干净删除无残留](#3.3 卸载软件:干净删除无残留)
    • [3.4 安装源](#3.4 安装源)
  • 结尾:

前言:

在 Linux 系统中,高效管理软件是开展开发与运维工作的第一步。无论是安装开发工具、配置运行环境,还是解决软件依赖问题,软件包管理器 都是核心工具。本文将聚焦 Linux 下最常用的包管理器(yumapt),从概念解析到国内镜像源配置,再到具体实操命令,帮你彻底掌握软件安装、卸载与管理的方法,为后续开发工作搭建稳定的基础环境。


一. 认识软件包管理器:Linux的 "应用商店"

在 Windows 或 macOS 中,我们通过"应用商店"或.exe安装包获取软件;而在Linux中,软件包管理器承担了类似的角色,而且能解决"软件依赖"的问题。

1.1 什么是软件包

  • 软件包:提前编译好的可执行程序、配置文件及依赖库的集合(类似 Windows 的安装包),不同 Linux 发行版对应不同格式,如 CentOS 的.rpm、Ubuntu 的.deb。

  • 包管理器:负责软件包 "查找 - 下载 - 安装 - 卸载 - 依赖处理" 的工具,主流分为两类:

    • yum:适用于 CentOS、RedHat、Fedora 等基于 RPM 包的发行版;
    • apt:适用于 Ubuntu、Debian 等基于 DEB 包的发行版。
  • Linux下载软件的过程(Ubuntu,Centos,other):

1.2 Linux的软件包生态问题

  • 我们评估一款操作系统的好坏,最重要的是什么呢?不就是这款操作系统的生态是否完善嘛。
  • 为什么会有人免费特定社区提供软件,还发布?还提供云服务器让你下载?

到这里我们是不是有点熟悉了,这些好处不正是开源带来的嘛,我们在刚开始学Linux的时候就讲过,开源的本质是一种商业模式

  • 依赖问题: 多数软件需要依赖其他库文件(如libc.sossl.so)才能运行。但是包管理器会自动识别并下载这些依赖,避免 "缺少某某文件" 的报错。

二. 为什么需要国内镜像源?

Linux 默认的软件源多位于国外服务器,国内用户下载时会面临速度慢、频繁中断的问题。国内镜像源 是官方源的 "副本",由国内高校或企业维护,能大幅提升下载速度。

2.1 国内主流开源镜像站汇总

以下是常用的优质镜像站,覆盖主流 Linux 发行版:

镜像站名称 官方链接 主要支持场景
阿里云镜像站 https://developer.aliyun.com/mirror/ CentOS、Ubuntu、Debian 等系统及常见软件包
清华大学镜像站 https://mirrors.tuna.tsinghua.edu.cn/ 全系列 Linux、Python/Perl/Ruby 等编程语言扩展包
中国科学技术大学镜像站 http://mirrors.ustc.edu.cn/ 全系列 Linux、常用编程语言及开发工具
北京交通大学镜像站 https://mirror.bjtu.edu.cn/ 多种 Linux 发行版及相关软件仓库
中国科学院软件研究所镜像站 http://mirror.iscas.ac.cn/ 多种 Linux 发行版、编程语言和开发工具
上海交通大学镜像站 https://ftp.sjtu.edu.cn/ 多种 Linux 发行版镜像及软件仓库
网易镜像站 http://mirrors.163.com/ CentOS、Ubuntu 等基础发行版及相关软件

补充说明:

  • 以上镜像站均提供丰富的 Linux 软件资源,可根据地理位置和网络情况选择使用。
  • 清华大学、中科大和阿里云镜像站是目前国内最活跃、资源最全面的镜像源之一。
  • 部分镜像站还提供 Docker 镜像、开源文档等额外资源。

三. yum 与 apt 实操:常用命令全解析

我们可通过包管理器高效管理软件。以下是 yum(CentOS)和 apt(Ubuntu)的核心命令,对应场景包括 "查看软件""安装软件""卸载软件" 等,操作逻辑高度相似。

操作场景 CentOS/RHEL (yum/dnf) 命令 Ubuntu/Debian (apt) 命令
更新软件包列表 yum check-update dnf check-update sudo apt update
搜索指定软件 yum search 软件名 dnf search 软件名 apt search 软件名
查看软件详细信息 yum info 软件名 dnf info 软件名 apt show 软件名
列出所有可安装软件 yum list available dnf list available apt list
安装软件 sudo yum install 软件名 sudo dnf install 软件名 sudo apt install 软件名
卸载软件 sudo yum remove 软件名 sudo dnf remove 软件名 sudo apt remove 软件名
升级所有软件包 sudo yum update sudo dnf upgrade sudo apt upgrade

3.1 查看软件包:确认是否可安装

在安装软件前,可先查看该软件是否在镜像源中,以及当前可用版本。
示例:查看 "lrzsz"(Linux 与 Windows 文件传输工具)

  • CentOS:
bash 复制代码
yum list | grep lrzsz
lrzsz.x86_64 0.12.20-36.el7 @base
# 输出示例:lrzsz.x86_64  0.12.20-36.el7  base
# 解读:x86_64=64位包;el7=适配CentOS 7;base=源名称
  • Ubuntu:
bash 复制代码
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
# 输出示例:lrzsz/focal,now 0.12.21-10 amd64 [已安装]
# 解读:focal=Ubuntu 20.04代号;amd64=64位包

$ 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 上述有详细介绍

3.2 安装软件:一条命令搞定

安装软件需root权限(通过sudo临时获取,或直接切换root用户),-y选项可自动确认安装(无需手动输入 "y" 确认)

操作场景 CentOS(yum/dnf)命令 Ubuntu(apt)命令
更新软件包列表 sudo yum check-update sudo apt update
安装指定软件 sudo yum install -y 软件名 sudo apt install -y 软件名
安装扩展源 sudo yum install -y epel-release sudo add-apt-repository ppa:xxx
列出已安装软件 yum list installed apt list --installed

实际示例

bash 复制代码
# CentOS
sudo yum install -y lrzsz
# Ubuntu
sudo apt install -y lrzsz

注意事项

  • 安装软件时由于需要向系统目录中写入内容,一般需要 sudo 或者切换到 root 账户下才能完成。
  • Linux系统下,如果有多个用户,也只需要安装一次就行
  • yum/apt安装软件只能一个装完了再装另一个,正在yum/apt安装下一个软件的过程中,如果再尝试用yum/apt安装另外一个软件,yum/apt会报错。
  • 如果yum/apt报错,请自行问问ai。

3.3 卸载软件:干净删除无残留

若软件不再使用,可通过包管理器彻底卸载,避免占用磁盘空间。
实际示例

bash 复制代码
# CentOS
sudo yum remove -y lrzsz

# Ubuntu(仅卸载软件,保留配置)
sudo apt remove -y lrzsz

注意

  • 网络验证:包管理器依赖网络,若命令执行失败,先通过ping www.baidu.com验证网络是否通畅

3.4 安装源

  • Centos 安装源路径:
bash 复制代码
[root@VM-4-4-centos ~]# ll /etc/yum.repos.d/
total 8
-rw-r--r-- 1 root root 641 Sep 10 22:45 CentOS-Base.repo
-rw-r--r-- 1 root root 230 Sep 10 22:45 CentOS-Epel.repo

# 安装扩展源
[root@VM-4-4-centos ~]# sudo yum install -y epel-release
..................
[root@VM-4-4-centos ~]# ll /etc/yum.repos.d/
total 16
-rw-r--r-- 1 root root  641 Sep 10 22:45 CentOS-Base.repo
-rw-r--r-- 1 root root  230 Sep 10 22:45 CentOS-Epel.repo
-rw-r--r-- 1 root root 1358 Sep  5  2021 epel.repo
-rw-r--r-- 1 root root 1457 Sep  5  2021 epel-testing.repo
  • Ubuntu 安装源路径:
bash 复制代码
$ cat /etc/apt/sources.list # 标准源
$ ll /etc/apt/sources.list.d/ # 扩展源
# ubuntu 安装扩展源,就结合未来具体场景

更新安装源,云服务器不用考虑,因为软件源都是国内的了,其它需要的话可以参考更换软件源
好玩的命令一些有趣的命令


结尾:

html 复制代码
🍓 我是草莓熊 Lotso!若这篇技术干货帮你打通了学习中的卡点:
👀 【关注】跟我一起深耕技术领域,从基础到进阶,见证每一次成长
❤️ 【点赞】让优质内容被更多人看见,让知识传递更有力量
⭐ 【收藏】把核心知识点、实战技巧存好,需要时直接查、随时用
💬 【评论】分享你的经验或疑问(比如曾踩过的技术坑?),一起交流避坑
🗳️ 【投票】用你的选择助力社区内容方向,告诉大家哪个技术点最该重点拆解
技术之路难免有困惑,但同行的人会让前进更有方向~愿我们都能在自己专注的领域里,一步步靠近心中的技术目标!

结语:软件包管理器(yum/apt)是 Linux 环境搭建的 "基石工具",从替换国内镜像源提升速度,到一键完成软件安装卸载,它帮我们跳过手动编译、解决依赖的繁琐,让环境配置更高效。掌握这些操作后,你已能独立搭建基础 Linux 环境,后续安装编译器、编辑器等工具都可借助它快速实现。建议多结合实际需求实操,逐步熟悉细节,为后续开发筑牢基础。

✨把这些内容吃透超牛的!放松下吧✨ ʕ˘ᴥ˘ʔ づきらど

相关推荐
拾忆,想起2 小时前
TCP滑动窗口:网络世界的“智能流量阀门”
java·网络·数据库·网络协议·tcp/ip·php·哈希算法
IT_陈寒2 小时前
Vue 3性能优化实战:7个关键技巧让我的应用加载速度提升50%
前端·人工智能·后端
小龙报2 小时前
算法通关指南:数据结构和算法篇 --- 队列相关算法题》--- 1. 【模板】队列,2. 机器翻译
c语言·开发语言·数据结构·c++·算法·学习方法·visual studio
【赫兹威客】浩哥2 小时前
基于 YOLO11+PyQt6+OpenCV 的智能水果检测系统设计与实现
人工智能·opencv·计算机视觉
Jewel Q2 小时前
PowerShell 和 CMD
运维
木木em哈哈2 小时前
有关于cnb自动化的脚本补全
服务器·开发语言·pygame
RPA机器人就用八爪鱼2 小时前
RPA:企业数字化转型的高效自动化利器
人工智能
程序员-小李2 小时前
基于PyTorch的动物识别模型训练与应用实战
人工智能·pytorch·python
喜欢吃燃面2 小时前
Linux:make自动化和实战演练
linux·学习