yum本身自带了两个选项, 用来只下载要安装的rpm包, 而并不实际安装包:
yum --downloadonly --downloaddir=/root/Desktop rpm-name1 rpm-name2..
rpm -l --list 可以列出已经安装的rpm中的具体文件以及它们被安装到哪些位置? 这个-l 一定要和-q组合起来使用?!
还要把/etc/yum.conf中的keepcache改成1,默认是0即安装后不保存包头和软件包
cpio是什归档软件? 是rpm打包的基础, 即将多个要打包的文件 首先归档为cpio压缩包, 然后 rpm在cpio的基础上进行打包.
cpio == copy-in, copy-out
Main operation mode:
-i, --extract Extract files from an archive (run in copy-in
mode)
-o, --create Create the archive (run in copy-out mode)
一般的操作选项是: cpio -div 抽取"解压"rpm包.
关于rpm的参数? (下面这三个很重要)!
-p, --package query/verify a package file 这个包是指rpm包, 还没有安装的rpm包.
>>>> 一个rpm包中的文件安装到那里去了?
rpm -ql 包名
注意这里的是不包括.rpm后缀的软件包的名称
也就是说只能用mysql或者mysql-3.23.54a-11而不是mysql-3.23.54a-11.rpm。
如果只是想知道可执行程序放到那里去了,也可以用which,比如
which mysql
>>>>> .一个rpm包中包含那些文件
一个没有安装过的软件包,使用rpm -qlp ****.rpm
一个已经安装过的软件包,还可以使用rpm -ql ****.rpm
>>>> .如何获取关于一个软件包的版本,用途等相关信息?
一个没有安装过的软件包,使用rpm -qip ****.rpm
一个已经安装过的软件包,还可以使用rpm -qi ****.rpm
如何从rpm中提取文件?
首先, 你不必安装rpm包,然后提取文件, 然后删除
其次, 使用的工具是: rpm2cpio, cpio
一般而言, rpm2cpio 和 cpio是系统本身就提供的程序, 不需要额外安装:
[root@localhost ~]# which rpm2cpio
/usr/bin/rpm2cpio
[root@localhost ~]# which cpio
/bin/cpio
[root@localhost ~]# 使用的命令是: rpm2cpio xxx.rpm > xxx.cpio , 然后cpio -div xxx.cpio
cpio= copy-in , copy-out. -div,不是一个完整的单词, 是多个选项的组合, 因此, -div 不能写成 --div
cpio的特殊命令格式?
cpio只是copy!, 它是很特殊的命令, 后面不能直接跟操作的文件名和目的地址!
要操作的文件名 必须 通过 重定向符合: > , < 来实现.
Usage: cpio [OPTION...] [destination-directory] 这个后面没有要操作的文件名!
GNU `cpio' copies files to and from archives
Examples:
# Copy files named in name-list to the archive
cpio -o < name-list [> archive]
# Extract files from the archive
cpio -i [< archive]
# Copy files named in name-list to destination-directory
cpio -p destination-directory < name-list
Main operation mode:
-i, --extract Extract files from an archive (run in copy-in
mode)
-o, --create Create the archive (run in copy-out mode)
-p, --pass-through Run in copy-pass mode
-t, --list Print a table of contents of the input
因此很多时候, 我们更愿意使用 管道命令:
rpm2cpio xxx.rpm > xxx.cpio | cpio -div 或者: cpio -div < xxx.cpio
rpm如何指定自定义安装路径?
以下的options是可完成你想方式.
--prefix <path>;
This sets the installation prefix to <path>; for relocatable packages.
[root@localhost srclib]# rpm -ivh --prefix=/opt/test apr-1.3.9-5.el6_2.i686.rpm
error: package apr is not relocatable (只能是可重定位的包)