rpm命令手册和查看rpm安装包的安装路径的方法

来源: 电脑维修教程 阅读:     发表时间:

rpm -qpl xxxxxx.rpm 1.若何安装rpm软件包 rmp软件包的安装可使用法式rpm来完成。执行下面的号令 rpm -i your-package.rpm 此中your-package.rpm是你要安装的rpm包的文件名

rpm -qpl xxxxxx.rpm 1.若何安装rpm软件包 rmp软件包的安装可使用法式rpm来完成。执行下面的号令 rpm -i your-package.rpm 此中your-package.rpm是你要安装的rpm包的文件名,一般置于当前目次下。 安装进程中可能呈现下面的警告或者提醒: ... conflict with .

rpm -qpl xxxxxx.rpm

1.若何安装rpm软件包

rmp软件包的安装可使用法式rpm来完成。执行下面的号令

rpm -i your-package.rpm

此中your-package.rpm是你要安装的rpm包的文件名,一般置于当前目次下。

安装进程中可能呈现下面的警告或者提醒:

... conflict with ... 多是要安装的包里有一些文件可能会笼盖现有

的文件,缺省时如许的环境下是没法准确安装的可以用

rpm --force -i 强迫安装便可

... is needed by ...

... is not installed ... 此包需要的一些软件你没有安装可以用

rpm --nodeps -i 来疏忽此信息

也就是说,rpm -i --force --nodeps 可以疏忽所有依靠关系和文件问题,什么包

都能安装上,但这种强迫安装的软件包不克不及保证完全阐扬功能

2.若何安装.src.rpm软件包

有些软件包是以.src.rpm结尾的,这类软件包是包括了源代码的rpm包,在安装时

需要进行编译。这类软件包有两种安装方式,

方式一:

1.执行rpm -i your-package.src.rpm

2. cd /usr/src/redhat/specs

3. rpmbuild -bp your-package.specs 一个和你的软件包同名的specs文件

4. cd /usr/src/redhat/build/your-package/ 一个和你的软件包同名的目次

5. ./configure 这一步和编译通俗的源码软件一样,可以加上参数

6. make

7. make install

方式二:

1.执行rpm -i you-package.src.rpm

2. cd /usr/src/redhat/specs

前两步和方式一不异

3. rpmbuild -bb your-package.specs 一个和你的软件包同名的specs文件

这时候,在/usr/src/redhat/rpm/i386/ (按照具体包的分歧,也多是i686,noarch等等)

在这个目次下,有一个新的rpm包,这个是编译好的二进制文件。

执行rpm -i new-package.rpm便可安装完成。

3.若何卸载rpm软件包

利用号令 rpm -e 包名,包名可以包括版本号等信息,可是不成以有后缀.rpm

好比卸载软件包proftpd-1.2.8-1,可使用下列格局:

rpm -e proftpd-1.2.8-1

rpm -e proftpd-1.2.8

rpm -e proftpd-

rpm -e proftpd

不成所以下列格局:

rpm -e proftpd-1.2.8-1.i386.rpm

rpm -e proftpd-1.2.8-1.i386

rpm -e proftpd-1.2

rpm -e proftpd-1

有时会呈现一些过错或者警告:

... is needed by ... 这申明这个软件被其他软件需要,不克不及随意卸载

可以用rpm -e --nodeps强迫卸载

4.若何不安装可是获得rpm包中的文件

利用东西rpm2cpio和cpio

rpm2cpio xxx.rpm | cpio -vi

rpm2cpio xxx.rpm | cpio -idmv

rpm2cpio xxx.rpm | cpio --extract --make-directories

参数i和extract不异,暗示提取文件。v暗示指示执行历程

d和make-directory不异,暗示按照包中文件原来的路径成立目次

m暗示连结文件的更新时候。

5.若何查看与rpm包相关的文件和其他信息

下面所有的例子都假定利用软件包mysql-3.23.54a-11

1.我的系统中安装了那些rpm软件包

rpm -qa 讲列出所有安装过的包

