包管理器
一:软件包管理
1.1 软件包管理介绍
安装流程:
软件包管理是通过软件源下载软件并且进行安装。安装流程如下:
- 首先包管理器dnf或apt通过软件源下载所要安装的应用程序依赖包和安装应用程序包。
- 下载完后进行调用底层安装工具rpm/dpkg进行安装应用程序。

软件包组成:
1)redhat系:
wget-1.21.1-8.el9_4.x86_64.rpm
nginx-1.20.1-28.el9_8.2.rocky.0.1.x86_64.rpm
2)dabian系:
wget_1.21.4-1ubuntu4.3_amd64.deb
nginx_1.24.0-2ubuntu7.13_amd64.deb
组成:
- wget或nginx是软件包的名称
- 1.21.1-8:软件包版本号
- el9或ubuntu4.3:适用那个系统版本
- x86_64或amd64:适用哪个内核架构
- rpm或deb: rpm适用于redhat系列,deb适用于debian系列。
1.2安装指令:
1.2.1 redhat系列包管理器(dnf/yum):
- 核心命令:
| 核心命令 | 说明 |
|---|---|
| dnf install | 安装软件,并且解决依赖关系 |
| dnf remove | 卸载(删除)软件 |
| dnf update nginx | 指定更新软件,在生产环境慎用,需要在测试环境测试成功在往生产使用 |
| dnf update | 更新系统,慎用,更新系统没有对应应用程序依赖包。 |
| dnf search | 按关键字搜索软件包 |
| dnf provides | 查看指令来源哪个软件包 |
| dnf info nginx | 根据关键字搜索软件包信息 |
| dnf list --showdumplicates nginx | 列出所有版本 |
| dnf history nginx | 查看操作历史,undo [版本]:撤销某个版本,根据某个版本进行反过来干。redo [版本]:执行某个版本的命令 |
| dnf clean all | 清理缓存 |
| dnf list installed | 列出已经安装的包 |
| dnf list availabel | 列出可以使用的包 |
| dnf groupinstall "Development Tools" | 安装包组 |
| dnf install nginx --downloadonly --downloaddir=/tmp/rpm | 下载软件及软件依赖包到本地,--downloadonly :只下载软件包及依赖包。--downloaddir=/tmp/rpm:声明把软件包及依赖包下载到哪个位置。 |
- 例子:
安装软件:
root@studry:~# dnf install vim bash-completion
root@studry:~# dnf install -y nginx
删除软件:
root@studry:~# dnf remove -y nginx
更新软件:
root@studry:~# dnf update nginx
搜索软件包:
root@studry:~# dnf search nginx
上次元数据过期检查:0:07:58 前,执行于 2026年09月10日 星期四 14时46分37秒。
========================================================================= 名称 精准匹配:nginx ==========================================================================
nginx.x86_64 : A high performance web server and reverse proxy server
======================================================================= 名称 和 概况 匹配:nginx ========================================================================
nginx-all-modules.noarch : A meta package that installs all available Nginx modules
nginx-core.x86_64 : nginx minimal core
nginx-filesystem.noarch : The basic directory layout for the Nginx server
nginx-mod-http-image-filter.x86_64 : Nginx HTTP image filter module
nginx-mod-http-perl.x86_64 : Nginx HTTP perl module
nginx-mod-http-xslt-filter.x86_64 : Nginx XSLT module
nginx-mod-mail.x86_64 : Nginx mail modules
nginx-mod-stream.x86_64 : Nginx stream modules
pcp-pmda-nginx.x86_64 : Performance Co-Pilot (PCP) metrics for the Nginx Webserver
查看指令来源的软件包
root@studry:~# dnf provides */rz
上次元数据过期检查:0:00:30 前,执行于 2026年09月10日 星期四 15时00分36秒。
lrzsz-0.12.20-66.el10.x86_64 : The lrz and lsz modem communications programs
仓库 :baseos
匹配来源:
文件名 :/usr/bin/rz
root@studry:~# dnf provides */netstat
上次元数据过期检查:0:01:40 前,执行于 2026年09月10日 星期四 15时00分36秒。
net-tools-2.0-0.73.20160912git.el10.x86_64 : Basic networking tools
仓库 :@System
匹配来源:
文件名 :/usr/bin/netstat
net-tools-2.0-0.73.20160912git.el10.x86_64 : Basic networking tools
仓库 :baseos
匹配来源:
文件名 :/usr/bin/netstat
根据关键字搜索软件包信息:
root@studry:~# dnf info nginx
上次元数据过期检查:0:03:35 前,执行于 2026年09月10日 星期四 15时00分36秒。
已安装的软件包
名称 : nginx
时期 : 2
版本 : 1.26.3
发布 : 6.el10_2.6
架构 : x86_64
大小 : 119 k
源 : nginx-1.26.3-6.el10_2.6.src.rpm
仓库 : @System
来自仓库 : appstream
概况 : A high performance web server and reverse proxy server
URL : https://nginx.org
协议 : BSD-2-Clause
描述 : Nginx is a web server and a reverse proxy server for HTTP, SMTP, POP3 and
: IMAP protocols, with a strong focus on high concurrency, performance and low
: memory usage.
2)列出所有版本信息:
root@studry:~# dnf info --show-duplicates nginx

