Linux RPM命令学习(1)
今天学习Linux中RPM包的安装升级和查询命令。先介绍一下Linux中常见的两类包源代码包二进制包直接发源代码过来,需要编译后才能运行RPM包,是系统编译过的文件可以自由选择所需功能,软件是编译安装,更加稳定,效率更高,卸载方便。包管理系统简单,安装速度比源码包快安装步骤较多,编译过程时间较长,由于编译安装,一旦报错新手很难解决看不到源代码,功能选择不如源码包灵活,依赖性这里重点先说说二进制包,
·
今天学习Linux中RPM包的安装升级和查询命令。
先介绍一下Linux中常见的两类包
源代码包 | 二进制包 |
---|---|
直接发源代码过来,需要编译后才能运行 | RPM包,是系统编译过的文件 |
可以自由选择所需功能,软件是编译安装,更加稳定,效率更高,卸载方便。 | 包管理系统简单,安装速度比源码包快 |
安装步骤较多,编译过程时间较长,由于编译安装,一旦报错新手很难解决 | 看不到源代码,功能选择不如源码包灵活,依赖性 |
这里重点先说说二进制包,也就是RPM包的依赖性,依赖性分为三种
- 树形依赖:a -> b -> c,先安装a,在安装b,最后安装c,卸载则顺序相反
- 环形依赖:a -> b -> c -> a,安装的时候要将文件包一次性安装
- 模块依赖:有时候要依赖不是系统包,而是某个软件下的某个包,解决的方法可以通过模块依赖查询网站:www.rpmfind.net
再说一下包全名和包名的区别。
举个栗子:httpd-2.2.15-15.el6.centos.1.i686.rpm
- 例子中为包全名,操作的包是没有安装的软件包时,使用包全民,而且注意路径。
- 而httpd为包名,操作已经安装的软件包时,使用包名。是搜索/var/lib/rpm/中的数据库,因此不用包全名。
httpd | 软件包名 |
---|---|
2.2.15 | 软件版本 |
15 | 软件发布次数 |
el6.centos | 适合的Linux平台 |
i686 | 适合的硬件平台 |
rpm | rpm包扩展名 |
以上介绍了RPM包的一些基本知识,现在来介绍一下RPM的基本命令,这里再说明要注意包名和包全名!
命令 | 功能 |
---|---|
rpm -i 包全名 | 安装RPM包 |
rpm -v 包全名 | 安装中显示详细信息 |
rpm -h 包全名 | 显示进度 |
rpm --nodeps 包全名 | 不检测依赖性,这一条命令谨慎使用 |
rpm -U 包全名 | 升级upgrade,注意是大写U |
rpm -e 包名 | 卸载,由于在数据库中查询,因此不需要包全名 |
rpm -q 包名 | 查询某包是否已安装 |
rpm -qa | 查询所有安装包,all |
rpm -qi 包名 | 查询已安装包的包名,版本等相关信息 |
rpm -qp 包全名 | 查询未安装包信息 |
rpm -ql 包名 | 查询包的所在路径 |
rpm -qlp 包全名 | 查询未安装包打算要安装的路径 |
rpm -qf 系统文件名 | 查询系统文件属于那个软件包,系统文件名就是该文件所在绝对路径 |
rpm -qR 包名 | 查询软件包的依赖性 |
rpm -qRp 包全名 | 查询未安装包的依赖性 |
这里说一个很重要的概念,管道符 |:用来连接多条命令。再说一个搜索中非常常见的命令:grep,全局正则表达式,能使用正则表达式搜索文本,并把匹 配的行打印出来。
举个例子:rpm -qa | grep httpd,这个命令是查询httpd包是否安装
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
已为社区贡献1条内容
所有评论(0)