若是要查找所有安装过的包括某个字符串sql的软件包

rpm -qa |grep sql

2.若何取得某个软件包的文件全名

rpm -q mysql 可以取得系统中安装的mysql软件包全名,从中可以取得

当前软件包的版本等信息。这个例子中可以获得信息mysql-3.23.54a-11

3.一个rpm包中的文件安装到那边去了?

rpm -ql 包名

注重这里的是不包括.rpm后缀的软件包的名称

也就是说只能用mysql或者mysql-3.23.54a-11而不是mysql-3.23.54a-11.rpm。

若是只是想明白可执行法式放到那边去了,也能够用which,好比

which mysql

4.一个rpm包中包括那些文件

一个没有安装过的软件包,利用rpm -qlp ****.rpm

一个已安装过的软件包,还可使用rpm -ql ****.rpm

5.若何获得关于一个软件包的版本,用处等相关信息?

一个没有安装过的软件包,利用rpm -qip ****.rpm

一个已安装过的软件包,还可使用rpm -qi ****.rpm

6.某个法式是哪一个软件包安装的,或者哪一个软件包包括这个法式

rpm -qf `which 法式名` 返回软件包的全名

rpm -qif `which 法式名` 返回软件包的有关信息

rpm -qlf `which 法式名` 返回软件包的文件列表

