精读笔记 · 第09章 软件管理
大约 4 分钟
精读笔记 · 第09章 软件管理
精读整理自 RHCE9 随堂讲义(原文字版 13 页)|同名视频约 9 节 关联知识文件:
分章笔记/01-Linux/02-03-软件包与计划任务、05-认证考试要点
一、软件包三大形态
- RPM 包(二进制包):Red Hat Package Manager,编译好的二进制,免编译直接用;缺点=不能自定义功能开关/安装路径。命名规则:
zip-3.0-11.el7.x86_64.rpm=软件包名-版本-发布版.el系统平台版本.架构.rpm。 - 源码包:
nginx-1.8.1.tar.gz需 GCC 等编译环境,可自定义开关功能,但安装慢、易错。 - YUM(dnf):RPM 的前端包管理器,从仓库自动下载并解决依赖,一次装齐。
二、YUM 常用操作
| 操作 | 命令 | 说明 |
|---|---|---|
| 全新安装 | yum -y install httpd vsftpd | -y 免确认,可一次多个包 |
| 重新安装 | yum -y reinstall httpd | 文件缺失时修复 |
| 升级 | yum -y update httpd(单包)/ yum -y update(全部) | |
| 卸载 | yum -y remove httpd | 连依赖一起处理 |
| 查仓库 | yum repolist | 列出可用源 |
| 查包状态 | yum list httpd | 行首带 @ = 已安装 |
| 查命令归属 | yum provides ifconfig | 结果 net-tools → yum install -y net-tools |
- 场景题:ifconfig 用不了 →
yum provides ifconfig找到 net-tools 再安装。
三、配置 YUM 仓库(阿里云镜像)
- 前提:联网(NAT 模式 + 浏览器测试)。
- 配置目录:
/etc/yum.repos.d/*.repo;先备份mv /etc/yum.repos.d/centos.repo /etc/yum.repos.d/centos.repo.backup。 - 新建
vim /etc/yum.repos.d/centos.repo,粘贴阿里源(BaseOS/AppStream/extras/PowerTools 等段),注意每段[xxx]头与结尾完整。 yum makecache生成缓存 →yum repolist验证。- EPEL 源:
yum install -y https://mirrors.aliyun.com/epel/epel-release-latest-9.noarch.rpm→ makecache → repolist 看到 epel 即成功。
四、RPM 命令(离线装包用)
- 特点:无需配置源直接用;不自动解决依赖;不能自动下载(包要自己拿到,如挂载系统光盘
/mnt/cdrom/AppStream/Packages)。 - 常用:
rpm -ivh 包.rpm(i 安装 v 可视化 h 进度条)、rpm -q 包名(查是否安装/版本)、rpm -evh 包名(e 卸载)、rpm -qa(全部已装)、rpm -qf 文件(查文件属于哪个包)。 - 警告 NOKEY 说明未导入 GPG 密钥,可用
--nodeps/--force之类的包要谨慎,一般别乱加。
五、源码编译安装(四步曲)
- 经典流程:configure → make → make install(之前先 yum 装编译依赖)。
- 装编译环境:
yum -y install make zlib zlib-devel gcc-c++ libtool openssl openssl-devel pcre-devel。 - 下载解压:
wget http://nginx.org/download/nginx-1.23.2.tar.gz→tar xf解压 →cd进目录。 - 配置(决定开关):
./configure --user=nginx --group=nginx --prefix=/usr/local/nginx-1.23.2/ --with-http_stub_status_module --with-http_ssl_module。 - 编译安装:
make→make install。 - 准备专用用户:
useradd -s /sbin/nologin -M nginx(不能登录、不建家目录)。 - 启动验证:
/usr/local/nginx-1.23.2/sbin/nginx→curl http://127.0.0.1;客户机访问需systemctl stop firewalld或放行 80 端口;nginx -V查看版本与模块。
六、命令速查表
| 场景 | 命令 |
|---|---|
| YUM 安装/卸载/升级 | yum -y install/reinstall/remove/update 包 |
| 查命令由哪个包提供 | yum provides ifconfig |
| 仓库管理 | yum repolist、yum makecache、编辑 /etc/yum.repos.d/*.repo |
| 本地 RPM | rpm -ivh 包.rpm、-q 包、-evh 包、-qa、-qf 文件 |
| 编译环境 | yum -y install gcc-c++ make openssl-devel pcre-devel zlib-devel |
| 源码三步曲 | ./configure --prefix=... → make → make install |
| 启动测试 | 直接运行安装目录下 sbin 程序、curl 127.0.0.1、nginx -V |
七、易错点
- 优先级场景记忆:要上网装 + 自动解决依赖 → YUM;手头有 rpm 包、离线环境 → rpm;要自定义功能/最新版 → 源码编译。
rpm -ivh依赖报错时不能硬--nodeps(会装出坏系统),正确做法是先把依赖 rpm 都装上或用 yum 本地安装。- 源码编译缺依赖是最常见失败点:先一次性装齐 gcc/make 和各
-devel开发包;./configure报错看最后几行缺什么。 - YUM 源配置注意:
/etc/yum.repos.d下不能有冲突源;repo 文件写坏就yum repolist为空。 - 加用户
-M不建家目录、-s /sbin/nologin不能登录,是给服务进程用的标准姿势。
八、实操清单
yum 装 httpd+vsftpd 并 systemctl 验证 → yum provides ifconfig 装 net-tools → 备份并替换为阿里源 + makecache + repolist → 挂载光盘用 rpm -ivh 装 wget → rpm -q/-e 验证 → 源码编译 nginx1.23.2(依赖→wget→configure→make→make install→useradd→启动→curl)。
九、本章自测
- rpm 包名
wget-1.21.1-7.el9.x86_64.rpm各段含义?2. YUM 与 RPM 的优缺点?3. ifconfig 不存在时怎么装?4. 源码安装标准三步?5. nginx 源码 configure 里--prefix和--with-http_ssl_module的作用?6. 换阿里源后的三条验证命令?
