当前位置: 首页 > news >正文

【Linux从入门到精通】第10篇:软件包管理——Linux如何安装与卸载软件

目录

一、引言:Linux装软件的三种姿势

二、两大流派:APT与YUM/DNF的对比

2.1 APT核心命令(Ubuntu/Debian)

2.2 YUM/DNF核心命令(CentOS/RHEL)

2.3 命令速查表

三、换源加速:国内镜像源配置指南

3.1 Ubuntu换阿里源

3.2 CentOS换阿里源

3.3 常见换源问题排查

四、源码编译安装:三部曲的艺术

4.1 准备工作:安装编译工具链

4.2 三部曲详解

4.3 完整实战:源码编译安装Nginx

4.4 源码安装的优缺点

五、补充:离线包安装简介

六、本篇小结

动手练习

七、第一阶段总结与下篇预告


一、引言:Linux装软件的三种姿势

还记得Windows下装软件的体验吗?下载一个.exe文件,双击,一路“下一步”,完成。但在Linux世界里,这套逻辑几乎不存在——你很少会去网站下载安装包,而是通过包管理器从官方仓库直接获取软件。

Linux安装软件主要有三种方式:

方式适用场景优缺点
包管理器(在线)95%的日常需求自动解决依赖,一条命令搞定
离线包安装内网环境、无网络需手动处理依赖关系
源码编译需要特定版本或定制功能最灵活,但门槛最高

这三种方式构成了Linux软件管理的完整技能树。今天我们先讲最常用的在线包管理,再讲需要特殊版本的源码编译,离线包安装作为补充知识点简要提及。


二、两大流派:APT与YUM/DNF的对比

Linux世界有两大主流发行版家族,它们的包管理工具完全不同:

对比维度Debian系(APT)RedHat系(YUM/DNF)
代表系统Ubuntu、Debian、Linux MintCentOS、RHEL、Fedora
包管理器aptyum(CentOS 7)/dnf(CentOS 8+)
软件包格式.deb.rpm
配置文件/etc/apt/sources.list/etc/yum.repos.d/*.repo

关键认知dnfyum的升级版,CentOS 8及以上版本默认使用dnf。二者的命令结构几乎相同,只需把yum替换成dnf即可。

2.1 APT核心命令(Ubuntu/Debian)

APT(Advanced Package Tool)是Debian系的标准包管理器,使用前需要加sudo获取管理员权限。

bash

# 更新软件源缓存(装软件前必做,确保获取最新版本信息) sudo apt update # 安装软件(自动解决依赖) sudo apt install -y nginx # 卸载软件(保留配置文件) sudo apt remove nginx # 彻底卸载(包括配置文件) sudo apt purge nginx # 升级所有已安装的软件 sudo apt upgrade -y # 搜索软件包 apt search nginx # 清理不再需要的依赖包 sudo apt autoremove -y

2.2 YUM/DNF核心命令(CentOS/RHEL)

YUM(Yellowdog Updater, Modified)是RedHat系的经典包管理器,DNF是其现代化继任者。

bash

# 更新软件源缓存 sudo dnf makecache # CentOS 8+ sudo yum makecache # CentOS 7 # 安装软件 sudo dnf install -y nginx sudo yum install -y nginx # 卸载软件 sudo dnf remove nginx sudo yum remove nginx # 升级所有软件 sudo dnf update -y sudo yum update -y # 搜索软件包 dnf search nginx yum search nginx # 清理缓存(释放磁盘空间) sudo dnf clean all sudo yum clean all

注意:安装时加-y参数可以自动确认所有提示,无需手动输入"y",大幅提升效率。

2.3 命令速查表

操作APT(Ubuntu)DNF(CentOS 8+)YUM(CentOS 7)
更新缓存sudo apt updatesudo dnf makecachesudo yum makecache
安装软件sudo apt install 软件名sudo dnf install 软件名sudo yum install 软件名
卸载软件sudo apt remove 软件名sudo dnf remove 软件名sudo yum remove 软件名
彻底卸载sudo apt purge 软件名
升级系统sudo apt upgradesudo dnf updatesudo yum update
搜索软件apt search 关键词dnf search 关键词yum search 关键词

三、换源加速:国内镜像源配置指南

默认情况下,Linux的软件源服务器在国外,国内访问速度很慢,经常出现“下载速度几十KB”甚至“无法连接”的情况。配置国内镜像源是装完系统的第一步

3.1 Ubuntu换阿里源

bash

# 1. 备份原始源文件(防止改坏后无法恢复) sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak # 2. 编辑源文件 sudo vim /etc/apt/sources.list

清空原有内容,粘贴以下内容(以Ubuntu 22.04为例,版本代号为jammy):

text

deb http://mirrors.aliyun.com/ubuntu/ jammy main restricted universe multiverse deb http://mirrors.aliyun.com/ubuntu/ jammy-security main restricted universe multiverse deb http://mirrors.aliyun.com/ubuntu/ jammy-updates main restricted universe multiverse deb http://mirrors.aliyun.com/ubuntu/ jammy-backports main restricted universe multiverse

保存退出后更新缓存:

bash

sudo apt update

版本代号对照

  • Ubuntu 20.04 →focal

  • Ubuntu 22.04 →jammy

  • Ubuntu 24.04 →noble

3.2 CentOS换阿里源

bash

# 1. 备份原有源 cd /etc/yum.repos.d/ sudo mkdir backup && sudo mv *.repo backup/ # 2. 下载阿里云源(注意选择对应系统版本) # CentOS 7 sudo wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo # CentOS 8 / CentOS Stream 9 sudo wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-8.repo # 3. 清理旧缓存并生成新缓存 sudo yum clean all # CentOS 7 sudo dnf clean all # CentOS 8+ sudo yum makecache # 或 sudo dnf makecache

验证换源成功

bash

yum repolist # 或 dnf repolist # 如果显示阿里云相关仓库且无报错,说明换源成功

3.3 常见换源问题排查

问题现象可能原因解决方案
404 Not Found版本代号写错核对系统版本和代号
无法连接仓库网络不通ping mirrors.aliyun.com测试
缓存生成失败源文件格式错误检查是否有多余空格或换行

四、源码编译安装:三部曲的艺术

包管理器虽然方便,但有时你会遇到必须从源码编译的场景:

  • 官方仓库没有你需要的软件版本(比如需要特定版本的Nginx)

  • 需要开启默认关闭的编译选项

  • 想要将软件安装到自定义路径

源码编译安装遵循经典的三部曲./configuremakemake install

4.1 准备工作:安装编译工具链

编译源码需要一套编译工具,不同发行版安装方式不同:

bash

# Ubuntu/Debian sudo apt update sudo apt install -y build-essential # CentOS/RHEL sudo dnf groupinstall -y "Development Tools"

4.2 三部曲详解

第一步:./configure(配置检查)

进入解压后的源码目录,执行./configure脚本。这个阶段主要做两件事:

  1. 检查编译环境:确认系统是否安装了必要的编译器和依赖库

  2. 生成Makefile:根据用户指定的选项,生成指导编译的配置文件

bash

# 最常见的用法:指定安装路径 ./configure --prefix=/usr/local/myapp # 查看所有可配置选项 ./configure --help

--prefix参数指定软件安装的目标目录。不指定的话,默认安装到/usr/local

踩坑提醒:如果./configure报错,通常是缺少依赖库。仔细阅读错误信息,安装对应的-dev-devel包即可。

第二步:make(编译)

根据Makefile的指令,调用编译器将源代码编译成可执行文件:

bash

# 基本编译 make # 使用多核心加速编译(-j后面跟CPU核心数) make -j4

这步最耗时,取决于软件大小和机器性能,可能从几十秒到几十分钟不等。

第三步:make install(安装)

将编译好的文件复制到--prefix指定的目录:

bash

sudo make install

需要sudo是因为安装目录(如/usr/local)通常需要管理员权限。

进阶技巧:将编译和安装合并为一条命令:

bash

make && sudo make install

&&的含义是:前一条命令执行成功,才执行后一条命令。

4.3 完整实战:源码编译安装Nginx

bash

# 1. 安装编译依赖 sudo apt install -y build-essential libpcre3-dev libssl-dev zlib1g-dev # 2. 下载源码包 wget http://nginx.org/download/nginx-1.24.0.tar.gz # 3. 解压并进入目录 tar -xzf nginx-1.24.0.tar.gz cd nginx-1.24.0 # 4. 配置(指定安装到/usr/local/nginx,开启SSL模块) ./configure --prefix=/usr/local/nginx --with-http_ssl_module # 5. 编译并安装 make -j4 && sudo make install # 6. 验证安装 /usr/local/nginx/sbin/nginx -v

4.4 源码安装的优缺点

优点缺点
可以安装任意版本编译耗时较长
能够自定义编译选项需要手动解决依赖问题
优化适配当前硬件卸载麻烦(没有统一的卸载命令)

卸载源码安装的软件

  • 如果保留了源码目录:sudo make uninstall

  • 如果已删除源码:手动删除安装目录下的文件

新手建议:能用包管理器装的软件,尽量不用源码编译。只有在官方仓库没有所需版本、或者需要开启特定编译选项时,才考虑源码安装。


五、补充:离线包安装简介

对于没有外网的内网服务器,可以使用离线包安装:

  • Debian系:使用.deb包 +dpkg -i命令

  • RedHat系:使用.rpm包 +rpm -ivh命令

但离线包不会自动解决依赖,可能出现“缺少依赖包”的死循环。推荐在有网的机器上用apt downloadyum downloadonly提前下载好所有依赖包,再整体拷贝到内网机器。

由于篇幅限制,离线安装的详细操作不在本文展开,有兴趣的读者可查阅相关文档。


六、本篇小结

今天我们掌握了Linux软件管理的完整技能树:

两大包管理器体系

  • Ubuntu/Debian用apt,CentOS/RHEL用yum(旧)或dnf(新)

  • 核心操作:update → install → remove → upgrade

镜像源加速

  • 装完系统第一件事:换国内源

  • 阿里云、清华源是首选

源码编译三部曲

  • ./configure:检查环境、生成配置

  • make:编译源码

  • make install:安装到目标目录

记忆口诀

Ubuntu用apt,CentOS用dnf,
装前先更新,装时加-y,
嫌慢换国内源,定制才编译。

动手练习

bash

# 1. 查看当前系统的包管理器版本 apt --version # Ubuntu dnf --version # CentOS 8+ # 2. 搜索一个你感兴趣的软件包 apt search htop dnf search htop # 3. 安装htop(一个增强版系统监控工具) sudo apt install -y htop sudo dnf install -y htop # 4. 运行htop体验一下,按F10退出 htop # 5. 卸载htop sudo apt remove -y htop sudo dnf remove -y htop

七、第一阶段总结与下篇预告

至此,Linux从入门到精通的第一阶段(基础筑基)就全部完成了。回顾这10篇文章,我们走过了:

  1. Linux世界观与发行版选择

  2. 三种方式搭建环境

  3. 目录树结构与路径导航

  4. 文件增删改查

  5. 内容查看与文件搜索

  6. 管道、重定向与通配符

  7. Vim编辑器生存指南

  8. 用户与权限管理(上)

  9. 用户与权限管理(下)

  10. 软件包管理

你已经具备了在Linux环境中独立生存的基础能力。

下一篇我们将进入第二阶段:核心机制与系统管理。首先登场的是进程管理——程序是怎么跑起来的?如何查看和管理正在运行的程序?pstopkill这些命令将帮你接管系统的“灵魂”。


延伸思考:执行which ls,你会发现ls命令其实是一个编译好的二进制程序,存放在/usr/bin/ls。那么问题来了——当你输入ls并回车时,系统是怎么找到这个程序的?答案藏在一个叫PATH的环境变量里,执行echo $PATH看看输出,你发现了什么规律?

http://www.jsqmd.com/news/682441/

相关文章:

  • C语言中字符串的几种定义方式
  • 云存储包含哪些类型?
  • 终极指南:7种音频格式自由转换,Windows便携工具FlicFlac深度解析
  • 【限时公开】头部AIGC团队内部文档泄露:Docker AI配置安全基线标准(含CVE-2023-28842紧急修复方案)
  • html标签怎么表示详情摘要_details和summary标签【介绍】
  • 别再死记硬背了!用‘搭积木’思维理解Numpy高维数组(附三维数组图解)
  • 2026威海GEO优化排行:亿溧GEO领跑 打造本地服务标杆 - GrowthUME
  • 苹果用户速看!这类账户异常短信全是骗局!
  • iOS 自动化测试实战:从零到一配置WebDriverAgent(WDA)
  • Docker Compose+低代码平台融合实践:5个被90%团队忽略的配置陷阱及修复清单
  • BiliDownloader:基于.NET 9架构的B站视频下载解决方案技术解析
  • 那个发现离职半年员工还能访问公司文件的IT负责人,对企业云盘安全有了新的理解
  • Windows 11终极优化指南:Win11Debloat系统清理与性能提升实战
  • 沃尔玛购物卡秒回收,快速变现攻略! - 团团收购物卡回收
  • 从CBF到Capon:揭秘阵列信号处理中波束形成的分辨率跃迁
  • 远程办公时代的技术团队协作:效率与文化的双重挑战
  • 【YOLOv11】033、YOLOv11与Transformer结合:ViT、Swin Transformer在检测中的应用
  • OpenMV4避坑指南:色块识别准确率从50%提升到90%的关键参数调整
  • CKEditor如何实现Word图片自动转存并保留原始分辨率?
  • 为什么93%的CI/CD流水线因Docker配置失效?——量子级buildkit缓存策略失效根因与3步回滚法
  • 零基础入门指南:LunaTranslator如何让Galgame实时翻译变得简单
  • 2026年薄片抓取总划伤?优质分层夹爪品牌推荐 - 品牌2026
  • 告别默认蓝天:手把手教你用Cesium.js打造沉浸式自定义天空盒(附6张图素材处理技巧)
  • 深聊2026年泉州永强灯饰公司,服务靠谱价格贵不贵 - myqiye
  • Hermes Agent 01 | 全景图:Hermes Agent 的三层架构与核心理念
  • WechatBakTool:微信聊天记录备份终极指南,三步实现永久保存
  • 从摩尔纹到透视变形:拆解PIMoG论文,看深度学习水印如何优雅地‘对抗’手机拍照
  • 从Buff图标到实战应用:《另一个伊甸》全增益/减益效果保姆级识别与运用指南
  • 扬州市鑫之雨防水科技:杭州厂房漏水卫生间漏水地防水公司推荐 - LYL仔仔
  • 跨文化餐饮中的味觉系统化解决方案