查看所有版本信息:
root@studry:~# dnf list --showduplicates nginx
上次元数据过期检查:0:07:01 前,执行于 2026年09月10日 星期四 15时00分36秒。
已安装的软件包
nginx.x86_64 2:1.26.3-6.el10_2.6 @appstream
可安装的软件包
nginx.x86_64 2:1.26.3-6.el10_2.3 appstream
nginx.x86_64 2:1.26.3-6.el10_2.4 appstream
nginx.x86_64 2:1.26.3-6.el10_2.5 appstream
nginx.x86_64 2:1.26.3-6.el10_2.6 appstream
root@studry:~#
查看dnf安装卸载历史:
1)查看安装卸载历史:
root@studry:~# dnf history
ID | 命令行 | 日期和时间 | 操作 | 更改
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------
5 | install -y nginx | 2026-09-10 14:50 | Install | 4
4 | remove -y nginx | 2026-09-10 14:48 | Removed | 4
3 | install -y nginx | 2026-09-10 14:48 | Install | 4
2 | install vim bash-completion | 2026-09-10 14:46 | Upgrade | 4 <
1 | | 2026-09-10 14:25 | Install |
2)撤销第3次历史版本:撤销就是反过来,删除反过来就是安装
root@studry:~# dnf history undo 4
3)跳转到第3次历史版本:
root@studry:~# dnf history redo 4
清理缓存:
root@studry:~# dnf clean all
包管理:
查看所有包组:
root@studry:~# dnf group list

查看包详情:
root@studry:~# dnf group info "Development Tools"

