运维rpm语法
Linux软件包分类
rpm 常用命令
1.安装一个包
# rpm -ivh
2.升级一个包
# rpm -Uvh
3.卸载一个包
# rpm -e
4.安装参数
--force 即使覆盖属于其它包的文件也强迫安装
--nodeps 如果该RPM包的安装依赖其它包,即使其它包没装,也强迫安装。
5.查询一个包是否被安装
# rpm -q < rpm package name>
6.得到被安装的包的信息
# rpm -qi < rpm package name>
7.列出该包中有哪些文件
# rpm -ql < rpm package name>
8.列出服务器上的一个文件属于哪一个RPM包
#rpm -qf
9.可综合好几个参数一起用
# rpm -qil < rpm package name>
10.列出所有被安装的rpm package
# rpm -qa
11.列出一个未被安装进系统的RPM包文件中包含有哪些文件?
# rpm -qilp < rpm package name>
12.解压RPM包
有时我们需要RPM包中的某个文件,如何解压RPM包呢?
RPM包括是使用cpio格式打包的,因此可以先转成cpio然后解压,如下所示:
rpm2cpio xxx.rpm | cpio -div
<>
一、安装
命令格式:
rpm -i ( or --install) options file1.rpm ... fileN.rpm
参数:
file1.rpm ... fileN.rpm 将要安装的RPM包的文件名
详细选项:
-h (or --hash) 安装时输出hash记号 (``#'')
--test 只对安装进行测试,并不实际安装。
--percent 以百分比的形式输出安装的进度。
--excludedocs 不安装软件包中的文档文件
--includedocs 安装文档
--replacepkgs 强制重新安装已经安装的软件包
--replacefiles 替换属于其它软件包的文件
--force 忽略软件包及文件的冲突
--noscripts 不运行预安装和后安装脚本
--prefix 将软件包安装到由 指定的路径下
--ignorearch 不校验软件包的结构
--ignoreos 不检查软件包运行的操作系统
--nodeps 不检查依赖性关系
--ftpproxy 用 作为 FTP代理
--ftpport 指定FTP的端口号为
通用选项
-v 显示附加信息
-vv 显示调试信息
--root 让RPM将指定的路径做为"根目录",这样预安装程序和后安
装程序都会安装到这个目录下
--rcfile 设置rpmrc文件为
--dbpath 设置RPM 资料库存所在的路径为
二、删除
命令格式:
rpm -e ( or --erase) options pkg1 ... pkgN
参数
pkg1 ... pkgN :要删除的软件包
详细选项
--test 只执行删除的测试
--noscripts 不运行预安装和后安装脚本程序
--nodeps 不检查依赖性
通用选项
-vv 显示调试信息
--root 让RPM将指定的路径做为"根目录",这样预安装程序和后安装
程序都会安装到这个目录下
--rcfile 设置rpmrc文件为
--dbpath 设置RPM 资料库存所在的路径为
三、升级
命令格式
rpm -U ( or --upgrade) options file1.rpm ... fileN.rpm
参数
file1.rpm ... fileN.rpm 软件包的名字
详细选项
-h (or --hash) 安装时输出hash记号 (``#'')
--oldpackage 允许"升级"到一个老版本
--test 只进行升级测试
--excludedocs 不安装软件包中的文档文件
--includedocs 安装文档
--replacepkgs 强制重新安装已经安装的软件包
--replacefiles 替换属于其它软件包的文件
--force 忽略软件包及文件的冲突
--percent 以百分比的形式输出安装的进度。
--noscripts 不运行预安装和后安装脚本
--prefix 将软件包安装到由 指定的路径下
--ignorearch 不校验软件包的结构
--ignoreos 不检查软件包运行的操作系统
--nodeps 不检查依赖性关系
--ftpproxy 用 作为 FTP代理
--ftpport 指定FTP的端口号为
通用选项
-v 显示附加信息
-vv 显示调试信息
--root 让RPM将指定的路径做为"根目录",这样预安装程序和后安装程序都会安装到这个目录下
--rcfile 设置rpmrc文件为
--dbpath 设置RPM 资料库存所在的路径为
四、查询
命令格式:
rpm -q ( or --query) options
参数:
pkg1 ... pkgN :查询已安装的软件包
详细选项
-p (or ``-'') 查询软件包的文件
-f 查询属于哪个软件包
-a 查询所有安装的软件包
--whatprovides 查询提供了 功能的软件包
-g 查询属于 组的软件包
--whatrequires 查询所有需要 功能的软件包
信息选项
显示软件包的全部标识
-i 显示软件包的概要信息
-l 显示软件包中的文件列表
-c 显示配置文件列表
-d 显示文档文件列表
-s 显示软件包中文件列表并显示每个文件的状态
--scripts 显示安装、卸载、校验脚本
--queryformat (or --qf) 以用户指定的方式显示查询信息
--dump 显示每个文件的所有已校验信息
--provides 显示软件包提供的功能
--requires (or -R) 显示软件包所需的功能
通用选项
-v 显示附加信息
-vv 显示调试信息
--root 让RPM将指定的路径做为"根目录",这样预安装程序和后安装程序都会安装到这个目录下
--rcfile 设置rpmrc文件为
--dbpath 设置RPM 资料库存所在的路径为
五、校验已安装的软件包
命令格式:
rpm -V ( or --verify, or -y) options
参数
pkg1 ... pkgN 将要校验的软件包名
软件包选项
-p Verify against package file
-f 校验所属的软件包
-a Verify 校验所有的软件包
-g 校验所有属于组 的软件包
详细选项
--noscripts 不运行校验脚本
--nodeps 不校验依赖性
--nofiles 不校验文件属性
通用选项
-v 显示附加信息
-vv 显示调试信息
--root 让RPM将指定的路径做为"根目录",这样预安装程序和后安装程序都会安装到这个目录下
--rcfile 设置rpmrc文件为
--dbpath 设置RPM 资料库存所在的路径为
六、校验软件包中的文件
语法:
rpm -K ( or --checksig) options file1.rpm ... fileN.rpm
参数:
file1.rpm ... fileN.rpm 软件包的文件名
Checksig--详细选项
--nopgp 不校验PGP签名
通用选项
-v 显示附加信息
-vv 显示调试信息
--rcfile 设置rpmrc文件为
七、其它RPM选项
--rebuilddb 重建RPM资料库
--initdb 创建一个新的RPM资料库
--quiet 尽可能的减少输出
--help 显示帮助文件
--version 显示RPM的当前版本
Linux系统下的软件包分为源码包和二进制包两种类型。
- 源码包:源码包里面包含了软件的源代码,在使用源码包进行软件安装的时候,计算机需要先经过编译,将源代码编译为计算机能够识别的机器语言,然后才能进行安装。
- 二进制包:二进制包其实就是将源代码经过编译之后生成的机器语言包,例如:rethat系列的二进制包是RPM包,debian系列的二进制包是DEB包。
源码包和二进制包的优缺点
源码包的优点:
- 开源,如果有足够的能力,可以修改源代码;
- 可以更加自由地选择安装所需的功能;
- 编译安装使得软件能够更大限度的适配自己的系统,比采用二进制安装更加稳定、效率更高;
- 卸载方便,直接删除源码包的安装目录即可。
源码包的缺点:
- 安装过程步骤复杂,容易出现安装错误,而一旦报错,解决起来极为困难;
- 编译过程时间较长,比使用二进制包安装花费时间更多。
二进制包的优点:
- 包管理系统简单,只通过几个命令就可以实现包的安装、升级、查询和卸载;
- 安装速度比源码包安装快的多。
二进制包的缺点:
- 经过编译,不能再看到源代码;
- 功能选择不如源码包灵活;
- 依赖性(RPM依赖查询网址:http://www.rpmfind.net/)。
RPM包命名规则
RPM包文件默认安装位置
/etc/ 配置文件默认安装目录 /usr/bin/ 可执行的命令安装目录 /usr/lib/ 所依赖的函数库文件保存位置 /usr/share/doc/ 软件帮助文档保存位置 /usr/share/man/ 软件手册保存位置
rpm命令
命令用途:RPM包的管理工具。
命令语法:rpm [选项] [包全名]|[包名]|[系统文件名]
常用选项:
-i:安装(install);
-U:升级(upgrade);
-e:卸载(erase);
-v:显示安装过程详细信息(verbose);
-h:显示安装进度(hash);
--nodeps:不检查依赖性;
- //安装httpd-2.2.15-29.el6.centos.x86_64.rpm
- rpm -ivh httpd-2.2.15-29.el6.centos.x86_64.rpm
- //升级httpd-2.2.15-29.el6.centos.x86_64.rpm
- rpm -Uvh httpd-2.2.15-29.el6.centos.x86_64.rpm
- //卸载httpd软件包
- rpm -e httpd
-q:查询(query);
-i:查询软件包信息(information);
-l:查询包中文件的默认安装位置(list);
-f:查询系统文件属于哪个软件包(file);
-R:查询软件包的依赖性(requires);
-a:查询所有(all);
-p:查询未安装包信息(package);
-V:校验指定RPM包中的文件(verify);
标识 意义 S 文件大小是否改变 M 文件的类型(参照文件类型对照表)或文件的权限是否改变 5 文件MD5校验值是否改变 D 设备中的从代码是否改变 L 文件路径是否改变 U 文件的所有者是否改变 G 文件的所属组是否改变 T 文件的修改时间是否改变 校验的文件类型对照表如下。
标识 类型 c 配置文件(config file) d 普通文档(documentation) g “鬼”文件(ghost file),指不该出现在这个RPM包中的文件 l 授权文件(license file) r 描述文件(read me)
- //查询所有已安装的httpd软件包
- rpm -qa | grep httpd
- //查询已安装的httpd软件包的详细信息
- rpm -qi httpd
- //查询未安装的httpd-2.2.15-29.el6.centos.x86_64.rpm软件包的详细信息
- rpm -qip httpd-2.2.15-29.el6.centos.x86_64.rpm
- //查询已安装的httpd软件包中文件的安装位置
- rpm -ql httpd
- //查询未安装的httpd-2.2.15-29.el6.centos.x86_64.rpm软件包中文件的安装位置
- rpm -qlp httpd-2.2.15-29.el6.centos.x86_64.rpm
- //查询系统文件/usr/sbin/httpd所属的软件包
- rpm -qf /usr/sbin/httpd
- //查询已安装的httpd软件包的依赖性
- rpm -qR httpd
- //查询未安装的httpd-2.2.15-29.el6.centos.x86_64.rpm软件包的依赖性
- rpm -qRp httpd-2.2.15-29.el6.centos.x86_64.rpm
- //校验已安装的httpd软件包
- rpm -V httpd
- //校验未安装的httpd-2.2.15-29.el6.centos.x86_64.rpm软件包
- rpm -Vp httpd-2.2.15-29.el6.centos.x86_64.rpm
注:在使用rpm命令时,若操作的包是未安装的软件包时,需使用包全名,而且要注意路径;若操作的是已经安装的软件包时,使用包名,系统会去/var/lib/rpm/中的数据库中搜索。
cpio命令
命令用途:创建软件备份档案和从备份档案中提取文件。
命令语法:cpio [选项] [<|>] [文件|设备]
常用选项:
-o:执行copy-out模式,建立备份档案;
-c:使用旧ASCII备份格式;
-B:将输入/输出的区块大小改成5210Bytes;
-i:执行copy-in模式,还原备份档案;
-d:还原时如有需要则自动新建目录;
-v:详细显示执行过程;
-u:更新,用较新的文件覆盖旧的文件;
- //将test目录下的所有普通文件都备份到/bak/test.cpio
- find /test/ -type f |cpio -covB > /bak/test.cpio
- //将备份包/bak/test.cpio中的文件还原到相应的位置,如果有相同文件则进行覆盖
- cpio -idvcu < /bak/test.cpio
rpm2cpio命令
命令用途:将rpm软件包转换为cpio格式的文件。
命令语法:rpm2cpio [包全名]
- //将RPM包中的bin/ls还原到当前目录
- rpm2cpio /mnt/Packages/coreutils-8.4-31.el6.x86_64.rpm | cpio -idv ./bin/ls
运维rpm语法的更多相关文章
- 运维ldd语法--》ldconfig
Linux:ldd命令详解 ldd 用于打印程序或者库文件所依赖的共享库列表. 语法 ldd(选项)(参数) 选项 --version:打印指令版本号: -v:详细信息模式,打印所有相关信息: - ...
- 运维chroot语法
chroot命令 chroot命令用来在指定的根目录下运行指令.chroot,即 change root directory (更改 root 目录).在 linux 系统中,系统默认的目录结构都是以 ...
- 运维ps语法---》ps、pstree、top、htop、nice、renice、kill、ulimit、w 和 who 和 whoami、pgrep、fg 和 bg、ipcs
Linux中的ps命令是Process Status的缩写.ps命令用来列出系统中当前运行的那些进程.ps命令列出的是当前那些进程的快照,就是执行ps命令的那个时刻的那些进程,如果想要动态的显示进程信 ...
- 运维yum语法
软件管理 目前流行的软件包格式: 可直接执行的RPM与DEB.源代码形式的gzip与bzip2压缩包 RPM软件包管理 rpm rpm [选项] *.rpm -i --install instal ...
- 运维ip语法,DNS配置方法
修改配置文件: /etc/resolv.conf nameserver DNS_IP_1 nameserver DNS_IP_2 nameserver 指定本机解析: /etc/hosts 主机IP ...
- 运维seq语法
seq-print a sequence of numbers 用于产生从某个数到另外一个数之间的所有整数 语法:seq 开始列 指定步长 结束列 参数: -f :指定输出格式,允许使用print ...
- 运维grep语法
grep的语法和用法 grep命令的格式: grep [options] PATTERN [FILE] 其中:1,pattern是用正则表达式书写的模式.2,FILE是要查找的文件,可以是用 ...
- 运维nslookup语法
nslookup 查询域名DNS信息的工具 补充说明 nslookup命令 是常用域名查询工具,就是查DNS信息用的命令. nslookup4有两种工作模式,即“交互模式”和“非交互模式”.在“交互模 ...
- 运维dig语法
dig命令是常用的域名查询工具,可以用来测试域名系统工作是否正常 语法 1 dig(选项)(参数) 选项 1 @<服务器地址>:指定进行域名解析的域名服务器: 2 -b<ip地址&g ...
随机推荐
- mysql将查询结果导出
一.首先确认当前数据库设置导出是允许的 show variables like '%secure%'; 如果是null则代表不允许,这时可以用命令修改,或者直接修改数据库配置文件my.ini,在其中添 ...
- Android中控件之间添加分割线
将以下view标签放置在需要分割的两个控件之间: <View android:layout_width=”match_parent” android:layout_height=”1dp” an ...
- 【数论】卢卡斯定理模板 洛谷P3807
[数论]卢卡斯定理模板 洛谷P3807 >>>>题目 [题目] https://www.luogu.org/problemnew/show/P3807 [输入格式] 第一行一个 ...
- IOCP模型与网络编
一.前言: 在老师分配任务(“尝试利用IOCP模型写出服务端和客户端的代码”)给我时,脑子一片空白,并不知道什么是IOCP模型,会不会是像软件设计模式里面的工厂模式,装饰模式之类的那些呢 ...
- 关于node
nodejs npm常用命令 npm是一个node包管理和分发工具,已经成为了非官方的发布node模块(包)的标准.有了npm,可以很快的找到特定服务要使用的包,进行下载.安装以及管理已经安装的包. ...
- sql数据表中的值重新命名
select u.id,u.name,u.sex, 2 (case u.sex 3 when 1 then '男' 4 when 2 then '女' 5 else '空的' 6 end 7 )性别 ...
- ELK快速部署及使用~
Elastic Stack 开发人员不能登陆线上服务器查看详细日志 各个系统都有日志,日志数据分散难以查找 日志数据量大,查询速度慢,或者数据不够实时 官网地址:https://www.elastic ...
- 【转】依赖注入的威力,.NET Core的魅力:解决MVC视图中的中文被html编码的问题
有园友在博问中提了这样一个问题 —— .NET Core 中文等非英文文字html编码输出问题,到我们的 ASP.NET Core 项目中一看,也是同样的问题. 比如下面的Razor视图代码: @{ ...
- zookeeper应用与原理学习总结
一.什么是zookeeper Zookeeper 分布式服务框架是Apache Hadoop 的一个子项目,它主要是用来解决分布式应用中经常遇到的一些数据管理问题,如:统一命名服务.状态同步服务.集群 ...
- 查看JVM内存使用状况
1.jps:查看本地正在运行的java进程和进程ID(pid) 2.jinfo pid,查看指定pid的所有JVM信息 1)jinfo -flags pid 查询虚拟机运行参数信息. 2)jinfo ...