虽然现在很多人都使用yum去替代rpm了,但是rpm在一些特殊场合下还是有其作用的,比如查询跟验证已安装的rpm包,rpm全称Redhat Package Manager,是一种用于互联网下载包的打包及安装工具,它包含在某些Linux分发版中,它生成具有.RPM扩展名的文件,与Dpkg类似。
rpm的常用功能分两大块:
(1)查询/核实软件包是否被安装:rpm {-q|--query} [select-options] [query-options] (用的多)
rpm {-V|--verify} [select-options] [verify-options]
(2)安装/升级/删除本地软件包: rpm {-i|--install} [install-options] PACKAGE_FILE ...
rpm {-U|--upgrade} [install-options] PACKAGE_FILE ...
rpm {-e|--erase} [--allmatches] [--nodeps] [--noscripts] [--notriggers] [--test] PACKAGE_NAME ...
select-options
[PACKAGE_NAME] [-a,--all] [-f,--file FILE]
[-g,--group GROUP] {-p,--package PACKAGE_FILE]
[--fileid ID] [--hdrid SHA1] [--pkgid MD5] [--tid TID]
[--querybynumber HDRNUM] [--triggeredby PACKAGE_NAME]
[--whatprovides CAPABILITY] [--whatrequires CAPABILITY]
query-options
[--changelog] [-c,--configfiles] [-d,--docfiles] [--dump]
[--filesbypkg] [-i,--info] [--last] [-l,--list]
[--provides] [--qf,--queryformat QUERYFMT]
[-R,--requires] [--scripts] [-s,--state]
[--triggers,--triggerscripts]
install-options
[--aid] [--allfiles] [--badreloc] [--excludepath OLDPATH]
[--excludedocs] [--force] [-h,--hash]
[--ignoresize] [--ignorearch] [--ignoreos]
[--includedocs] [--justdb] [--nodeps]
[--nodigest] [--nosignature] [--nosuggest]
[--noorder] [--noscripts] [--notriggers]
[--oldpackage] [--percent] [--prefix NEWPATH]
[--relocate OLDPATH=NEWPATH]
[--replacefiles] [--replacepkgs]
[--test]
使用rpm首先确定是要查询,还是要安装,如果要查询,一般第一参数就是-q,如果是安装,第一参数就是-i,如果是卸载,第一参数就是-e;然后就是接下来的选择了:
I.查询(列举常用的)
-qa:查询所有的已安装软件包
-qf:查看某个文件属于哪个软件包,rpm -qf /etc/sysctl.conf
-ql:查看软件包的安装目录
-qi:查看已安装软件包的的标准详细信息,比如软件包的大小、安装时间、所属的开发组(Development group)、版本号等。
II.安装
-i --prefix:指定安装路径(安装时最好指定安装目录,否则默认安装的路径很分散,可执行文件默认放在/usr/local/bin库文件默认放在/usr/local/lib.....不好删)
-i --force:安装过程中可能会出现“.. conflict with ... ”,这是安装过程中,可能有文件的覆盖,使用该参数就可以强制覆盖安装。
-ivh:这个就是安装时常用的三个参数,v表示输出,h表示用#做进度标记,rpm -ivh ***.rpm
III.卸载
rpm -e package_name 如果该软件包和其它安装包之间有依赖关系,卸载失败
rpm -e --nodeps package_name 不考虑依赖包
rpm -e --allmatches package_name 删除所有跟package_name匹配的所有版本的包
补充1:-v是一个通用的参数(GENERAL OPTIONS),即verbose,也就是说查询,安装,升级,卸载都可以加该参数。
补充2:在卸载软件包时,若碰到依赖包,要慎用--nodeps(Don’t check dependencies before uninstalling the packages.),也就是说如果卸载时不检查依赖的话,那些使用该软件包的软件在此之后可能就不能正常工作了。
补充3:如果碰到要安装.src.rpm的包,这类软件包是包含了源代码的rpm包,在安装时需要进行编译:
方法一:(熟悉编译过程)
① 执行rpm -i your-package.src.rpm
② cd /usr/src/redhat/SPECS (rpmbuild用来创建rpm包,它是用来指示转换的源码不定编译成二进制文件的包,在centos下默认目录为/usr/src/redhat)
③ rpmbuild -bp your-package.specs ,一个和你的软件包同名的specs文件
④ cd /usr/src/redhat/BUILD/your-package/ 一个和你的软件包同名的目录
⑤ ./configure 这一步和编译普通的源码软件一样,可以加上参数
⑥ make
⑦ make install 卸载(make clean ; make uninstall )
方法二:(常用)
①执行rpm -i you-package.src.rpm
② cd /usr/src/redhat/SPECS
③ rpmbuild -bb your-package.specs 一个和你的软件包同名的specs文件
这时,在/usr/src/redhat/RPM/i386/ (根据具体包的不同,也可能是i686,noarch等等) 在这个目录下,有一个新的rpm包,这个是编译好的二进制文件。
④rpm -i new-package.rpm即可安装完成。
最新文章
- vs2016x64&;&;qt5.7.1编译osg3.4.0&;&;osgEarth2.7
- css3的动画特性
- SqlServer数据类型
- 使用bakefile编译C工程代码
- plsql 建立oracle作业
- IE11下,IIS7.5不自动生成__doPostBack事件
- vs常用插件之javsscript插件
- windbg调试.net程序
- Unity3D中使用3DMAX建模规范
- CRM odata方法 js容易出现的错误,大小写区分 Value Id
- 51 nod 1227 平均最小公倍数
- Map的嵌套
- Javascript 字符串(二)常用操作整理
- 通过清华大学镜像下载Android源码并编译源码
- windows下安装Erlang
- asp.net:如何实现负载均衡方案讨论 (nginx+iis实现负载均衡)
- Linux常用基本命令[cp]
- 洛谷 P2862 [USACO06JAN]把牛Corral the Cows 解题报告
- R语言学习——条件筛选
- Linux crontab命令详解
热门文章
- 关于webpack高版本向低版本切换 如何切换?
- linux--基础知识5
- CSS3 Animations
- 20 简述BASE64编码的作用和c#对其的支持?
- Android9.0特性
- iview之——table中嵌套input、select等
- 2017华南理工华为杯H bx值(容斥问题)
- 初学Cadence 一
- JS - 迭代协议
- 理解JavaScript中的this