学习笔记-RPM软件包 管理相关 rpm软件包是什么
qiyuwang 2024-10-19 08:57 31 浏览 0 评论
YUM 与 DNF 区别
YUM
Yellowdog Updater, Modified (YUM)是一个免费的开源程序Yellowdog Updater, Modified (YUM)是一个免费的开源程序
UM基本上是一个包管理工具,用于安装、更新和删除Red Hat Enterprise Linux中的软件包UM基本上是一个包管理工具,用于安装、更新和删除Red Hat Enterprise Linux中的软件包
YUM与早期的包管理器相比的一个主要卖点是,它不仅安装您想要安装的包,而且自动安装作为您想要安装的包的先决条件的任何包
DNF
Dandified YUM,即DNF,是Yum的升级版
Fedora 22 和RHEL(Red Hat Enterprise Linux)8及以上版本中默认使用的包管理工具
DNF在功能上与Yum类似,但实现上使用了更现代的技术
主要的区别是DNF坚持严格的API,这鼓励为DNF开发扩展和插件
相比Yum,DNF在依赖解决和包查询等操作上更快速,拥有更好的性能。这是因为DNF使用了更先进的解决算法和更高效的数据结构
YUM DNF 软件包 命令
更新软件包
# 清除 YUM 缓存
sudo yum clean all
sudo dnf clean all
# 创建 YUM 缓存
sudo yum makecache
sudo dnf makecache
# 更新 系统
sudo yum update -y
sudo dnf update -y
# 合并命令
sudo yum clean all && sudo yum makecache && sudo yum update -y
sudo dnf clean all && sudo dnf makecache && sudo dnf update -y
安装软件包
# 安装软件包
yum install -y {软件包名}
# 更新软件包
yum update -y {软件包名}
# 安装可用的软件包组
yum groupinstall {软件包组名}
# 更新指定的软件包组
yum groupupdate {软件包组名}
# 硬盘安装rpm包并使用yum解决依赖
yum localinstall {软件包名}
卸载软件包
# 卸载软件包
yum remove {软件包名}
# 卸载指定软件组中的软件包
yum groupremove {软件包组名}
查找软件包
# 查找软件包
yum search {软件包名}
# 查看系统中已经安装的和可用的软件组
yum grouplist
# 查询指定软件包的依赖关系
yum deplist {软件包名}
#
# 列出所有可安装的软件包
yum list
# 列出所有可更新的软件包
yum list updates
# 列出所有已安装的软件包
yum list installed
# 列出所有已安装,但不在YUM源中的软件包
yum list extras
# 列出所有指定软件包
yum list {软件包名}
# 获取软件包信息
yum info {软件包名}
# 获取所有可更新的软件包信息
yum info updates
# 获取获取所有已安裝的软件包信息
yum info installed
# 获取所有已安裝但不在Yum Repository內的软件包信息
yum info extras
# 软件包提供哪些文件
yum provides {软件包名}
清理软件包
# 清除缓存目录(/var/cache/yum)下的软件包
yum clean packages
# 除缓存目录(/var/cache/yum)下的 headers
yum clean headers
# 清除缓存目录(/var/cache/yum)下旧的 headers
yum clean oldheaders
# 清除缓存目录(/var/cache/yum)下的软件包及旧的headers
yum clean
yum clean all
yum clean packages && yum clean oldheaders# 清除缓存目录(/var/cache/yum)下的软件包
yum clean packages
# 除缓存目录(/var/cache/yum)下的 headers
yum clean headers
# 清除缓存目录(/var/cache/yum)下旧的 headers
yum clean oldheaders
# 清除缓存目录(/var/cache/yum)下的软件包及旧的headers
yum clean
yum clean all
yum clean packages && yum clean oldheaders
特殊应用
# 加快 YUM下载速度的软件包
yum -y install yum-fastestmirror
RPM 安装命令
安装软件包
# 安装一个软件包
# -i 安装软件包
# -v 可视化安装
# -h 显示安装进度
# –force 强制安装,覆盖安装
# –nodeps 不验证依赖,直接安装
rpm -ivh {软件包名}
# 升级一个软件包
rpm -Uvh {软件包名}
卸载软件包
# 卸载一个软件包
rpm -e {软件包名}
查询软件包
# 查询一个包是否被安装
rpm -q {软件包名}
# 查询被安装的包的信息
rpm -qi {软件包名}
# 列出该包中有哪些文件
rpm -ql {软件包名}
# 列出一个文件属于哪一个RPM包
rpm -qf
官方帮助文档
YUM 官方帮助文档
已加载插件:fastestmirror
Usage: yum [options] COMMAND
List of Commands:
check 检查 RPM 数据库问题
check-update 检查是否有可用的软件包更新
clean 删除缓存数据
deplist 列出软件包的依赖关系
distribution-synchronization 已同步软件包到最新可用版本
downgrade 降级软件包
erase 从系统中移除一个或多个软件包
fs Acts on the filesystem data of the host, mainly for removing docs/lanuages for minimal hosts.
fssnapshot Creates filesystem snapshots, or lists/deletes current snapshots.
groups 显示或使用、组信息
help 显示用法提示
history 显示或使用事务历史
info 显示关于软件包或组的详细信息
install 向系统中安装一个或多个软件包
list 列出一个或一组软件包
load-transaction 从文件名中加载一个已存事务
makecache 创建元数据缓存
provides 查找提供指定内容的软件包
reinstall 覆盖安装软件包
repo-pkgs 将一个源当作一个软件包组,这样我们就可以一次性安装/移除全部软件包。
repolist 显示已配置的源
search 在软件包详细信息中搜索指定字符串
shell 运行交互式的 yum shell
swap Simple way to swap packages, instead of using shell
update 更新系统中的一个或多个软件包
update-minimal Works like upgrade, but goes to the 'newest' package match which fixes a problem that affects your system
updateinfo Acts on repository update information
upgrade 更新软件包同时考虑软件包取代关系
version 显示机器和/或可用的源版本。
Options:
-h, --help 显示此帮助消息并退出
-t, --tolerant 忽略错误
-C, --cacheonly 完全从系统缓存运行,不升级缓存
-c [config file], --config=[config file]
配置文件路径
-R [minutes], --randomwait=[minutes]
命令最长等待时间
-d [debug level], --debuglevel=[debug level]
调试输出级别
--showduplicates 在 list/search 命令下,显示源里重复的条目
-e [error level], --errorlevel=[error level]
错误输出级别
--rpmverbosity=[debug level name]
RPM 调试输出级别
-q, --quiet 静默执行
-v, --verbose 详尽的操作过程
-y, --assumeyes 回答全部问题为是
--assumeno 回答全部问题为否
--version 显示 Yum 版本然后退出
--installroot=[path] 设置安装根目录
--enablerepo=[repo] 启用一个或多个软件源(支持通配符)
--disablerepo=[repo] 禁用一个或多个软件源(支持通配符)
-x [package], --exclude=[package]
采用全名或通配符排除软件包
--disableexcludes=[repo]
禁止从主配置,从源或者从任何位置排除
--disableincludes=[repo]
disable includepkgs for a repo or for everything
--obsoletes 更新时处理软件包取代关系
--noplugins 禁用 Yum 插件
--nogpgcheck 禁用 GPG 签名检查
--disableplugin=[plugin]
禁用指定名称的插件
--enableplugin=[plugin]
启用指定名称的插件
--skip-broken 忽略存在依赖关系问题的软件包
--color=COLOR 配置是否使用颜色
--releasever=RELEASEVER
在 yum 配置和 repo 文件里设置 $releasever 的值
--downloadonly 仅下载而不更新
--downloaddir=DLDIR 指定一个其他文件夹用于保存软件包
--setopt=SETOPTS 设置任意配置和源选项
--bugfix Include bugfix relevant packages, in updates
--security Include security relevant packages, in updates
--advisory=ADVS, --advisories=ADVS
Include packages needed to fix the given advisory, in
updates
--bzs=BZS Include packages needed to fix the given BZ, in
updates
--cves=CVES Include packages needed to fix the given CVE, in
updates
--sec-severity=SEVS, --secseverity=SEVS
Include security relevant packages matching the
severity, in updates
插件选项:
DNF 官方帮助文档
usage: dnf [options] COMMAND
主要命令列表:
alias 列出或创建命令别名
autoremove 删除所有原先因为依赖关系安装的不需要的软件包
check 在包数据库中寻找问题
check-update 检查是否有软件包升级
clean 删除已缓存的数据
deplist [已弃用,请使用 repoquery --deplist] 列出软件包的依赖关系和提供这些软件包的源
distro-sync 同步已经安装的软件包到最新可用版本
downgrade 降级包
group 显示或使用组信息
help 显示一个有帮助的用法信息
history 显示或使用事务历史
info 显示关于软件包或软件包组的详细信息
install 向系统中安装一个或多个软件包
list 列出一个或一组软件包
makecache 创建元数据缓存
mark 在已安装的软件包中标记或者取消标记由用户安装的软件包。
module 与模块交互。
provides 查找提供指定内容的软件包
reinstall 重装一个包
remove 从系统中移除一个或多个软件包
repolist 显示已配置的软件仓库
repoquery 搜索匹配关键字的软件包
repository-packages 对指定仓库中的所有软件包运行命令
search 在软件包详细信息中搜索指定字符串
shell 运行一个交互式的 DNF shell
swap 运行一个交互式的 DNF mod 以删除或安装 spec
updateinfo 显示软件包的参考建议
upgrade 升级系统中的一个或多个软件包
upgrade-minimal 升级,但只有“最新”的软件包已修复可能影响你的系统的问题
插件命令列表:
builddep Install build dependencies for package or spec file
changelog 查看软件包的改变日志数据
config-manager 管理 dnf 配置选项和软件仓库
copr 与 Copr 仓库交互。
debug-dump 转储已安装的 RPM 软件包信息至文件
debug-restore 恢复调试用转储文件中的软件包记录
debuginfo-install 安装调试信息软件包
download 下载软件包至当前目录
groups-manager 创建并编辑组元数据文件
needs-restarting 判断所升级的二进制文件是否需要重启
offline-distrosync 准备系统的离线 distrosync
offline-upgrade 准备系统的离线升级
playground 与 Playground 仓库交互。
repoclosure 显示仓库中未被解决的依赖关系的列表
repodiff 列出两组仓库中的不同
repograph 以点线图方式输出完整的软件包依赖关系图
repomanage 管理 RPM 软件包目录
reposync 下载远程仓库中的全部软件包
system-upgrade 准备系统以升级到新版本
General DNF options:
-c [config file], --config [config file]
配置文件位置
-q, --quiet 静默执行
-v, --verbose 详尽执行
--version 显示 DNF 的版本并退出
--installroot [path] 设置目标根目录
--nodocs 不要安装文档
--noplugins 禁用所有插件
--enableplugin [plugin]
启用指定名称的插件
--disableplugin [plugin]
禁用指定名称的插件
--releasever RELEASEVER
覆盖在配置文件和仓库文件中 $releasever 的值
--setopt SETOPTS 设置任意配置和仓库选项
--skip-broken 通过跳过软件包来解决依赖问题
-h, --help, --help-cmd
显示命令帮助
--allowerasing 允许解决依赖关系时删除已安装软件包
-b, --best 在事务中尝试最佳软件包版本。
--nobest 不将事务限制在最佳候选
-C, --cacheonly 完全从系统缓存运行,不升级缓存
-R [minutes], --randomwait [minutes]
最大命令等待时间
-d [debug level], --debuglevel [debug level]
调试输出级别
--debugsolver 转储详细解决结果至文件
--showduplicates 在 list/search 命令下,显示仓库里重复的条目
-e ERRORLEVEL, --errorlevel ERRORLEVEL
错误输出级别
--obsoletes 对 upgrade 启用 dnf 的过期处理逻辑,或对 info、list 和 repoquery
启用软件包过期的显示功能
--rpmverbosity [debug level name]
rpm调试输出等级
-y, --assumeyes 全部问题自动应答为是
--assumeno 全部问题自动应答为否
--enablerepo [repo] 为当前 dnf 命令临时启用仓库。接受一个 id、以逗号分隔的多个 id 列表,或 ids
glob。此选项可多次指定。
--disablerepo [repo] 为当前 dnf 命令临时禁用仓库。接受一个 id、以逗号分隔的多个 id 列表,或 ids
glob。此选项可多次指定,但它与 `--repo` 是相互排斥的。
--repo [repo], --repoid [repo]
启用指定 id 或 glob 的仓库,可以指定多次
--enable 使用 config-manager 命令启用 repos (自动保存)
--disable 使用 config-manager 命令禁用 repos (自动保存)
-x [package], --exclude [package], --excludepkgs [package]
用全名或通配符排除软件包
--disableexcludes [repo], --disableexcludepkgs [repo]
禁用 excludepkgs
--repofrompath [repo,path]
附加仓库所要使用的标签和路径(与 baseurl 中的路径一致),可以指定多次。
--noautoremove 禁用删除不再被使用的依赖软件包
--nogpgcheck 禁用 gpg 签名检查 (如果 RPM 策略允许)
--color COLOR 配置是否使用颜色
--refresh 在运行命令之前将元数据标记为过期
-4 仅解析 IPv4 地址
-6 仅解析 IPv6 地址
--destdir DESTDIR, --downloaddir DESTDIR
设置软件包要复制到的目录
--downloadonly 仅下载软件包
--comment COMMENT 为事务添加一个注释
--bugfix 在更新中包括与 bug 修复有关的软件包
--enhancement 在更新中包括与功能增强有关的软件包
--newpackage 在更新中包括与新软件包有关的软件包
--security 在更新中包括与安全有关的软件包
--advisory ADVISORY, --advisories ADVISORY
在更新中包括修复指定公告所必须的软件包
--bz BUGZILLA, --bzs BUGZILLA
在更新中包括修复给定 BZ 所必须的软件包
--cve CVES, --cves CVES
在更新中包括修复给定 CVE 所必须的软件包
--sec-severity {Critical,Important,Moderate,Low}, --secseverity {Critical,Important,Moderate,Low}
在更新中包括匹配给定安全等级的安全相关的软件包
--forcearch ARCH 强制使用一个架构
RPM 官方帮助文档
用法: rpm [选项...]
查询/验证软件包选项:
-a, --all 查询/验证所有软件包
-f, --file 查询/验证文件属于的软件包
-g, --group 查询/验证组中的软件包
-p, --package 查询/验证一个软件包
--pkgid query/verify package(s) with package
identifier
--hdrid query/verify package(s) with header
identifier
--triggeredby query the package(s) triggered by the
package
--whatrequires query/verify the package(s) which require a
dependency
--whatprovides 查询/验证提供相关依赖的软件包
--nomanifest 不把非软件包文件作为清单处理
查询选项(用 -q 或 --query):
-c, --configfiles 列出所有配置文件
-d, --docfiles 列出所有程序文档
-L, --licensefiles list all license files
--dump 转储基本文件信息
-l, --list 列出软件包中的文件
--queryformat=QUERYFORMAT 使用这种格式打印信息
-s, --state 显示列出文件的状态
验证选项(用 -V 或 --verify):
--nofiledigest 不验证文件摘要
--nofiles 不验证软件包中文件
--nodeps 不验证包依赖
--noscript 不执行验证脚本
安装/升级/擦除选项:
--allfiles 安装全部文件,包含配置文件,否则配置文件会被跳过。
--allmatches 移除所有符合 <package>
的软件包(如果 <package>
被指定未多个软件包,常常会导致错误出现)
--badreloc 对不可重定位的软件包重新分配文件位置
-e, --erase=<package>+ 清除 (卸载) 软件包
--excludedocs 不安装程序文档
--excludepath=<path> 略过以 <path> 开头的文件
--force --replacepkgs --replacefiles 的缩写
-F, --freshen=<packagefile>+ 如果软件包已经安装,升级软件包
-h, --hash 软件包安装的时候列出哈希标记
(和 -v 一起使用效果更好)
--ignorearch 不验证软件包架构
--ignoreos 不验证软件包操作系统
--ignoresize 在安装前不检查磁盘空间
-i, --install 安装软件包
--justdb 更新数据库,但不修改文件系统
--nodeps 不验证软件包依赖
--nofiledigest 不验证文件摘要
--nocontexts 不安装文件的安全上下文
--noorder 不对软件包安装重新排序以满足依赖关系
--noscripts 不执行软件包脚本
--notriggers 不执行本软件包触发的任何脚本
--nocollections 请不要执行任何动作集
--oldpackage 更新到软件包的旧版本(带 --force
自动完成这一功能)
--percent 安装软件包时打印百分比
--prefix=<dir> 如果可重定位,便把软件包重定位到 <dir>
--relocate=<old>=<new> 将文件从 <old> 重定位到 <new>
--replacefiles 忽略软件包之间的冲突的文件
--replacepkgs 如果软件包已经有了,重新安装软件包
--test 不真正安装,只是判断下是否能安装
-U, --upgrade=<packagefile>+ 升级软件包
--reinstall=<packagefile>+ reinstall package(s)
所有 rpm 模式和可执行文件的通用选项:
-D, --define=“MACRO EXPR” 定义值为 EXPR 的 MACRO
--undefine=MACRO undefine MACRO
-E, --eval=“EXPR” 打印 EXPR 的宏展开
--macros=<FILE:…> 从文件 <FILE:...>
读取宏,不使用默认文件
--noplugins don't enable any plugins
--nodigest 不校验软件包的摘要
--nosignature 不验证软件包签名
--rcfile=<FILE:…> 从文件 <FILE:...>
读取宏,不使用默认文件
-r, --root=ROOT 使用 ROOT 作为顶级目录 (default:
"/")
--dbpath=DIRECTORY 使用 DIRECTORY 目录中的数据库
--querytags 显示已知的查询标签
--showrc 显示最终的 rpmrc 和宏配置
--quiet 提供更少的详细信息输出
-v, --verbose 提供更多的详细信息输出
--version 打印使用的 rpm 版本号
Options implemented via popt alias/exec:
--scripts list install/erase scriptlets from
package(s)
--setperms set permissions of files in a package
--setugids set user/group ownership of files in a
package
--setcaps set capabilities of files in a package
--restore restore file/directory permissions
--conflicts list capabilities this package conflicts
with
--obsoletes list other packages removed by installing
this package
--provides list capabilities that this package provides
--requires list capabilities required by package(s)
--info list descriptive information from package(s)
--changelog list change logs for this package
--xml list metadata in xml
--triggers list trigger scriptlets from package(s)
--last list package(s) by install time, most
recent first
--dupes list duplicated packages
--filesbypkg list all files from each package
--fileclass list file names with classes
--filecolor list file names with colors
--fscontext list file names with security context from
file system
--fileprovide list file names with provides
--filerequire list file names with requires
--filecaps list file names with POSIX1.e capabilities
Help options:
-?, --help Show this help message
--usage Display brief usage message
相关推荐
- 基于Docker方式安装与部署Camunda流程引擎
-
1Camunda简介官网:https://docs.camunda.org/manual/7.19/installation/docker/Camunda是一个轻量级、开源且高度灵活的工作流和决策自...
- 宝塔Linux面板如何部署Java项目?(宝塔面板 linux)
-
通过宝塔面板部署Java还是很方便的,至少不需要自己输入tomcat之类的安装命令了。在部署java项目前,我还是先说下目前的系统环境,如果和我的系统环境不一样,导致部署不成功,那你可能需要去找其他资...
- 浪潮服务器如何用IPMI安装Linux系统
-
【注意事项】此处以浪潮服务器为例进行演示所需使用的软件:Chrome浏览器个人PC中需要预先安装java,推荐使用jdk-8u181-windows-x64.exe【操作步骤】1、在服务器的BIOS中...
- Centos7环境Hadoop3集群搭建(hadoop集群环境搭建实验报告)
-
由于项目需要存储历史业务数据,经过评估数据量会达到100亿以上,在原有mongodb集群和ES集群基础上,需要搭建Hbase集群进行调研,所以首先总结一下Hadoop集群的搭建过程。一、三个节点的集群...
- Hadoop高可用集群搭建及API调用(hadoop高可用原理)
-
NameNodeHA背景在Hadoop1中NameNode存在一个单点故障问题,如果NameNode所在的机器发生故障,整个集群就将不可用(Hadoop1中虽然有个SecorndaryNameNo...
- 使用Wordpress搭建一个属于自己的网站
-
现在开源的博客很多,但是考虑到wordpress对网站的seo做的很好,插件也多。并且全世界流量排名前1000万的网站有33.4%是用Wordpress搭建的!所以尝试用Wordpress搭建一个网站...
- Centos 安装 Jenkins(centos 安装ssh)
-
1、Java安装查看系统是否已安装Javayumlistinstalled|grepjava...
- Java教程:gitlab-使用入门(java中的git)
-
1导读本教程主要讲解了GitLab在项目的环境搭建和基本的使用,可以帮助大家在企业中能够自主搭建GitLab服务,并且可以GitLab中的组、权限、项目自主操作...
- Dockerfile部署Java项目(docker部署java应用)
-
1、概述本文主要会简单介绍什么是Docker,什么是Dockerfile,如何安装Docker,Dockerfile如何编写,如何通过Dockerfile安装jar包并外置yaml文件以及如何通过do...
- 如何在Eclipse中搭建Zabbix源码的调试和开发环境
-
Zabbix是一款非常优秀的企业级软件,被设计用于对数万台服务器、虚拟机和网络设备的数百万个监控项进行实时监控。Zabbix是开放源码和免费的,这就意味着当出现bug时,我们可以很方便地通过调试源码来...
- Java路径-02-Java环境配置(java环境搭建及配置教程)
-
1Window环境配置1.1下载...
- 35.Centos中安装python和web.py框架
-
文章目录前言1.Centos7python:2.Centos8python:3.进行下载web.py框架然后应用:4.安装好之后进行验证:5.总结:前言...
- 《我的世界》服务器搭建(我的世界服务器如何搭建)
-
1.CentOS7环境1.1更改YUM源#下载YUM源文件curl-o/etc/yum.repos.d/CentOS-Base.repohttps://mirrors.aliyun.com...
- CentOS 7 升级 GCC 版本(centos7.4升级7.5)
-
1.GCC工具介绍GCC编译器:...
- Linux安装Nginx详细教程(linux安装配置nginx)
-
环境准备1.因为Nginx依赖于gcc的编译环境,所以,需要安装编译环境来使Nginx能够编译起来。命令:yuminstallgcc-c++显示完毕,表示安装完成:2.Nginx的http模块需要...
你 发表评论:
欢迎- 一周热门
- 最近发表
-
- 基于Docker方式安装与部署Camunda流程引擎
- 宝塔Linux面板如何部署Java项目?(宝塔面板 linux)
- 浪潮服务器如何用IPMI安装Linux系统
- Centos7环境Hadoop3集群搭建(hadoop集群环境搭建实验报告)
- Hadoop高可用集群搭建及API调用(hadoop高可用原理)
- 使用Wordpress搭建一个属于自己的网站
- Centos 安装 Jenkins(centos 安装ssh)
- Java教程:gitlab-使用入门(java中的git)
- Dockerfile部署Java项目(docker部署java应用)
- 如何在Eclipse中搭建Zabbix源码的调试和开发环境
- 标签列表
-
- navicat无法连接mysql服务器 (65)
- 下横线怎么打 (71)
- flash插件怎么安装 (60)
- lol体验服怎么进 (66)
- ae插件怎么安装 (62)
- yum卸载 (75)
- .key文件 (63)
- cad一打开就致命错误是怎么回事 (61)
- rpm文件怎么安装 (66)
- linux取消挂载 (81)
- ie代理配置错误 (61)
- ajax error (67)
- centos7 重启网络 (67)
- centos6下载 (58)
- mysql 外网访问权限 (69)
- centos查看内核版本 (61)
- ps错误16 (66)
- nodejs读取json文件 (64)
- centos7 1810 (59)
- 加载com加载项时运行错误 (67)
- php打乱数组顺序 (68)
- cad安装失败怎么解决 (58)
- 因文件头错误而不能打开怎么解决 (68)
- js判断字符串为空 (62)
- centos查看端口 (64)