linux命令-安装-9
大纲
| 命令 | 依赖解决 | 系统支持 |
|---|---|---|
rpm | ❌ 手动 | Red Hat 系 |
yum | ✅ 自动 | CentOS 7/RHEL 7 |
dnf | ✅ 自动 | CentOS 8+/Fedora |
apt | ✅ 自动 | Debian/Ubuntu |
rpm
RPM(Red Hat Package Manager)是Fedora、RedHat、CentOS等发行版的包管理工具,支持安装、卸载、升级、查询软件包及验证依赖关系
-
安装与升级
功能 命令示例 说明 安装包 rpm -ivh package.rpm-i安装,-v详细输出,-h显示进度条升级包 rpm -Uvh package.rpm-U升级(未安装则直接安装)强制安装 rpm -ivh --force package.rpm覆盖冲突文件或重新安装 忽略依赖 rpm -ivh --nodeps package.rpm不检查依赖关系(不推荐,可能导致运行异常) -
查询操作
功能 命令示例 说明 查询已安装包 rpm -q nginx检查nginx是否安装 列出所有已安装包 rpm -qa配合 grep筛选:rpm -qa查看包详细信息 rpm -qi nginx显示版本、描述、安装时间等 列出包安装文件 rpm -ql nginx如配置文件、可执行文件路径 查询文件所属包 rpm -qf /usr/bin/nginx定位文件来源包 -
卸载与维护
功能 命令示例 说明 卸载包 rpm -e nginx需指定包名(非文件名) 忽略依赖卸载 rpm -e --nodeps nginx强制卸载(可能破坏依赖链) 重建数据库 rpm --rebuilddb修复损坏的RPM数据库 -
使用注意事项
- 依赖问题:RPM不自动解决依赖,推荐优先用
yum或dnf安装;若必须手动安装,需先解决缺失的共享库依赖。 - 文件冲突:安装时提示文件已存在,可加
--force覆盖。 - 权限要求:安装、卸载、升级需root权限,普通用户仅可执行查询操作
- 依赖问题:RPM不自动解决依赖,推荐优先用
yum
yum是基于RPM包管理的Shell前端工具,主要用于Red Hat、CentOS、Fedora、中标麒麟、银河麒麟、UOS、RHEL等Linux发行版。其核心功能是自动处理软件包依赖关系,支持从远程仓库(或本地)安装、卸载、更新、查询软件包,是Linux系统管理中最常用的包管理工具之一。
-
yum仓库说明
-
yum配置文件
路径 说明 /etc/yum.conf 为所有仓库提供公共配置 /etc/yum.repos.d/*.repo 为仓库的指向提供配置 -
yum自建私有仓库
# 1、挂载iso到mnt [root@localhost ~]# mount /dev/cdrom /mnt/cdrom# 2、创建配置文件 /etc/yum.repo.d/iso.repo [repositoryID] # 名称随便定义就行 name=Some name for this repository # baseurl=url://path/to/repository/ baseurl=file:///mnt/ enabled={1|0} # 1启动 0禁用 gpgcheck={1|0} # 1检验 0取消检验 gpgkey=URL # 如果gpgcheck为1 这里需要指定key -
yum仓库公共
厂商 路径 阿里云 http://mirrors.aliyun.com/repo/ docker https://download.docker.com/linux/rhel/7/source/stable/ 麒麟v10 https://update.cs2c.com.cn/NS/V10/V10SP1/os/adv/lic/base/ 清华开源 https://mirrors.tuna.tsinghua.edu.cn 麒麟v10这个有aarch64、mips64(龙芯)、sw_64(申威)、x86_64, 4.19内核
-
rpm包查找
网站名 url路径 pkgs http://pkgs.org Rpmfind http://rpmfind.net rpmpb http://rpm.pbone.net sourceforge https://sourceforge.net/ -
仓库启用(默认直接用就行)
# yum repolist # 列出yum来源 # yum-config-manager --disable mono-centos8-stable # 禁用 mono-centos8-stable # yum-config-manager --enable mono-centos8-stable # 启用 mono-centos8-stable
-
-
参数
-
安装与升级
功能 命令 安装Apache yum install httpd -y 安装本地RPM yum localinstall ./httpd-2.4.6-97.el7.centos.x86_64.rpm -y 卸载Apache yum remove httpd -y 更新所有可更新的软件包(包括内核),保留旧版本文件 yum update 升级系统到最新版本,移除旧版本包(更彻底的升级) yum upgrade -
查询操作
功能 命令示例 查看软件包详细信息 yum info httpd 搜索软件包 yum search httpd 列出所有可更新包 yum list updates 列出所有已安装包 yum list installed 列出所有可安装包 yum list available 查找文件所属包 yum provides /usr/sbin/httpd 查找对应命令对应的软件包 yum whatprovides /usr/sbin/httpd -
清理缓存
功能 命令示例 清理所有缓存(包+元数据) yum clean all 清理包缓存(仅删除下载的RPM包) yum clean packages 清理元数据缓存(仅删除仓库元数据) yum clean metadata 清理本地缓存 /var/cache/yum/$basearch/$releasever
-
-
只下载不安装
离线下载 # 升级结束后去cachedir下将所有目录下的rpm文件取出组合在一起即为当前安装软件所需的所有文件# 下载本地,rpm包下载,yum下载 使用yum downloadonly下载安装包 yum -y install --downloadonly --downloaddir=./ openssh# 说明 --downloadonly 只下载不安装 --downloaddir 下载安装包的位置
DNF
在 RHEL 8.0 版本正式取代了 YUM,DNF包管理器克服了YUM包管理器的一些瓶颈,提升了包括用户体验,内存占用,依赖分析,运行速度等, 下一代 安装包管理,跟7的参数差不太多
-
软件包安装与卸载
命令 作用 示例 dnf install <包名> -y安装指定软件包(跳过确认) dnf install httpd -y(无需确认安装)dnf remove <包名>卸载指定软件包 dnf remove httpd(卸载Apache)dnf reinstall <包名>重新安装指定软件包(修复损坏安装) dnf reinstall httpd(重新安装Apache) -
软件包更新
命令 作用 示例 dnf check-update检查系统中可更新的软件包 dnf check-update(列出所有可更新包)dnf update/dnf upgrade更新所有已安装软件包(不改变系统设置) dnf update(更新所有包);dnf upgrade httpd(仅更新Apache)dnf distro-sync同步系统到最新稳定发行版(比 update更彻底,会升级系统版本但保留内核)dnf distro-sync(同步到最新发行版)dnf downgrade <包名>降级指定软件包到之前的版本 dnf downgrade httpd(将Apache降级到上一版本) -
软件包查询
命令 作用 示例 dnf search <关键字>根据关键字搜索软件仓库中的包 dnf search nano(搜索nano文本编辑器)dnf info <包名>查看指定软件包的详细信息(版本、描述、依赖等) dnf info nano(查看nano的详细信息)dnf list列出所有已安装和可用的软件包 dnf list(全部列出);dnf list installed(仅列已安装包);dnf list available(仅列可用包)dnf provides <文件路径>查找哪个软件包提供了指定文件 dnf provides /bin/bash(查找/bin/bash的提供者) -
仓库管理
命令 作用 示例 dnf repolist列出已启用的软件仓库 dnf repolist(查看启用的仓库)dnf repolist all列出所有仓库(包括禁用的) dnf repolist all(查看所有仓库状态)dnf config-manager --add-repo <仓库URL/文件>添加新仓库 dnf config-manager --add-repo https://example.com/repo.repo(添加远程仓库)dnf config-manager --set-enabled <仓库名>启用指定仓库 dnf config-manager --set-enabled epel(启用EPEL仓库)dnf config-manager --set-disabled <仓库名>禁用指定仓库 dnf config-manager --set-disabled epel(禁用EPEL仓库) -
依赖与清理
命令 作用 示例 dnf autoremove删除无用孤立依赖(不再被任何包依赖的包) dnf autoremove(清理无用依赖)dnf clean all删除缓存文件(包括下载的包、元数据) dnf clean all(清理所有缓存,解决更新问题时常用) -
命令历史
命令 作用 示例 dnf history查看 dnf命令执行历史(包括安装、更新、删除等操作)dnf history(列出历史命令)dnf history info <ID>查看指定历史条目的详细信息( ID来自dnf history的输出)dnf history info 10(查看第10条历史的详细信息) -
软件组管理
命令 作用 示例 dnf grouplist列出所有可用的软件组 dnf grouplist(查看软件组列表)dnf groupinstall <组名>安装指定软件组 dnf groupinstall 'System Tools'(安装系统工具组)dnf groupupdate <组名>更新指定软件组中的包 dnf groupupdate 'System Tools'(更新系统工具组)dnf groupremove <组名>删除指定软件组 dnf groupremove 'System Tools'(删除系统工具组) -
配置及日志
说明 路径 配置文件 /etc/dnf/dnf.conf 仓库文件 /etc/yum.repos.d/ *.repo 日志 /var/log/dnf.rpm.log
apt
-
参数
功能 命令示例 新软件源(获取最新软件信息) apt update 安装指定软件包及其依赖(自动解决依赖问题) apt install nginx mysql 升级所有已安装软件 apt upgrade 用于系统大版本升级,如Ubuntu 22.04→24.04 apt full-upgrade 卸载软件,但保留配置文件,方便重新安装时恢复配置。 apt remove nginx 自动清理未使用的依赖 apt autoremove 搜索软件源中的软件包(支持模糊匹配) apt search [关键词] 清理所有下载的包缓存 apt clean 将软件包下载到当前目录(.deb格式),用于离线安装。 apt download [软件包名]