注重,这里不是引号,而是`,就是键盘左上角的谁人键。

也能够利用rpm -qilf,同时输出软件包信息和文件列表

7.某个文件是哪一个软件包安装的,或者哪一个软件包包括这个文件

注重,前一个问题中的方式,只合用与可执行的法式,而下面的方式,不但可以

用于可执行法式,也能够用于通俗的任何文件。条件是明白这个文件名。

起首取得这个法式的完整路径,可以用whereis或者which,然后利用rpm -qf例如:

# whereis ftptop

ftptop: /usr/bin/ftptop /usr/share/man/man1/ftptop.1.gz

# rpm -qf /usr/bin/ftptop

proftpd-1.2.8-1

# rpm -qf /usr/share/doc/proftpd-1.2.8/rfc/rfc0959.txt

proftpd-1.2.8-1

总结:

取得软件包相关的信息用rpm -q,q暗示查询query,后面可以跟其他选项,好比

i 暗示info,取得软件包的信息;

l 暗示list,取得文件列表;

a 暗示all,在所有包中执行查询;

f 暗示file,按照文件进行相关的查询;

p 暗示package,按照软件包进行查询

需要的查询前提可使用grep发生,或者从"` `"中的号令行发生

6.关于rpm软件包的一些相关常识

1.什么是rpm

rpm 即redhat package management,是redhat的发现之一

2.为何需要rpm

在一个操作系统下,需要安装实现各类功能的软件包。这些软件包一般都有各自的

法式,可是同时也有扑朔迷离的依靠关系。同时还需要解决软件包的版本,和安装,

设置装备摆设,卸载的主动化问题。为领会决这些问题,redhat针对自己的系统提出了一个

较好的法子来经管成千上百的软件。这就是rpm经管系统。在系统中安装了rpm经管系统

今后,只如果合适rpm文件尺度的打包的法式都可以利便的安装,进级,卸载

3.是否是所有的linux都利用rpm

任何系统都需要保证理系统,是以良多linux都利用rpm系统。但rpm系统是为rh专门

可是tl,mandrake等系统也都利用rpm。因为rpm的源法式可以在此外系统长进行编译,

所以有可能在此外系统上也利用rpm

除了rpm,其他一些系统也有自己的软件保证理法式,例如debian的deb包,

slakware也都有自己的保证理系统

4.rpm包的文件名为何那末长

rpm包的文件名中包括了这个软件包的版本信息,操作系统信息,硬件要求等等。

好比mypackage-1.1-2tl.i386.rpm,此中mypackage是在系统中挂号的软件包的名字

1.1是软件的版本号,2是刊行号,tl暗示用于tl操作系统,还多是rh等。i386暗示

用于intel x86平台,还多是sparc等。

5.软件包文件名中的i386,i686是什么意思

rpm软件包的文件名中,不但包括了软件名称,版本信息,还包括了合用的硬件架构

的信息。

i386指这个软件包合用于intel 80386以上的x86架构的计较机(ai32)

i686指这个软件包合用于intel 80686以上(飞跃pro以上)的x86架构的计较机(ia32)

noarch指这个软件包于硬件架构无关,可以通用。

i686软件包的法式凡是针对cpu进行了优化,所以,向后兼容对比用以,i386的包在

x86机械上都可以用。向前一般不兼容。不外此刻的计较机,飞跃pro以下的cpu已很少

用,凡是设置装备摆设的机械都可使用i686软件包

6.分歧操作系统刊行的rpm包能否混用?

对于已编译成二进制的rpm包,因为操作系统情况分歧,一般不克不及混用。

对于以src.rpm刊行的软件包,因为需要安装时进行当地编译,所以凡是可以在分歧

系统下安装。

7.利用rpm时碰到的一些特别问题

q 我用rpm -e **.rpm没法删除rpm包

a 包名不要包括rpm,

rpm -e 包名,可以包括版本号等信息,可是不成以有后缀.rpm

q 在ms的系统下有无读rpm文件的东西?

a wincmd with rpm plugins.....

q 是不是可以经由过程ftp安装安装进级rpm包?

a 可以。rpm -ivh

ftp://xxxxxxxx/path2somerpm

q rpm安装时已有的包版本太高怎样办?

a 有时因为安装的软件包太老,而系统中相关的软件包版本对比新,所以可能需要

安装的包依靠的一些文件会找不到。这时候有两种解决法子,

第一是在系统文件中找到和需要的文件功能不异或相似的文件,做一个符号链接到

需要的目次下。

以下是我明白的在linux下的rpm软件包安装时若何指定安装路径的方式,很多是从网上学来的。请大家多多指教啊。

以下的options是可完成你想体例.

--prefix <path>

this sets the installation prefix to <path> for

relocatable packages.

--relocate <oldpath>=<newpath>

for relocatable packages, translates the files that

would be put in <oldpath> to <newpath>.

--badreloc

to be used in conjunction with --relocate, this

forces the relocation even if the package isn't

relocatable.

--noorder

don't reorder the packages for an install. the list

of packages would normally be reordered to satisfy

dependancies.

rpm号令手册

一、安装

号令格局:

rpm -i ( or --install) options file1.rpm ... filen.rpm

参数:

file1.rpm ... filen.rpm 将要安装的rpm包的文件名

具体选项:

-h (or --hash) 安装时输出hash记号 (``#'')

--test 只对安装进行测试,并不现实安装。

--percent 以百分比的形式输出安装的进度。

--excludedocs 不安装软件包中的文档文件

--includedocs 安装文档

--replacepkgs 强迫从头安装已安装的软件包

--replacefiles 替代属于其它软件包的文件

--force 疏忽软件包及文件的冲突

--noscripts 不运行预安装和后安装剧本

--prefix 将软件包安装到由 指定的路径下

--ignorearch 不校验软件包的布局

--ignoreos 不查抄软件包运行的操作系统

--nodeps 不查抄依靠性关系

--ftpproxy 用 作为 ftp代办署理

--ftpport 指定ftp的端标语为

通用选项

-v 显示附加信息

-vv 显示调试信息

--root 让rpm将指定的路径做为"根目次",如许预安装法式和后安装法式城市安装到这个目次下

--rcfile 设置rpmrc文件为

--dbpath 设置rpm 资料库存地点的路径为

二、删除

号令格局:

rpm -e ( or --erase) options pkg1 ... pkgn

参数

pkg1 ... pkgn :要删除的软件包

具体选项

--test 只执行删除的测试

--noscripts 不运行预安装和后安装剧本法式

--nodeps 不查抄依靠性

通用选项

-vv 显示调试信息

--root 让rpm将指定的路径做为"根目次",如许预安装法式和后安装法式城市安装到这个目次下

--rcfile 设置rpmrc文件为

--dbpath 设置rpm 资料库存地点的路径为

三、进级

号令格局

复制代码

代码以下:

rpm -u ( or --upgrade) options file1.rpm ... filen.rpm

参数

file1.rpm ... filen.rpm 软件包的名字

具体选项

-h (or --hash) 安装时输出hash记号 (``#'')

--oldpackage 许可"进级"到一个老版本

--test 只进行进级测试

--excludedocs 不安装软件包中的文档文件

--includedocs 安装文档

--replacepkgs 强迫从头安装已安装的软件包

--replacefiles 替代属于其它软件包的文件

--force 疏忽软件包及文件的冲突

--percent 以百分比的形式输出安装的进度。

--noscripts 不运行预安装和后安装剧本

--prefix 将软件包安装到由 指定的路径下

--ignorearch 不校验软件包的布局

--ignoreos 不查抄软件包运行的操作系统

--nodeps 不查抄依靠性关系

--ftpproxy 用 作为 ftp代办署理

--ftpport 指定ftp的端标语为

通用选项

-v 显示附加信息

-vv 显示调试信息

--root 让rpm将指定的路径做为"根目次",如许预安装法式和后安装法式城市安装到这个目次下

--rcfile 设置rpmrc文件为

--dbpath 设置rpm 资料库存地点的路径为

四、查询

号令格局:

复制代码

代码以下:

rpm -q ( or --query) options

参数:

pkg1 ... pkgn :查询已安装的软件包

具体选项

-p (or ``-'') 查询软件包的文件

-f 查询属于哪一个软件包

-a 查询所有安装的软件包

--whatprovides 查询供给了 功能的软件包

-g 查询属于 组的软件包

--whatrequires 查询所有需要 功能的软件包

信息选项

显示软件包的全数标识

-i 显示软件包的概要信息

-l 显示软件包中的文件列表

-c 显示设置装备摆设文件列表

-d 显示文档文件列表

-s 显示软件包中文件列表并显示每一个文件的状况

--scripts 显示安装、卸载、校验剧本

--queryformat (or --qf) 以用户指定的体例显示查询信息

--dump 显示每一个文件的所有已校验信息

--provides 显示软件包供给的功能

--requires (or -r) 显示软件包所需的功能

通用选项

-v 显示附加信息

-vv 显示调试信息

--root 让rpm将指定的路径做为"根目次",如许预安装法式和后安装法式城市安装到这个目次下

--rcfile 设置rpmrc文件为

--dbpath 设置rpm 资料库存地点的路径为

五、校验已安装的软件包

号令格局:

复制代码

代码以下:

rpm -v ( or --verify, or -y) options

参数

pkg1 ... pkgn 将要校验的软件包名

软件包选项

-p verify against package file

-f 校验所属的软件包

-a verify 校验所有的软件包

-g 校验所有属于组 的软件包

具体选项

--noscripts 不运行校验剧本

--nodeps 不校验依靠性

--nofiles 不校验文件属性

通用选项

-v 显示附加信息

-vv 显示调试信息

--root 让rpm将指定的路径做为"根目次",如许预安装法式和后安装法式城市安装到这个目次下

--rcfile 设置rpmrc文件为

--dbpath 设置rpm 资料库存地点的路径为

六、校验软件包中的文件

语法:

复制代码

代码以下:

rpm -k ( or --checksig) options file1.rpm ... filen.rpm

参数:

file1.rpm ... filen.rpm 软件包的文件名

checksig--具体选项

--nopgp 不校验pgp签名

通用选项

-v 显示附加信息

-vv 显示调试信息

--rcfile 设置rpmrc文件为

七、其它rpm选项

--rebuilddb 重建rpm资料库

--initdb 建立一个新的rpm资料库

--quiet 尽量的削减输出

--help 显示扶助文件

--version 显示rpm确当前版本

以上是:解决rpm命令手册和查看rpm安装包的安装路径的方法问题的详细资料教程