Linux-rpm命令管理介绍
来源:互联网 发布:淘宝有卖正品的吗 编辑:程序博客网 时间:2024/05/23 10:16
简介
在Linux操作系统中,有一个系统软件包,它的功能类似于Windows里面的“添加/删除程序”,但是功能又比“添加/删除程序”强很多,它就是Red Hat Package Manager(简称RPM)。
The RPM Package Manager,是在Linux下广泛使用的软件包管理器。RPM此名词可能是指.rpm的文件格式的软件包,也可能是指其本身的软件包管理器(RPM Package Manager)。最早由Red Hat研制,现在也由开源社区开发。RPM通常随附于Linux发行版,但也有单独将RPM作为应用软件发行的发行版(例如Gentoo)。RPM仅适用于安装用RPM来打包的软件,目前是GNU/Linux下软件包资源最丰富的软件包类型之一。
rpm命令管理大纲
- rpm包的命令规则
- 安装
- 升级与卸载
- 查询
- 校验
rpm包命名规则
这里以mysql的server端的包MySQL-server-5.6.16-1.rhel5.x86_64.rpm
来举例说明:
MySQL-server
软件报名5.6.16
软件版本1
软件发布的次数rhel5
适合的linux平台x86_64
适合的硬件平台rpm
rpm包的扩展名
rpm包的依赖性
- 树形依赖: a -> b -> c
- 环形依赖: a -> b -> c -> a
- 模块依赖:模块依赖(依赖.so库文件),查询网站: www.rpmfind.net
rpm包的安装
1.全包名 与 包名
全包名: 操作的包是没有安装的软件包是,使用全包名.而且要注意路径. MySQL-server-5.6.16-1.rhel5.x86_64.rpm
包名: 操作的是已经安装的软件包时,使用包名,是搜索的/var/lib/rpm/中的数据库. MySQL-server
2.rpm安装
rpm -ivh 包全名
eg: rpm -ivh MySQL-server-5.6.16-1.rhel5.x86_64.rpm
选项:
-i (install) 安装-v (verbose) 显示详细信息-h (hash) 显示进度-- nodeps 不检测依赖性(不建议使用,因为基本不去处理依赖的安装的软件都不能正常使用)
注意要安装的软件有多个包的时候,要先安装主包,再安装依赖包.比如这里的主包就是httpd包,
正在安装: httpd x86_64 2.4.6-45.el7.centos.4 updates 2.7 M为依赖而安装: apr x86_64 1.4.8-3.el7 base 103 k apr-util x86_64 1.5.2-6.el7 base 92 k httpd-tools x86_64 2.4.6-45.el7.centos.4 updates 84 k mailcap noarch 2.1.41-2.el7 base 31 k
关于rpm包依赖的解决办法:
1如果是包的依赖,就比较简单直接下载安装对应所需要的依赖包后再安装既可.
2.下面主要讲解缺少的以来是库文件的解决办法
[root@localhost ~]# rpm -ivh apr-util-1.3.9-3.el6_0.1.x86_64.rpm警告:apr-util-1.3.9-3.el6_0.1.x86_64.rpm: 头V3 RSA/SHA256 Signature, 密钥 ID c105b9de: NOKEY错误:依赖检测失败: libapr-1.so.0()(64bit) 被 apr-util-1.3.9-3.el6_0.1.x86_64 需要 libdb-4.7.so()(64bit) 被 apr-util-1.3.9-3.el6_0.1.x86_64 需要
可知是缺省库文件libapr-1.so.0和libdb-4.7.so,通过网站查询找到对应的系统版本,下载安装依赖的包既可;模块依赖查询网站: 模块依赖查询网站
我这里是用的CentOS 7.3,下载安装apr-1.4.8-3.el7.i686.rpm即可.如果还有依赖依次安装最先需要的依赖再装后面的软件既可.千万注意64的操作系统不要下错了32位的依赖包.
apr-1.5.1-3.fc22.s390.html Apache Portable Runtime library Fedora 22 for s390 apr-1.5.1-3.fc22.s390.rpmapr-1.4.8-3.el7.i686.html Apache Portable Runtime library CentOS 7.3.1611 for x86_64 apr-1.4.8-3.el7.i686.rpmapr-1.3.9-5.el6_2.i686.html Apache Portable Runtime library CentOS 6.8 for x86_64 apr-1.3.9-5.el6_2.i686.rpmapr-1.3.9-5.el6_2.i686.html Apache Portable Runtime library CentOS 6.8 for i386 apr-1.3.9-5.el6_2.i686.rpmapr-1.3.9-5.el6_2.i686.html Apache Portable Runtime library CentOS 6.9 for i386 apr-1.3.9-5.el6_2.i686.rpmapr-1.3.9-5.el6_2.i686.html Apache Portable Runtime library CentOS 6.9 for x86_64 apr-1.3.9-5.el6_2.i686.rpm
3.rpm升级
rpm -Uvh 包全名
eg: rpm -Uvh MySQL-server-5.6.16-1.rhel5.x86_64.rpm
注意:使用用升级命令,如果没有安装就安装,如果安装的是旧版本就升级成最新版本,如果已经是最新版本,就不做任何操作.
选项:
-U (upgrade) 升级-v (verbose) 显示详细信息-h (hash) 显示进度-- nodeps 不检测依赖性(不建议使用,因为基本不去处理依赖的安装的软件都不能正常使用)
查询未安装的包的信息(输入包名即可):
4.rpm卸载
rpm -e 包名
eg: rpm -e MySQL-server
注意: 只要输入包名,不需要输入包全名.卸载的时候也有包的依赖性,要卸载先安装的包,再卸载后安装的包.
选项:
-e (erase) 卸载-- nodeps 不检测依赖性(不建议使用,因为基本不去处理依赖的安装的软件都不能正常使用)
5.rpm查询
rpm -q 包名
查询是否安装了指定包 rpm -qa |grep 包名
正则查,会查出包含了该包名的所有包(推荐使用)
eg: rpm -qa | grep MySQL-server
注意: 查询的包名区分大小写;
选项:
-q (query) 查询
-a (all) 所有
-i (information) 查询软件信息
-p (package) 查询未安装包的信息
-l (list) 列表
1.查询已经安装的包的包信息(输入包名即可):
eg:`rpm -qi apr-util`,里面的信息包括了该包的官网网站等信息.[root@localhost ~]# rpm -qi apr-utilName : apr-utilVersion : 1.3.9Release : 3.el6_0.1Architecture: x86_64Install Date: 2017年05月30日 星期二 14时38分05秒Group : System Environment/LibrariesSize : 202360License : ASL 2.0Signature : RSA/SHA256, 2011年07月06日 星期三 09时37分03秒, Key ID 0946fca2c105b9deSource RPM : apr-util-1.3.9-3.el6_0.1.src.rpmBuild Date : 2011年06月25日 星期六 12时38分40秒Build Host : c6b5.bsys.dev.centos.orgRelocations : (not relocatable)Packager : CentOS BuildSystem <http://bugs.centos.org>Vendor : CentOSURL : http://apr.apache.org/Summary : Apache Portable Runtime Utility libraryDescription :The mission of the Apache Portable Runtime (APR) is to provide afree library of C data structures and routines. This librarycontains additional utility interfaces for APR; including supportfor XML, LDAP, database interfaces, URI parsing and more.
2.查询未安装的包的包信息(输入包全名即可):
eg:`rpm -qip MySQL-server-5.6.16-1.rhel5.x86_64.rpm`,里面的信息包括了该包的官网网站等信息.和是否安装的信息[root@localhost ~]# rpm -qip MySQL-server-5.6.16-1.rhel5.x86_64.rpmName : MySQL-serverVersion : 5.6.16Release : 1.rhel5Architecture: x86_64Install Date: (not installed)Group : Applications/DatabasesSize : 259075416License : Copyright (c) 2000, 2014, Oracle and/or its affiliates. All rights reserved. Under GPL license as shown in the Description field.Signature : DSA/SHA1, 2014年01月16日 星期四 12时56分49秒, Key ID 8c718d3b5072e1f5Source RPM : MySQL-5.6.16-1.rhel5.src.rpmBuild Date : 2014年01月14日 星期二 23时53分02秒Build Host : tyr75Relocations : (not relocatable)Packager : MySQL Release Engineering <mysql-build@oss.oracle.com>Vendor : Oracle and/or its affiliatesURL : http://www.mysql.com/Summary : MySQL: a very fast and reliable SQL database serverDescription :The MySQL(TM) software delivers a very fast, multi-threaded, multi-user,and robust SQL (Structured Query Language) database server. MySQL Serveris intended for mission-critical, heavy-load production systems as wellas for embedding into mass-deployed software. MySQL is a trademark ofOracle and/or its affiliatesThe MySQL software has Dual Licensing, which means you can use the MySQLsoftware free of charge under the GNU General Public License(http://www.gnu.org/licenses/). You can also purchase commercial MySQLlicenses from Oracle and/or its affiliates if you do not wish to be bound by the terms ofthe GPL. See the chapter "Licensing and Support" in the manual forfurther info.The MySQL web site (http://www.mysql.com/) provides the latest news andinformation about the MySQL software. Also please see the documentationand the manual for more information.This package includes the MySQL server binary as well as related utilitiesto run and administer a MySQL server.If you want to access and work with the database, you have to installpackage "MySQL-client" as well!
3.查询包中文件安装位置
rpm -ql 包名
参数:
-p (package) 查询未安装包的信息
-l (list) 列表
-f (file) 查询该文件是属于哪个包的
注意:如果是想查看一个未安装的软件在安装后该软件的文件会安装在哪里,要用-p参数:
eg: rpm -qlp MySQL-server-5.6.16-1.rhel5.x86_64.rpm
下面列出的是已经安装的软件包的具体安装位置.
注意区分: `whereis apr-util`命令
[root@localhost ~]# rpm -ql apr-util/usr/lib64/apr-util-1/usr/lib64/libaprutil-1.so.0/usr/lib64/libaprutil-1.so.0.3.9/usr/share/doc/apr-util-1.3.9/usr/share/doc/apr-util-1.3.9/CHANGES/usr/share/doc/apr-util-1.3.9/LICENSE/usr/share/doc/apr-util-1.3.9/NOTICE
RMP包默认安装位置
4.查询系统文件属于哪个rpm包
rpm -qf 系统文件名
参数:
-f (file) 查询该文件是属于哪个包的
注意:查询的前提条件,这个文件必须是通过rpm包安装出来的,比如你手动创建的文件就肯定是找不到所属的软件包的.
[root@localhost ~]# rpm -qf /usr/lib64/libaprutil-1.so.0.3.9apr-util-1.3.9-3.el6_0.1.x86_64
5.查询包的依赖性
rpm -qR 包名
选项:
-R (requires) 查询软件包的依赖性
-p (package) 查询未安装包的信息
注意:这里查询出来的依赖包括shell,.so函数库等等,实际意义不大,建议直接安装软件包,然后根据提示需要那些包再去选择下载安装
[root@localhost ~]# rpm -qR apr/sbin/ldconfig/sbin/ldconfiglibc.so.6libc.so.6(GLIBC_2.0)libc.so.6(GLIBC_2.1)...
rpm包校验
rpm -V 已安装的包名
校验已经安装的包
选项
-V (verify)校验指定RMP包中的文件
说明:输入命令后,没有任何结果输出代表,这里安装的`apr-util-1.3.9-3.el6_0.1.x86_64.rpm`的文件没有进行过任何改动.[root@localhost ~]# rpm -V apr[root@localhost ~]#
1.说明: 这里改改动下安装后释放出来的文件apr-util-1.3.9-3.el6_0.1.x86_64.rpm安装后释放的所有文件:[root@localhost ~]# rpm -ql apr/usr/lib/libapr-1.so.0/usr/lib/libapr-1.so.0.4.8/usr/share/doc/apr-1.4.8/usr/share/doc/apr-1.4.8/CHANGES/usr/share/doc/apr-1.4.8/LICENSE/usr/share/doc/apr-1.4.8/NOTICE/usr/lib64/libapr-1.so.0/usr/lib64/libapr-1.so.0.4.8/usr/share/doc/apr-1.4.8/usr/share/doc/apr-1.4.8/CHANGES/usr/share/doc/apr-1.4.8/LICENSE/usr/share/doc/apr-1.4.8/NOTICE2.这里博主改动下文件:vi /usr/share/doc/apr-1.4.8/LICENSE,在里随便添加了个注释语句,然后保存:This software contains code derived from UNIX V7, Copyright(C)Caldera International Inc.#yves hello3.再次执行:rpm -V apr[root@localhost ~]# rpm -V aprS.5...... d /usr/share/doc/apr-1.4.8/NOTICE这时候有了结果:S.5...... d d代表普通文档
验证内容中8个信息的具体内容如下:分别用.
符号隔开
rpm包中文件提取:
目的:
当误操作删除了某个软件包释放的文件时,可以通过该命令从原来的rpm包中提取需要的文件.
PS: 同样如果嫌麻烦,重新装一遍rpm包也是可以的. rmp2cpi 包全名 | grep cpio -idv .文件绝对路径
注意: .
不能省略
说明:
rpm2cpio # 将软件包转化问cpio格式的命令
cpio #是一个标准工具,它用于创建软件文档文件和从文档文件中提取文件
操作:
cpio 选项 < [文件| 设备]
选项:
-i :copy-in 模式,还原
-d :还原时自动新建目录
-v 显示还原过程
实现RPM包中文件提取
这里不使用<方式,而是使用管道符|来提取丢失的文件:
1.模拟丢失文件: rm -rf /usr/lib64/libaprutil-1.so.0.3.9
2.查找该文件是属于哪个rpm包:
如果我不知道该文件的具体路径,只知道文件名为:libaprutil-1.so.0.3.9,可以上网查是哪个包的.
然后再查看该包安装后的文件释放路径:
(虽然该文件已经不存在,但是在linux的数据中还有记录,可以知道它是位于:/usr/lib64/libaprutil-1.so.0.3.9)
[root@localhost ~]# rpm -ql apr-util/usr/lib64/apr-util-1/usr/lib64/libaprutil-1.so.0/usr/lib64/libaprutil-1.so.0.3.9/usr/share/doc/apr-util-1.3.9/usr/share/doc/apr-util-1.3.9/CHANGES/usr/share/doc/apr-util-1.3.9/LICENSE/usr/share/doc/apr-util-1.3.9/NOTICE
3.通过rpm2cpio命令来提取文件:
[root@localhost ~]# rpm2cpio /root/apr-util-1.3.9-3.el6_0.1.x86_64.rpm | cpio -idv ./usr/lib64/libaprutil-1.so.0.3.9./usr/lib64/libaprutil-1.so.0.3.9398 块
这时候在当前目录就建立该文件的路径了:
[root@localhost ~]# ll | grep usrdrwxr-xr-x. 3 root root 19 5月 30 16:27 usr
4.拷贝丢失文件到原来的目录即可: cp /root/usr/lib64/libaprutil-1.so.0.3.9 /usr/lib64/
- Linux-rpm命令管理介绍
- Linux RPM包管理-rpm命令
- Linux之rpm命令管理
- Linux中rpm命令管理
- linux rpm命令详细介绍
- linux rpm命令详细介绍
- linux软件包管理(RPM)简单介绍
- Linux 软件包介绍---->RPM包管理
- linux基本命令-RPM包管理
- Linux RPM包管理-yum命令
- linux程序包管理命令rpm使用
- Linux学习笔记----rpm包and rpm命令管理
- linux中rpm命令详细介绍
- Linux RPM 命令日常使用参数介绍
- 7、 Linux的RPM软件包管理:RPM包的介绍、RPM安装、卸载等操作
- Linux软件安装管理(二)-RPM命令管理
- Linux学习之软件包管理--rpm命令管理
- rpm命令管理
- 7.3Basic and visual basic
- Python抓取妹子图网站全部图片
- 【学习笔记】python的基础语法
- 利用继承和多态扩充程序功能
- 【数据结构基础】二叉搜索(排序)树的基本操作
- Linux-rpm命令管理介绍
- 微信联系人列表点击侧边栏首字母定位到相应联系人列表的实现方法
- Kotlin汇总1
- 串并转换verilog程序
- USACO-Section 1.3 Barn Repair[...]
- 转载“克鲁斯卡尔算法的详解”
- 栈
- 现在看到这里
- 1011. A+B和C (15)