安装包组:
root@studry:~# dnf groupinstall "Development Tools"
安装开发工具(常用)
root@studry:~# dnf groupinstall "Development Tools" -y
下载软件包及依赖包,用于以后没有网络使用rpm进行安装:
root@studry:~# dnf install --downloadonly --downloaddir=/tmp/rpm nginx
root@studry:~# dnf install wget --downloadonly --downloaddir=/tmp/rpm
root@studry:~# ls /tmp/rpm/
nginx-1.26.3-6.el10_2.6.x86_64.rpm nginx-filesystem-1.26.3-6.el10_2.6.noarch.rpm wget-1.24.5-8.el10_2.x86_64.rpm
nginx-core-1.26.3-6.el10_2.6.x86_64.rpm rocky-logos-httpd-100.5-3.el10.noarch.rpm
仓库管理:
查看仓库:
1)查看仓库
root@studry:/etc/yum.repos.d# dnf repolist
仓库 id 仓库名称
appstream Rocky Linux 10 - AppStream
baseos Rocky Linux 10 - BaseOS
epel Extra Packages for Enterprise Linux 10 - x86_64
extras Rocky Linux 10 - Extras
2)查看仓库所有信息
root@studry:/etc/yum.repos.d# dnf repolist --all
仓库 id 仓库名称 状态
appstream Rocky Linux 10 - AppStream 启用
baseos Rocky Linux 10 - BaseOS 启用
epel Extra Packages for Enterprise Linux 10 - x86_64 启用
epel-testing Extra Packages for Enterprise Linux 10 - Testing - x86_64 禁用
epel-testing-debuginfo Extra Packages for Enterprise Linux 10 - Testing - x86_64 - Debug 禁用
epel-testing-source Extra Packages for Enterprise Linux 10 - Testing - x86_64 - Source 禁用
extras Rocky Linux 10 - Extras
说明:禁用的是在repo中enable=0,如果设置成enable=1,已经启用。
启用禁用仓库:
root@studry:/etc/yum.repos.d# dnf --disablerepo=baseos install nginx
root@studry:/etc/yum.repos.d# dnf --enablerepo=epel install certbot
1.2.2 debian系列包管理器(apt)
- 核心命令:
| 命令 | 说明 |
|---|---|
| apt update | 更新软件源,在安装软件的时候需要操作 |
| apt upgrade | 升级所有软件,在生产环境中少用 |
| apt install -y nginx | 安装指定的软件 |
| apt remove -y nginx | 删除指定的软件包,并且保留配置文件 |
| apt purge nginx | 删除指定的软件,并且不保留配置文件 |
| apt search nginx | 根据关键字进行搜索 |
| apt list nginx --all-versions | 根据关键字列出所有版本 |
| apt show nginx | 根据关键字查看最新软件包信息 |
| apt depends nginx | 查看nginx软件包依赖谁 |
| apt rdepends nginx | 查看哪些应用依赖nginx |
| autoremove | 自动清理已经安装软件包无用的依赖包,不影响已经安装软件 |
| autoclean | 自动清理下载的缓存文件及过时的旧版本缓存,不影响安装过软件正常使用 |
| apt install --download-only wget nginx | 下载软件包及软件依赖包 |
- 命令例子:
更新软件源:
root@strudy:~# apt update
更新所有的软件:
root@strudy:~# apt upgrade -y
安装指定的软件:
root@strudy:~# apt install -y nginx
删除软件:
1)删除软件并且保留配置文件:
root@strudy:~# apt remove -y nginx
2)删除软件并且不保留配置文件:
root@strudy:~#apt purge
搜索:
1)根据关键字进行搜索:
root@strudy:~# apt search nginx
2)根据关键字列出所有安装包版本:
root@strudy:~# apt list nginx --all-versions
nginx/resolute-updates,resolute-security 1.28.3-2ubuntu1.10 amd64
nginx/resolute 1.28.3-2ubuntu1 amd64
查看信息:
root@strudy:~# apt show nginx
查看软件包依赖谁:
root@strudy:~# apt depends nginx
nginx
依赖: libc6 (>= 2.34)
依赖: libcrypt1 (>= 1:4.1.0)
依赖: libpcre2-8-0 (>= 10.22)
依赖: libssl3t64 (>= 3.0.0)
依赖: zlib1g (>= 1:1.1.4)
依赖: nginx-common (= 1.28.3-2ubuntu1.10)
破坏: nginx-core (<< 1.22.1-6~)
破坏: nginx-extras (<< 1.22.1-6~)
破坏: nginx-light (<< 1.22.1-6~)
替换: nginx-core (<< 1.22.1-6~)
替换: nginx-extras (<< 1.22.1-6~)
替换: nginx-light (<< 1.22.1-6~)
查看谁依赖我:
root@strudy:~# apt rdepends nginx
自动清理:
1)清理无用的依赖包:
root@strudy:~# apt autoremove
2)清理下载的缓存文件:
root@strudy:~# apt autoclean
清理/var/cache/apt/这个文件的东西。
下载软件包:
root@strudy:~# apt install --download-only wget nginx
root@strudy:~# ls /var/cache/apt/archives/
lock nginx-common_1.28.3-2ubuntu1.10_all.deb nginx_1.28.3-2ubuntu1.10_amd64.deb partial wget_1.25.0-2ubuntu4.4_amd64.deb
1.2.3 RPM命令使用
- 常用指令:
| 核心命令 | 说明 |
|---|---|
| -ivh | 安装软件。-i是安装,-v:安装显示详细信息,-h:使用hash进行显示 |
| -qa | 列出所有已安装包 |
| -q | 根据关键字查询指定包,只能查询安装过的包 |
| -ql | 查询已安装包的文件 |
| -qf | 查看文件属于哪个软件包 |
| -qi | 根据关键字查询已安装包信息 |
| -e | 删除 |
- 实例:
根据rpm包安装程序:
1)安装没有依赖的应用程序:
root@studry:/tmp/rpm# rpm -ivh wget-1.24.5-8.el10_2.x86_64.rpm
Verifying... ################################# [100%]
准备中... ################################# [100%]
file /usr/bin/wget from install of wget-1.24.5-8.el10_2.x86_64 conflicts with file from package wget-1.24.5-5.el10.x86_64
file /usr/share/man/man1/wget.1.gz from install of wget-1.24.5-8.el10_2.x86_64 conflicts with file from package wget-1.24.5-5.el10.x86_64
2)安装有依赖的应用程序:
root@studry:/tmp/rpm# rpm -ivh *.rpm
Verifying... ################################# [100%]
准备中... ################################# [100%]
正在升级/安装...
1:nginx-filesystem-2:1.26.3-6.el10_################################# [ 25%]
2:nginx-core-2:1.26.3-6.el10_2.6 ################################# [ 50%]
3:rocky-logos-httpd-100.5-3.el10 ################################# [ 75%]
4:nginx-2:1.26.3-6.el10_2.6 ################################# [100%]
查询nginx是否已安装:
root@studry:/tmp/rpm# rpm -qa|grep nginx
nginx-filesystem-1.26.3-6.el10_2.6.noarch
nginx-core-1.26.3-6.el10_2.6.x86_64
nginx-1.26.3-6.el10_2.6.x86_64
说明:
qa:是列出所有已安装的包
根据关键字查询安装过的包:
root@studry:/tmp/rpm# rpm -q nginx
nginx-1.26.3-6.el10_2.6.x86_64
根据关键字查询已安装的文件:
root@studry:/tmp/rpm# rpm -ql nginx
/usr/bin/nginx-upgrade
/usr/lib/systemd/system/nginx.service
/usr/lib/systemd/system/nginx@.service
/usr/libexec/nginx-ssl-pass-dialog
/usr/share/man/man3/nginx.3pm.gz
/usr/share/man/man8/nginx-upgrade.8.gz
/usr/share/man/man8/nginx.8.gz
/usr/share/nginx/html/icons
/usr/share/nginx/html/icons/poweredby.png
/usr/share/nginx/html/index.html
/usr/share/nginx/html/nginx-logo.png
/usr/share/nginx/html/poweredby.png
/usr/share/nginx/html/system_noindex_logo.png
/usr/share/vim/vimfiles/ftdetect/nginx.vim
/usr/share/vim/vimfiles/ftplugin/nginx.vim
/usr/share/vim/vimfiles/indent/nginx.vim
/usr/share/vim/vimfiles/syntax/nginx.vim
查询文件属于哪个软件包:
root@studry:/tmp/rpm# rpm -qf /etc/nginx/nginx.conf
nginx-core-1.26.3-6.el10_2.6.x86_64
查询包信息:
root@studry:/tmp/rpm# rpm -qi nginx
Name : nginx
Epoch : 2
Version : 1.26.3
Release : 6.el10_2.6
Architecture: x86_64
Install Date: 2026年09月10日 星期四 16时16分47秒
Group : Unspecified
Size : 122241
License : BSD-2-Clause
Signature :
RSA/SHA256, 2026年08月25日 星期二 10时22分58秒, Key ID 5b106c736fedfc85
Source RPM : nginx-1.26.3-6.el10_2.6.src.rpm
Build Date : 2026年08月25日 星期二 09时59分36秒
Build Host : ord1-prod-x86build008.svc.aws.rockylinux.org
Packager : Rocky Linux Build System <releng@rockylinux.org>
Vendor : Rocky Enterprise Software Foundation
URL : https://nginx.org
Bug URL : https://bugs.rockylinux.org
Summary : A high performance web server and reverse proxy server
Description :
Nginx is a web server and a reverse proxy server for HTTP, SMTP, POP3 and
IMAP protocols, with a strong focus on high concurrency, performance and low
memory usage.
删除:
root@studry:/tmp/rpm# rpm -e nginx
root@studry:/tmp/rpm# rpm -e nginx-core nginx-filesystem rocky-logos-httpd
###说明:
卸载只会卸载本身,不会卸载依赖
校验文件是否被修改:
root@studry:/tmp/rpm# rpm -V nginx
root@studry:/tmp/rpm#
这个是校验rpm包中的文件。
rpm包依赖缺失处理
- 方法一: 全下下来,使用*.rpm

