关键词:
RPM 命令
我们可以直接使用rpm命令,对软件包进行一些操作。
安装
rpm –ivh <package_name>
rpm –Uvh <package_name> # 没有安装过,则安装
rpm –Fvh <package_name> # 没有安装过,则忽略
-nodeps
忽略依赖问题,一般仅用于测试-i
install;-v
详细信息;-h
以安装信息栏显示安装进度;--test
可以测试是否有属性依赖问题
卸载
rpm –e <package_name> # 有其它包依赖此RPM包时,卸载会报错
升级
升级时使用-ivh
会提示文件冲突
rpm –Uvh <package_name>
没有安装过,则安装rpm –Fvh <package_name>
没有安装过,则忽略
查找
rpm -q[licdR] 已安装的软件名
rpm -qp[licdR] 未安装的文件名称
,注意,这里查看的前提是你本地有一个这个未安装的软件包rpm -qf 存在于系统的某个文件名
参数:
查询已安装软件的信息:
-q
判断软件是否已安装rpm -q mock
,如果安装了,那么会列出该包的全名-qa
列出所有的已安装在本机上的软件名称-qi
列出软件的详细信息,开发商、版本等-ql
列出该软件的所有文件与目录-qc
列出该软件的所有配文件(找出在/etc
下面的目录名而已)-qR
列出与该软件有关的依赖软件及文件,注意了,这里不只是列出了依赖的软件-qf
找出与后面接的文件所属哪个软件,注意文件名要「绝对路径」,例如rpm -qf /bin/rz
非已安装软件:
-qp[icdlR]
用途差不多,但是并非已安装的软件信息,比如本地有个软件filename.x86_64.rpm
,可以rpm -qpR ./filename.x86_64.rpm
。
验证
对已安装的包进行文件校验:
rpm –V <package_name>
rpm -Vp <rpm_file>
rpm -Va
导入key:
rpm --import <RPM_KEY>
在包安装之前进行签名校验:
rpm -K <rpm_>file
重建数据库
RPM 数据库存储在 /var/lib/rpm
内,如果文件损坏,可以重建:
rpm –rebuilddb 解决系统RPM数据库的异常
YUM 命令
yum 其实是透明的调用 rpm,相当于在 rpm 基础上封装的更易使用的“前端”。
它主要设计来解决软件包之间的依赖性,并可从多个资源库(我们称之为“源”,典型的由 /etc/yum.repos.d/
目录下的每个 .repo
文件定义)。
源制作
createrepo <dir>
一般的 CentOS 系的 ISO 镜像中,都带有安装时使用的rpm包。可以将这部分文件mount到本地,创建本地源,以减少软件安装时的上网下载。
例如,你在一个有 RPM 包的文件夹下,就可以执行 createrepo .
命令,然后你的 REPO
配置一个本地源也是 OK 的。
安装
yum install <package_name>[-<version_info>] -y
yum localinstall <rpm_file> 本地安装
yum groupinstall <group_name> 组安装
升级
yum update [package_name]
降级
yum downgrade <package_name>-<version_info>
卸载
yum remove/erase <package_name>
谨慎使用: 此命令会卸载掉所有依赖此包的RPM包
查找
yum search <pkg_name> # 搜索相关软件
yum list # 列出目前 yum 管理的所有软件 注意,这里包含了未安装的软件
yum list 以及相关的一些命令则能够为你提供有关软件包、软件包集和软件仓库的信息。所有的 yum list 命令都能够使用 glob 表达式作为参数,对输出结果进行过滤。在 glob 表达式中,你可以使用 * 代表任何数量个字符,使用 ? 代表任何一个字符。
yum list <glob_expr> [more_glob_exprs] 列出所有符合 glob 表达式的软件包
yum list all
列出所有已安装的和可用的软件包yum list installed
列出所有已经安装在系统中的软件包。输出结果的最右边一列是取得该软件包的软件仓库。标识为 installed 的软件包则说明它是做为系统基本组件而预安装的。yum list available
列出所有启用的软件仓库中可用的软件包yum list --showduplicates |grep nginx |sort
这样就会显示启用的 YUM 源中 nginx 的所有版本,而不是最新版本yum grouplist
列出所有软件包组yum repolist [-v]
列出所有启用的软件仓库的 ID,名称 及其包含的软件包的数量
本地缓存相关
yum clean all 清除本地缓存
yum makecache 只做本地缓存
其他
- 使用
yum info <package_name> [more_names]
命令可查看一个或多个软件包的信息 (此处同样可以应用 glob 表达式)。 yum provides <filename>
这个命令左右和rpm -qf
挺类似,有用的一个命令,例如yum provides /usr/bin/mock
依赖包下载研究
利用 downloadonly
下载
这种方式可能需要先安装 downloadonly
插键才行,不过我发现,我没安装就有了。
yum install --downloadonly --downloaddir=/tmp/yums/ nginx
如果主机上已经安装了 nginx,那么这个命令貌似并不会把 nginx 等相关依赖包下载下来。只有当主机上没有安装 nginx 包时,这个下载才会 OK。
利用这个命令,你可以一次下载多个包的依赖包的:
yum install --downloadonly --downloaddir=/root/mypackages/ httpd-2.2.6-40.el7 vsftpd
利用 yumdownloader
工具
它可以一次性下载任何 RPM 软件包及其所有依赖包。如果主机上没有这个命令,则需要安装:
yum install -y yum-utils
下载包的依赖包,并指定存放的目录(如果不指定,就默认下载到当前目录):
yumdownloader --resolve --destdir=/tmp/yums/ nginx
# OR
yumdownloader --resolve --destdir /tmp/yums/ nginx
我发现这个命令和上面 downloadonly
一样的现象,当 nginx 包已经安装在主机上了,它就不会去下载它的依赖包,但是和上面有所区别的是,它还是会把 nginx 这个包下载下来的。
其他
repoquery --requires --resolve <package-name>
# rpmrepater會向用戶顯示已安裝包的列表,你可以使用上/下箭頭來滾動屏幕
# 可以在指定包上使用"r"鍵來顯示其依賴關係,循環在指定包上按下"r"鍵可以展示出餘下的信息。
# "L"標誌的意思是說這個包是一片“孤葉”,意思說說沒有任何包依賴它。
# "o"標誌是說這個包是整個依賴鏈的中間部分。
# 按下"b"鍵會顯示其他依賴於該包的其他包。
yum install rpmreaper
rpmreaper
参考
- How can I instruct yum to install a specific version of package X?
- How to Install Specific Version of Package on CentOS & RHEL 7
- YUM – Install Specific Version of Package
- 鬼谷君-Yum自动下载RPM包及其所有依赖的包
- 教你如何在Fedora,CentOS,RHEL中检查RPM包的依赖性 很全了
tree安装及相关参数(代码片段)
一、安装tree要安装tree,要先进行yum源安装(1)安装tree命令,#yum-yinstalltree (2)查看安装是否成功#yumlistinstalledtree 二、tree命令参数 1)tree——自动给出以树形的形式列出当前目录的文件和文件夹,不加任何参... 查看详情
userdel---删除用户及相关文件(代码片段)
...erdel命令 userdel命令用于删除给定的用户,以及与用户相关的文件。若不加选项,则仅删除用户帐号,而不删除相关文件。语法userdel(选项)(参数)选项-f:强制删除用户,即使用户当前已登录;-r:删除用户的同时,删除与用户... 查看详情
第四周学习心得rpmyum和lvm管理的相关概念及理解(代码片段)
包的组成:二进制文件、库文件、配置文件、帮助文件程序包管理器:debian:deb文件,dpkg包管理器redhat:rpm文件,rpm包管理器rpm包命名方式:name-VERSION-release.arch.rpm例:bash-4.2.46-19.el7.x86_64.rpmVERSION:major.minor.releaserelease:release.OS常见... 查看详情
ifconfig相关参数及用法说明(代码片段)
...g ifconfig主要是可以手动启动、观察与修改网络接口的相关参数,可以修改的参数很多,包括IP参数以及MTU等都可以修改,它的语法如下:[[email protected]~]#ifconfiginterfaceup|down<==观察与启动接口[[email protected]~]#ifconfiginte... 查看详情
命令模式详细介绍及实例解析(代码片段)
...值)——quotefromWikipedia简而言之,命令模式就是将封装了相关方法的类进行收集并调用,最终实现相应的结果。2.命令模式的优缺点:优点:1、降低了系统耦合度。2、新的命令可以很容易添加到系统中去。缺点:使用命令模式可... 查看详情
linux使用nmcli命令修ip及命令参数和网卡配置文件对应关系(代码片段)
...7/8及Ubuntu18/20中,通过NetworkManager工具包可以管理网络相关内容NetworkManager主要工具应用程序或工具描述NetworkManager默认联网守护进程nmtuiNetworkManager的使用光标的简单文本用户界面(TUI 查看详情
详解数仓的锁相关参数及视图(代码片段)
摘要:GaussDB(DWS)中锁等待可以设置等待超时相关参数,一旦等锁的时间超过参数配置值会抛错。本文分享自华为云社区《GaussDB(DWS)锁相关参数及视图详解》,作者:yd_220527686。一、锁相关参数GaussDB(DWS)中锁等待可... 查看详情
命令行参数及全局替换程序(代码片段)
知识内容:1.python命令行参数2.全局替换程序 一、python命令行参数1.什么是命令行参数简单说在命令行中给定的参数就是命令行参数,命令行的参数以空格隔开eg: 编译C语言生成一个exe文件后用命令行来输入一些参... 查看详情
软件包管理3-----基本知识rpmyum(代码片段)
RPM包管理每个RPM包都分为两部分1文件列表filelist2元数据metadata:文件大小属性,描述信息,依赖性,等查看包带不带脚本rpm-qp--scripts包名如果包已经在系统中了就会在数据库(公共):/var/lib/rpm里有这个包的信息比如程序包名称... 查看详情
docker容器简介及命令(代码片段)
...录dockerdocker简述docker基本组成安装dockerdocker命令docker服务相关命令docker镜像相关命令docker容器相关命令docker容器的数据卷docker应用部署部署mysql部署tomcat:部署nginx部署redis部署私有仓库:dockerdocker简述Docker是一个开源的... 查看详情
用户相关的文件及命令(代码片段)
第1章用户管理的基本介绍Linuxsystem每个文件和进程,都需要对应一个用户和组,Linuxsystem是通过UID和GID来识别用户和组的。用户名相当于人名,UID相当于×××号,系统只能识别UID。1.1用户和组的关系:一对一,一对多,多对一,... 查看详情
04_用户权限及相关命令(代码片段)
01.用户和权限的基本概念1.1基本概念用户是Linux系统工作中重要的一环,用户管理包括用户与组管理在Linux系统中,不论是由本机或是远程登录系统,每个系统都必须拥有一个账号,并且对于不同的系统资源拥有不同的使用权限... 查看详情
orm的理解及相关字段,参数(代码片段)
ORM简介 ORM(object-relational-mapping),简单理解,就是提供了一种用面向对象语言来操作数据库的方式,解决了面向对象和关系数据库之间不匹配的问题,让编程者更容易、便捷的操作数据库,让数据库的变更变得更加简单。 OR... 查看详情
fortran调用带有参数且返回类型为数组的函数及相关歧义分析(代码片段)
fortran调用带有参数且返回类型为数组的函数及相关歧义分析1参考书籍2fortran环境3主要思路4具体实现代码4.1项目结构4.2主程序文件(入口文件)4.3外部定义的函数文件4.4测试结果5相关歧义分析5.1分析5.2错误演示代码5.3错... 查看详情
mysql实战必备文章。ddl常用命令汇总及登录数据库相关命令!(代码片段)
DDL实战文章目录介绍DDL命令数据库相关操作一.创建数据库二.查看已经存在的数据库三.选择数据库四.查看数据库中的表五.删除数据库数据库表相关操作一.创建表二.查看表定义三.删除表四.修改表(重要)1.修改表类型2.增加表字段... 查看详情
git操作简单入门及相关命令(代码片段)
1基本概念理解1.1Git介绍Git是分布式版本控制系统。集中式VS分布式,SVNVSGit。SVN和Git主要的区别在于历史版本维护的位置。Git本地仓库包含代码库还有历史库,在本地的环境开发就可以记录历史而SVN的历史库存在于中央仓库,每... 查看详情
df命令卡死及相关的deviceisbusy问题(代码片段)
1、现象服务器ls/和df-h命令都无反应。如果你的机器有用到nfs请直接看第四大点。2、分析 运行mount[root@bioee~]#mount/dev/sda1on/typeext4(rw)procon/proctypeproc(rw)sysfson/systypesysfs(rw)devptson/dev/ptstypedevpts(rw,gid=5,mode=6 查看详情
curl命令行工具的使用及命令参数说明(代码片段)
curl是一个开源的用于数据传输的命令行工具与库,它使用URL语法格式,支持众多传输协议,包括:HTTP、HTTPS、FTP、FTPS、GOPHER、TFTP、SCP、SFTP、SMB、TELNET、DICT、LDAP、LDAPS、FILE、IMAP、SMTP、POP3、RTSP和RTMP。curl库提供了很多强大的功... 查看详情