RPM是红帽包管理器中的“添加/删除程序”,类似于Windows。本文介绍了linux rpm命令参数的完整用法。有兴趣的朋友可以一起学习一下。
RPM是RedHat包管理器(RedHat包管理工具),类似于Windows中的“添加/删除程序”。
rpm 执行安装包
二进制包和源码包。二进制包可以直接安装在电脑里,而源码包会被RPM自动编译安装。源代码通常以src.rpm作为后缀。
常用命令组合:
- ivh: installation显示安装进度-install-verbose-hash
- Uvh:升级包-更新;
- qpl:列出RPM包中的文件信息【查询包列表】;
- qpi:列出RPM软件包的描述信息【查询包安装包】;
-qf:查找指定文件属于哪个RPM包【查询文件】;
-va:检查所有RPM软件包,找到丢失的文件[view lost];
-e:删除包
Rpm -q samba //查询程序是否安装。
rpm-IVH/媒体/cdrom/红帽/rpms/桑巴-.-. e . I . rpm//按照路径安装并显示进度。
rpm-IVH-relocate/=/opt/gaimgeim-.-. fc . I . rpm//指定安装目录。
Rpm-IVH-testgaim-.-. fc . I . rpm//用于检查依赖关系;不是真的装;
rpm-uvh-旧包gaim-.-. fc . I . rpm//新版本降级为旧版本。
Rpm-QA | grep httpd #[搜索是否安装了指定的rpm包]-all search *httpd*
Rpm-qlhttpd #[搜索rpm包]-列出所有文件安装目录
Rpm-qpi Linux-.I . rpm #[查看rpm包]-查询-包-安装包信息
Rpm-qpf Linux-.I . rpm #[查看rpm包]-文件
rpm-qpr file . rpm #[查看包]依赖项
rpm cpio file . rpm | cpio-div #[提取文件]
rpm-IVH file . rpm #[安装新rpm]-install-verbose-hash
rpm -ivh
rpm-uvh file . rpm #[升级rpm] -升级
Rpm-efile . rpm #[删除rpm包]-擦除
常用参数:
安装/升级/擦除选项:
-i,- install安装软件包
-v,- verbose提供更详细的输出
-h,- hash在软件包安装时打印散列标记(适用于-v)
-e,- erase擦除(卸载)软件包
-U,- upgrade=packagefile升级包
-replacekge强制安装软件包,而不管软件包是否已安装。
-测试安装测试,而不是实际安装。
- nodeps忽略软件包的依赖关系并强制安装它们。
- force忽略包和文件之间的冲突。
查询选项(使用-q或- query):
-a,- all查询/验证所有包
-p,- package查询/验证包文件
-l,- list列出包中的文件
-d,- docfiles列出所有文档文件
-f,- file查询/验证拥有文件的包
RPM源代码包装安装
src.rpm末尾的文件,由软件的源代码打包。要安装这种RPM软件包,用户必须使用命令:
rpm-recompile vim-4.6-4 . src . rpm #这个命令将会解包源代码并编译和安装它。如果用户使用该命令:
RPM-RPM-rebuild vim-4.6-4 . src . RPM # #安装完成后,编译好的可执行文件会重新打包到i386.rpm的RPM包中
我不喜欢写复杂的东西。如果麻烦的话,仅供参考。我甚至转给了一个文笔真的很全面的人。
作者:南北南北
出发地:LinuxSir。(同organic)有机
摘要:RPM是红帽包管理器的缩写,原意是红帽包管理;本文介绍了RPM,并举例说明了RPM手动安装和查询的应用。
文本:
RPM是红帽包管理器的缩写,意思是红帽包管理,顾名思义就是红帽贡献的包管理。在Fedora、Redhat、Mandriva、SuSE、YellowDog等主流发行版本中采用。以及在这些版本基础上开发的发行版本;
RPM包中包含什么?它包含一个可执行的二进制程序,类似于。Windows软件包中的exe文件。RPM包还包括程序运行所需的文件,类似于Windows的软件包。除了。exe文件,还有其他文件供程序在Windows中运行。
有时候,一个RPM包中的应用除了自己的附加文件之外,还需要其他特定的版本文件才能保证正常运行,这就是软件包的依赖性。依赖不是Linux独有的,Windows操作系统也存在。比如我们在Windows系统下运行3D游戏,安装的时候,他可能会提示安装Direct9Linux和Windows的原理差不多;
软件安装流程图:
本条款的使用范围:
1.本文是对RPM管理软件的讲解,使用make for file.tar.gz或file.tar.bz2源码包;Make make安装软件无效;
2.安装软件时,最好使用各自发行版提供的系统包管理工具。对于Fedora/Redhat,可以参考以下文章;
1)Fedora系统管理软件包工具system-config-packages,方便添加和删除系统安装盘提供的软件包。详情请咨询《Fedora 软件包管理器system-config-packages》。
2)Redhat系统管理软件包工具。较新的系统应该是redhat-config-packages,用法和《Fedora 软件包管理器system-config-packages》一样;
3)apt新立得软件包在线安装、卸载和升级工具;用法:《用apt+synaptic 在线安装或升级Fedora core 4.0 软件包》
4)在线安装、升级和移除4)yum软件包的工具;用法:《Fedora/Redhat 在线安装更新软件包,yum 篇》
5)所有yum和apt教程《apt and yum》
目前apt和yum已经极其成熟。建议我们安装软件的时候用apt或者YUM。如果安装系统盘提供的包,可以使用system-config-packages或者Red Hat-Config-Packages;
一、RPM包管理的目的;
1.可以安装、删除、升级、管理软件;当然也支持软件在线安装升级;
2.通过RPM包管理,可以知道一个软件包包含哪些文件,系统中某个文件属于哪个软件包;
3.可以查询系统中的软件包是否安装及其版本;
4.作为开发者,你可以把自己的程序打包成RPM包发布;
5.软件包签名GPG和MD5的导入、验证和签名发布
6.检查依赖性以查看是否有任何软件包由于不兼容而干扰系统;
第二,RPM的使用权;
RPM软件只有root权限才能安装、删除和更新;任何用户都可以操作查询功能;如果普通用户有安装目录的权限,也可以安装。
第三,rpm的简单用法;
除了软件包管理器,我们可以通过rpm命令安装它。不是所有软件包都可以用rpm命令安装吗?不,文件结尾是。rpm后缀。有时候我们在一些网站上找到file.rpm,要用rpm安装;
一)初始化rpm 数据库;
通过rpm命令查询是否安装了rpm包也是通过rpm数据库完成的;因此,我们应该始终使用以下两个命令来初始化rpm数据库;
[root @ localhost Bei nan]# rpm-initdb
[root @ localhost beinan]# rpm-rebuild db
注意:这需要很长时间;
注意:这两个参数非常有用。有时候rpm系统有问题,无法安装和查询。大部分都在这里。
二)RPM软件包管理的查询功能:
命令格式
rpm {-q |-query }[选择选项][查询选项]
RPM的查询功能极其强大,是最重要的功能之一;几个常见的例子,详情请参考#man rpm。
1.查询系统中已安装的软件;
1)查询系统已安装的软件;
语法:rpm -q软件名称
示例:
[root @ localhost Bei nan]# rpm-q gaim
gaim-1.3.0-1.fc4
-q是- query,中文意思是“问”。此命令指示系统中是否安装了Gaim如果安装了,会有信息输出;如果没有安装,则输出没有安装gaim的信息;
要查看系统中所有已安装的软件包,请添加-a参数;
[root@localhost RPMS]# rpm -qa
如果分页,添加pipeline |和more命令;
[root @本地主机RPMS]# rpm-QA |更多
在所有已安装的软件包中寻找某个软件,比如GAIM;可以通过grep提取;
[root @ localhost RPMS]# rpm-QA | grep gaim
以上函数与rpm -q gaim的输出结果相同;
2)查询安装文件属于哪个软件包;
语法rpm -qf文件名
注意:应该指出文件名所在的绝对路径。
举个例子
[root @ localhost RPMS]# rpm-qf/usr/lib/libacl . la
libacl-devel-2.2.23-8
3)查询已安装软件包的安装位置;
语法:rpm -ql软件名或rpm rpmquery -ql软件名
示例:
[root @ localhost RPMS]# rpm-QL lynx
[root @ localhost RPMS]# rpm query-QL lynx
4)查询已安装软件包的信息。
语法:rpm -qi软件名称
示例:
[root @ localhost RPMS]# rpm-qi lynx
5)检查已安装软件的配置文件;
格式:rpm -qc软件名称
示例:
[root @ localhost RPMS]# rpm-QC lynx
6)检查已安装软件的文件的安装位置:
格式:rpm -qd软件名称
示例:
[root @ localhost RPMS]# rpm-qd lynx
7)检查已安装软件所依赖的软件包和文件;
格式:rpm -qR软件名称
示例:
[root @ localhost Bei nan]# rpm-qR rpm-python
查询已安装软件汇总:对于一个已经安装的软件包,我们可以结合一系列参数;如RPM-QIL;例如:
[root @ localhost RPMS]# rpm-qil lynx
2、对于未安装的软件包的查看:
查看的前提是你有一个. rpm文件,也就是说查看现有的软件file.rpm等。
1)检查软件包的用途、版本和其他信息;
语法:rpm -qpi file.rpm
示例:
[root @本地主机RPMS]# rpm-qpi lynx-2 . 8 . 5-23 . i386 . rpm
2)检查软件包中包含的文件;
语法:rpm -qpl file.rpm
示例:
[root @本地主机RPMS]# rpm-qpl lynx-2 . 8 . 5-23 . i386 . rpm
3)检查软件包文档的位置;
语法:rpm -qpd file.rpm
示例:
[root @本地主机RPMS]# rpm-qpd lynx-2 . 8 . 5-23 . i386 . rpm
5)检查软件包的配置文件;
语法:rpm -qpc file.rpm
示例:
[root @本地主机RPMS]# rpm-qpc lynx-2 . 8 . 5-23 . i386 . rpm
4)检查软件包的依赖性。
语法:rpm -qpR file.rpm
示例:
[root @ localhost archives]# rpm-qpR yumex _ 0.42-3.0 . fc4 _ no arch . rpm
/bin/bash
/usr/bin/python
配置(yumex)=0.42-3.0.fc4
pygtk2
pygtk2-libglade
rpmlib(compressed filenames)=3 . 0 . 4-1
rpmlib(PayloadFilesHavePrefix)=4.0-1
用户模式
yum=2.3.2
三)软件包的安装、升级、删除等;
1、安装和升级一个rpm 包;
[root @ localhostbeinan]# rpm-VIH file . rpm注意:这是用来安装一个新的rpm包;
[root @ localhost Bei nan]# rpm-uvh file . rpm注意:这是用来升级一个rpm包的;
如有依赖,请解决依赖。事实上,软件包管理器可以很好地解决依赖性。请看之前软件包管理器的介绍。如果在包管理器中也找不到依赖包;那只能通过编译他所依赖的包来解决依赖,或者强制安装;
语法结构:
[root @ localhost beinan]# rpm-IVH file . rpm-nodeps-force
[root @ localhost beinan]# rpm-Uvh file . rpm-nodeps-force
更多参数见手册rpm。
示例:
[root @本地主机RPMS]# rpm-IVH lynx-2 . 8 . 5-23 . i386 . rpm
准备的.########################################### [100%]
1:lynx # # # # # # # # # # # # # # # # 100%]
[root @ localhost RPMS]# rpm-IVH-replace pkgs lynx-2 . 8 . 5-23 . i386 . rpm
准备的.########################################### [100%]
1:lynx # # # # # # # # # # # # # # # # 100%]
注意:- replacepkgs参数用于再次安装已安装的软件;有时候没必要;
测试参数- test,用于检查依赖关系;不是真的装;
[root @ localhost RPMS]# rpm-IVH-test gaim-1 . 3 . 0-1 . fc 4 . i386 . rpm
准备的.########################################### [100%]
从新版本降级到旧版本,add - oldpackage参数;
[root @ localhost RPMS]# rpm-QA gaim
gaim-1.5.0-1.fc4
[root @ localhost RPMS]# rpm-Uvh-old package gaim-1 . 3 . 0-1 . fc 4 . i386 . rpm
准备的.########################################### [100%]
1:gaim # # # # # # # # # # # # # # # # # # # # # # # # # # # # #[100%]
[root @ localhost RPMS]# rpm-QA gaim
gaim-1.3.0-1.fc4
指定软件包的安装目录:添加-relocate参数;下面的例子是在/opt/gaim目录下安装gaim-1 . 3 . 0-1 . fc 4 . i386 . rpm;
[root @ localhost RPMS]# rpm-IVH-relocate/=/opt/gaim gaim-1 . 3 . 0-1 . fc 4 . i386 . rpm
准备的.########################################### [100%]
1:gaim # # # # # # # # # # # # # # # # # # # # # # # # # # # # #[100%]
[root @本地主机RPMS]# ls /opt/
盖姆
指定软件包的安装目录:添加-relocate参数;下面的例子是在/opt/lynx目录下安装lynx-2 . 8 . 5-23 . i386 . rpm;
[root @ localhost RPMS]# rpm-IVH-relocate/=/opt/lynx-badreloc lynx-2 . 8 . 5-23 . i386 . rpm
准备的.########################################### [100%]
1:lynx # # # # # # # # # # # # # # # # 100%]
我们如何调用安装在指定目录下的程序?一般执行程序放在安装目录的bin或sbin目录下;看下面这个例子;如果有错误输出,做相应的链接,使用LN-S;
[root @本地主机RPMS]# /opt/lynx/usr/bin/lynx
配置文件/etc/lynx.cfg不可用。
[root @ localhost RPMS]# ln-s/opt/lynx/etc/lynx . CFG/etc/lynx . CFG
[root @ localhost RPMS]#/opt/lynx/usr/bin/lynx www.linuxsir.org
2、删除一个rpm 包;
第一,你要学会查询rpm包;请看前面的说明;
[root@localhost beinan]#rpm -e包名
示例:我想删除lynx包。完整的操作应该是:
[root@localhost RPMS]# rpm -e lynx
如果存在依赖项,也可以使用- nodeps忽略依赖项检查来删除它。但是尽量不要这么做。最好使用软件包管理器system-config-packages来删除或添加软件;
[root @ localhost beinan]# rpm-e lynx-nodeps
四。导入签名:
[root @ localhost RPMS]# rpm-导入签名文件
示例:
[root @ localhost fc40]# RPM-import RPM-GPG-KEY
[root @ localhost fc40]# RPM-import RPM-GPG-KEY-fedora
有关RPM的签名功能的详细信息,请参见man RPM。
5.RPM管理包管理器支持网络安装和查询;
比如我们想通过一个Fedora Core 4.0的镜像来查询和安装软件包;
地址:
http://mirrors.kernel.org/fedora/core/4/i386/os/Fedora/RPMS/
示例:
命令格式:
rpm包文件的参数rpm http或ftp地址
# rpm-qpi http://mirrors.kernel.org/fedora/core/4/i386/os/Fedora/RPMS/gaim-1 . 3 . 0-1 . fc 4 . i386 . rpm
# rpm-IVH http://mirrors.kernel.org/fedora/core/4/i386/os/Fedora/RPMS/gaim-1 . 3 . 0-1 . fc 4 . i386 . rpm
举一反三;
不及物动词对已安装软件包查询的一点补充;
[root@localhost RPMS]# updatedb
[root@localhost RPMS]#定位软件名或文件名
通过updatedb,我们可以使用locate查询一些软件安装在哪里;Updatedb应该在系统第一次安装的时候执行,每隔一段时间执行一次。使安装的软件库保持最新;Updatedb归slocate包所有;如果没有这个命令,就得安装slocate
示例:
[root@localhost RPMS]#找到gaim
七。从rpm软件包中提取文件;
命令格式:rpm2cpio file.rpm |cpio -div
示例:
[root @ localhost RPMS]# rpm 2 cpio gaim-1 . 3 . 0-1 . fc 4 . i386 . rpm | cpio-div
提取的文件在当前操作目录下的usr和etc中;
其实安装软件不如指定安装目录方便。您也可以提取文件;
指定软件包的安装目录:添加-relocate参数;下面的例子是在/opt/gaim目录下安装gaim-1 . 3 . 0-1 . fc 4 . i386 . rpm;
[root @ localhost RPMS]# rpm-IVH-relocate/=/opt/gaim gaim-1 . 3 . 0-1 . fc 4 . i386 . rpm
准备的.########################################### [100%]
1:gaim # # # # # # # # # # # # # # # # # # # # # # # # # # # # #[100%]
[root @本地主机RPMS]# ls /opt/
盖姆
这个也可以一目了然;gaim的所有文件都安装在/opt/gaim中。我们只需备份gaim目录并卸载gaim。其实这是解压文件的一点用法;
八。RPM的配置文件;
RPM包管理,配置文件是rpmrc,可以在我们自己的系统中找到;例如,Fedora Core 4.0中的rpmrc文件位于;
[root @ localhost RPMS]# locate RPC
/usr/lib/rpm/rpmrc
/usr/lib/rpm/redhat/rpmrc
我们可以通过rpm - showrc来查看;我们必须自己了解细节。哦。别问我,我也不懂;只要你看了这篇文章,觉得对你有用,你的水平和我差不多;我们水平一样,我帮不了你;请理解;
九。src.rpm的用法:
《file.src.rpm 使用方法的简介》
后记:我在Fedora/Redhat入门教程里写过很多关于软件包管理的内容;目前还缺乏通过源码包和一个总结文档来安装软件的方法;我想这两天补上。之前写过这两篇文章;只是重新整理一下,贴出来;
就我的水平来说,写Fedora入门教程是极其费力的,只能一点一点完善补充;我写的教程是给对Linux一无所知的初学者的;教程中的例子占大多数;我发现在没有例子的情况下,新手看man比较好;我能看见人,当然我不是新手。
经常在论坛上看一些兄弟的问题,虽然一问一解我也能应付。但是为了让大家更方便,不如写一个系统的入门教程;虽然需要的时间长一点;
Ps: Linux rpm删除命令
命令格式:
rpm -e(或- erase)选项pkg1.pkgN
参数
Pkg1.pkgN:要删除的包
详细选项
- test仅执行已删除的测试。
- noscripts不运行安装前和安装后脚本。
- nodeps不检查依赖关系。
常规选项
-vv显示调试信息。
- root
程序将安装在这个目录中。
- rcfile
- dbpath