- 方法二:使用dnf的localinstall自动安装依赖:
root@studry:/tmp/rpm# dnf localinstall nginx-1.26.3-6.el10_2.6.x86_64.rpm
1.2.4 Ubuntu的dpkg使用
安装本地deb包:
1)安装没有依赖的:
root@strudy:/tmp/deb# dpkg -i wget_1.25.0-2ubuntu4.4_amd64.deb
2)安装有依赖的:
root@strudy:/tmp/deb# dpkg -i nginx-common_1.28.3-2ubuntu1.10_all.deb nginx_1.28.3-2ubuntu1.10_amd64.deb
正在选中未选择的软件包 nginx-common。
(正在读取数据库 ... 系统当前共安装有 154117 个文件和目录。)
准备解压 nginx-common_1.28.3-2ubuntu1.10_all.deb ...
正在解压 nginx-common (1.28.3-2ubuntu1.10) ...
正在选中未选择的软件包 nginx。
准备解压 nginx_1.28.3-2ubuntu1.10_amd64.deb ...
正在解压 nginx (1.28.3-2ubuntu1.10) ...
正在设置 nginx-common (1.28.3-2ubuntu1.10) ...
正在设置 nginx (1.28.3-2ubuntu1.10) ...
* Upgrading binary nginx [ OK ]
正在处理用于 ufw (0.36.2-9build1) 的触发器 ...
正在处理用于 man-db (2.13.1-1build1) 的触发器 ...
查询:
1)列出所有的已安装包:
root@strudy:/tmp/deb# dpkg -l
2)列出指定的包:
root@strudy:/tmp/deb# dpkg -l |grep nginx
ii nginx 1.28.3-2ubuntu1.10 amd64 small, powerful, scalable web/proxy server
ii nginx-common 1.28.3-2ubuntu1.10 all small, powerful, scalable web/proxy server - common
3)查看已安装的文件:
root@strudy:/tmp/deb# dpkg -L nginx
/.
/usr
/usr/sbin
/usr/sbin/nginx
/usr/share
/usr/share/doc
/usr/share/doc/nginx
/usr/share/doc/nginx/changelog.Debian.gz
/usr/share/doc/nginx/copyright
/usr/share/man
/usr/share/man/man8
/usr/share/man/man8/nginx.8.gz
4)查询文件属于哪个软件包:
root@strudy:/tmp/deb# dpkg -S /etc/nginx/nginx.conf
nginx-common: /etc/nginx/nginx.conf
5)查询nginx包的信息:
root@strudy:/tmp/deb# dpkg -s nginx
Package: nginx
Status: install ok installed
Priority: optional
Section: httpd
Installed-Size: 1589
Maintainer: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com>
Architecture: amd64
Version: 1.28.3-2ubuntu1.10
Replaces: nginx-core (<< 1.22.1-6~), nginx-extras (<< 1.22.1-6~), nginx-light (<< 1.22.1-6~)
Provides: httpd, httpd-cgi, nginx-abi-1.28.3-1
Depends: libc6 (>= 2.34), libcrypt1 (>= 1:4.1.0), libpcre2-8-0 (>= 10.22), libssl3t64 (>= 3.0.0), zlib1g (>= 1:1.1.4), nginx-common (= 1.28.3-2ubuntu1.10)
Breaks: nginx-core (<< 1.22.1-6~), nginx-extras (<< 1.22.1-6~), nginx-light (<< 1.22.1-6~)
Description: small, powerful, scalable web/proxy server
Nginx ("engine X") is a high-performance web and reverse proxy server
created by Igor Sysoev. It can be used both as a standalone web server
and as a proxy to reduce the load on back-end HTTP or mail servers.
Homepage: https://nginx.org
Original-Maintainer: Debian Nginx Maintainers <pkg-nginx-maintainers@alioth-lists.debian.net>
6)删除:
root@strudy:/tmp/deb# dpkg -r nginx #保留配置文件
7)彻底删除,连着配置文件一起删除:
root@strudy:/tmp/deb# dpkg -P nginx
(正在读取数据库 ... 系统当前共安装有 154139 个文件和目录。)
正在卸载 nginx (1.28.3-2ubuntu1.10) ...
正在处理用于 man-db (2.13.1-1build1) 的触发器 ...
1.3 仓库配置与镜像源
1.3.1 DNF仓库配置及管理(rockyLinux)
备份原有的仓库配置:
root@studry:/tmp/rpm# cd /etc/yum.repos.d/
root@studry:/etc/yum.repos.d# ls
rocky-addons.repo rocky-devel.repo rocky-extras.repo rocky.repo rocky-security.repo
root@studry:/etc/yum.repos.d# mkdir -p backup
root@studry:/etc/yum.repos.d# mv ro* backup/
root@studry:/etc/yum.repos.d# ls -l
总计 0
drwxr-xr-x. 2 root root 125 9月10日 17:20 backup
替换基础源
替换基础软件源的目的是解决访问速度和软件获取的问题,rocky默认使用官方的软件源,但是下载软件比较慢。
- 替换阿里云源。
阿里云源访问路径: https://developer.aliyun.com/mirror/rockylinux?spm=a2c6h.13651102.0.0.6bd71b11Cs4QY8
修改源:
root@studry:/etc/yum.repos.d# vim rocky.repo
[baseos]
name=Rocky Linux $releasever - BaseOS
baseurl=https://mirrors.aliyun.com/rockylinux/$releasever/BaseOS/$basearch/os/
gpgcheck=1
enabled=1
countme=1
metadata_expire=6h
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-Rocky-$releasever
[appstream]
name=Rocky Linux $releasever - AppStream
baseurl=https://mirrors.aliyun.com/rockylinux/$releasever/AppStream/$basearch/os/
gpgcheck=1
enabled=1
countme=1
metadata_expire=6h
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-Rocky-$releasever
[extras]
name=Rocky Linux $releasever - Extras
baseurl=https://mirrors.aliyun.com/rockylinux/$releasever/extras/$basearch/os/
gpgcheck=1
enabled=1
countme=1
metadata_expire=6h
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-Rocky-$releasever
2)初始化缓存
root@studry:/etc/yum.repos.d# dnf makecache
替换epel源
epel源是 rockyLinux、rhel、centos这些系统的百宝箱。
安装epel仓库:
root@studry:/etc/yum.repos.d# dnf install -y epel-release
替换成阿里云源:
root@studry:/etc/yum.repos.d# vim epel.repo
[epel]
name=Extra Packages for Enterprise Linux $releasever - $basearch
baseurl=https://mirrors.aliyun.com/epel/$releasever/Everything/$basearch/
enabled=1
gpgcheck=1
gpgkey=https://mirrors.aliyun.com/epel/RPM-GPG-KEY-EPEL-$releasever
查看是否替换成功:
root@studry:/etc/yum.repos.d# dnf repolist
仓库 id 仓库名称
appstream Rocky Linux 10 - AppStream
baseos Rocky Linux 10 - BaseOS
epel Extra Packages for Enterprise Linux 10 - x86_64
extras Rocky Linux 10 - Extras
posted on 2026-09-12 17:12 wangmengnan 阅读(21) 评论(0) 收藏 举报
浙公网安备 33010602011771号