• {{ item.name }}
  • Home
  • Linux
  • Programming
    • Python
  • Life
  • Other
  • Tools
  • 投资者该如何参与优秀的区块链项目- NuLink社区圆桌会议
  • 什么是NuLink?- 项目中文社区与项目研究组成员 Rookie 对话实录
  • NuLink 融资 400 万美元用于开发隐私保护技术
  • NuLink的零知识证明介绍(1)
  • 用bitwarden_rs搭建属于自己的密码管理器
  • 修复 CentOS vps 网卡失效
  • 记录用mac给Nexus6P刷Android10的错误
  • Centos 6.8启用 TCP BBR拥塞控制算法
  • Nginx 启用HTTP2功能
  • Mac 安装adb工具
  • WordPress 默认编辑器代码按钮

rpm

  • iansiu
  • 2015-12-02
  • 0

RPM是RedHat Package Manager(RedHat软件包管理工具),是由RedHat公司开发的软件包安装和管理程序,同Windows平台上的Uninstaller比较类似。

rpm 执行安装包

二进制包(Binary)以及源代码包(Source)两种。二进制包可以直接安装在计算机中,而源代码包将会由RPM自动编译、安装。源代码包经常以src.rpm作为后缀名。

rpm包名字构成由-和.分成了若干部分,如abrt-cli-2.0.8-15.el6.centos.i686.rpm,abrt-cli是包名,2.0.8-15是版本号,el6指的是redhat企业版6,centos指的是这是在centos上用的,i686指的是平台类型。有些rpm包并没有写具体的平台而是noarch,这代表这个rpm包没有硬件平台限制。

rpm的一般格式:

rpm [选项] [rpm软件包]

1、初始化rpm 数据库(可以省略)

rpm --initdb
rpm --rebuilddb  % 注:这个要花好长时间

注:有时rpm 系统出了问题,不能安装和查询,大多是这里出了问题。

2、RPM软件包管理的查询功能:

rpm -q [select-options] [query-options]

RPM的查询功能是极为强大,是极为重要的功能之一;这里举几个常用的例子,更为详细的具体的,请参考 man rpm

应用实例:

对系统中已安装软件的查询

1)查询系统已安装的软件

语法:rpm -q 软件名

例:

rpm -q gaim

-q就是 --query,此选项表示询问系统是不是安装了gaim软件包;
如果已安装会有信息输出;如果没有安装,会输出gaim 没有安装的信息;

查看系统中所有已经安装的包,要加 -a 参数

rpm -qa

如果分页查看,再加一个管道 |和more命令

rpm -qa |more

如果要查找某个软件包,可以用 grep 抽取出来

rpm -qa |grep mplayer

2)查询一个已经安装的文件属于哪个软件包;

语法: rpm -qf 文件名

注:文件名所在的绝对路径要指出

例:

rpm -qf /usr/lib/libacl.la

3)查询已安装软件包都安装到何处;

语法:rpm -ql 软件包名

例:

rpm -ql mplayer

4)查询一个已安装软件包的信息

语法: rpm -qi 软件包名

例:

rpm -qi mplayer

5)查看一下已安装软件的配置文件;

语法格式:rpm -qc 软件名

例:

rpm -qc mplayer

6)查看一个已经安装软件的文档安装位置:

语法格式: rpm -qd 软件名

例:

rpm -qd mplayer

7)查看一下已安装软件所依赖的软件包及文件;

语法格式: rpm -qR 软件名

例:

rpm -qR mplayer

注:可以把几个参数组合起来用,如 rpm -qil mplayer

对于未安装的软件包的查看 :

查看的前提是当前目录下已存在一个.rpm文件。

1)查看一个软件包的用途、版本等信息;

语法: rpm -qpi file.rpm

例:

rpm -qpi mplayer-1.0pre7try2-2.i386.rpm

2)查看一件软件包所包含的文件;

语法: rpm -qpl file.rpm

例:

rpm -qpl mplayer-1.0pre7try2-2.i386.rpm

3)查看软件包的文档所在的位置;

语法: rpm -qpd file.rpm

例:

rpm -qpd mplayer-1.0pre7try2-2.i386.rpm

4)查看一个软件包的配置文件;

语法: rpm -qpc file.rpm

例:

rpm -qpc mplayer-1.0pre7try2-2.i386.rpm

5)查看一个软件包的依赖关系

语法: rpm -qpR file.rpm

例:

rpm -qpR mplayer-1.0pre7try2-2.i386.rpm

3、软件包的安装、升级、删除等; 安装和升级一个rpm 包

语法:

rpm -ivh file.rpm  这个是用来安装一个新的rpm 包
rpm -Uvh file.rpm   这是用来升级一个rpm包

-i 表示安装,-v 可视化,-h显示安装进度 -U 升级

如果有依赖关系的,需解决依赖关系。
如果找不到依赖关系的包,可以用下面的命令强制安装:

rpm -ivh --nodeps --force file.rpm 
rpm -Uvh --nodeps --force file.rpm

例:

rpm -ivh --test mplayer-1.0pre7try2-2.i386.rpm

--test表示测试,并不真正安装。

rpm -ivh --relocate /=/usr/local/mplayer mplayer-1.0pre7try2-2.i386.rpm

为软件包指定安装目录:要加 --relocate 参数
安装在指定目录中的程序如何调用呢?
通常可执行程序都放在安装目录下的bin或者sbin目录中。

RPM源代码包装安装

.src.rpm结尾的文件,这些文件是由软件的源代码包装而成的,用户要安装这类RPM软件包,必须使用命令:

rpm --recompile vim-4.6-4.src.rpm   这个命令会把源代码解包并编译、安装它,如果用户使用命令:
rpm --rebuild vim-4.6-4.src.rpm  在安装完成后,还会把编译生成的可执行文件重新包装成i386.rpm的RPM软件包。

删除一个rpm 包
首先查出需要删除的rpm包,然后用下面的命令来卸载:

rpm -e 软件包名

例:

rpm -e mplayer  卸载mplayer

如果有其它的rpm依赖于该rpm包,系统会出现警告。
如果一定要卸载,可以用选项 --nodeps 忽略依赖关系。但最好不要这么做。

RPM管理包管理器支持网络安装和查询

rpm  [选项]  rpm包的http或者ftp的地址

比如我们想通过 Fedora Core 4.0 的一个镜像查询、安装软件包。

查询

rpm -qpi http://mirrors.kernel.org/.../RPMS/rsh-0.17-29.rpm

安装

rpm -ivh http://mirrors.kernel.org/.../RPMS/rsh-0.17-29.rpm

对已安装rpm包查询的一点补充

可以用 locate来查询一些软件的安装位置,可能需要先运行updatedb来更新已安装软件库

从rpm软件包抽取文件

rpm2cpio xxx.rpm | cpio -idmv

i 表示提取文件,v 表示指示执行进程
d 表示根据包中文件原来的路径建立目录
m 表示保持文件的更新时间

© 2025 laowang's blog
Theme by Wing