dpkg-deb

dpkg-deb命令是Debian Linux下的软件包管理工具,它可以对软件包执行打包和解包操作以及提供软件包信息。

语法

dpkg-deb(选项)(参数)

选项

-c:显示软件包中的文件列表;
-e:将主控信息解压;
-f:把字段内容打印到标准输出;
-x:将软件包中的文件释放到指定目录下;
-X:将软件包中的文件释放到指定目录下,并显示释放文件的详细过程;
-w:显示软件包的信息;
-l:显示软件包的详细信息;
-R:提取控制信息和存档的清单文件;
-b:创建debian软件包。

参数

文件:指定要操作的“.deb”软件包的全名或软件名。

实例

解压程序文件:

dpkg-deb -x drcom-pum_1.0-0ubuntu1~ppa1~jaunty1_i386.deb drcom

解压控制文件:

dpkg-deb -e drcom-pum_1.0-0ubuntu1~ppa1~jaunty1_i386.deb drcom/DEBIAN

打包生成deb文件:

dpkg-deb -b drcom drcom_1.4.8.2_i386.deb

查询deb包中的文件内容:

dpkg-deb -c demo.deb

dpkg-divert

dpkg-divert命令是Debian Linux中创建并管理一个转向(diversion)列表,其使得安装文件的默认位置失效的工具。

语法

dpkg-divert(选项)(参数)

选项

--add:添加一个转移文件;
--remove:删除一个转移文件;
--list:列出匹配的转移;
--truename:对应转移文件真实文件名;
--quidet:安静模式。

参数

文件:指定转移文件名。

实例

指定软件包wibble安装时,写入/usr/bin/example.foo,而不是/usr/bin/example

dpkg-divert --package wibble --divert /usr/bin/example.foo --rename /usr/bin/example

指定软件包wibble安装时,删除对/usr/bin/example的转移修改:

dpkg-divert --package wibble --rename --remove /usr/bin/example

删除对/usr/bin/example的转移修改:

dpkg-divert --rename --remove /usr/bin/example

添加一个软件包安装时,写入/usr/bin/example.foo,而不是/usr/bin/example的修改:

dpkg-divert --divert /usr/bin/example.foo --rename /usr/bin/example

dpkg-query

dpkg-query命令是Debian Linux中软件包的查询工具,它从dpkg软件包数据库中查询并辨识软件包的信息。

语法

dpkg-query(选项)(参数)

选项

-l:列出符合匹配模式的软件包;
-s:查询软件包的状态信息;
-L:显示软件包所安装的文件列表;
-S:从安装的软件包中查询文件;
-w:显示软件包信息;
-c:显示软件包的控制文件路径;
-p:显示软件包的细节。

参数

软件包名称:指定需要查询的软件包。

实例

查找文件file1在哪个包里安装:

dpkg-query -S file1

列出ubuntu下所安装软件列表:

dpkg-query -W --showformat='${Package} ${Version}\n' > filename

查看软件包详细信息:

dpkg-query -s capistrano

查看软件包安装时安装到系统的文件列表:

dpkg-query -L capistrano

列出所有安装的包:

dpkg-query -l

查看软件包的确切状态(是否安装)以及版本号:

dpkg-query -W -f='${Status} ${Version}\n' apache-perl

dpkg-split

dpkgsplit命令用来将Debian Linux中的大软件包分割成小软件包,它还能够将已分割的文件进行合并。

语法

dpkg-split(选项)(参数)

选项

-S:设置分割后的每个小文件最大尺寸(以字节为单位);
-s:分割软件包;
-j<分块文件><分块文件>:把各个分块合并到一起;
-I<分块文件>:显示分块文件的相关信息;
-l:列出不匹配的部分;
-dscard<文件名>:忽略不匹配的部分。

参数

软件包:指定需要分割的“.deb”软件包。

实例

把foo.deb分割出N个大小为460KB的文件:

dpkg-split -s foo.deb

合并分割文件:

dpkg-split -j "foo*"

dpkg-preconfigure

dpkg-preconfigure命令用于在Debian Linux中软件包安装之前询问问题。

语法

dpkg-preconfigure(选项)(参数)

选项

-f:选择使用的前端;
-p:感兴趣的最低的优先级问题;
--apt:在apt模式下运行。

参数

软件包:指定“.deb”软件包。

实例

导入debconf模板:

dpkg-preconfigure /var/cache/apt/archives/mysql-server-5.5*.deb

dpkg-statoverride

dpkg-statoverride命令用于Debian Linux中覆盖文件的所有权和模式,让dpkg于包安装时使得文件所有权与模式失效。

语法

dpkg-statoverride(选项)

选项

-add:为文件添加一个改写;
--remove:为文件删除一个改写;
--list:显示所有改写列表;
--update:如果文件存在,则立刻执行改写操作。

实例

修改文件夹的权限属性:

sudo dpkg-statoverride --update --add nagios nagios 751 /var/lib/nagios3

强制修改文件夹的权限属性:

sudo dpkg-statoverride --force --update --add root sasl 755 /var/spool/postfix/var/run/saslauthd

将文件从数据库中删除:

sudo dpkg-statoverride --remove /usr/bin/wall

patch

patch命令被用于为开放源代码软件安装补丁程序。让用户利用设置修补文件的方式,修改,更新原始文件。如果一次仅修改一个文件,可直接在命令列中下达指令依序执行。如果配合修补文件的方式则能一次修补大批文件,这也是Linux系统核心的升级方法之一。

语法

patch(选项)(参数)

选项

-b或--backup:备份每一个原始文件;
-B<备份字首字符串>或--prefix=<备份字首字符串>:设置文件备份时,附加在文件名称前面的字首字符串,该字符串可以是路径名称;
-c或--context:把修补数据解译成关联性的差异;
-d<工作目录>或--directory=<工作目录>:设置工作目录;
-D<标示符号>或--ifdef=<标示符号>:用指定的符号把改变的地方标示出来;
-e或--ed:把修补数据解译成ed指令可用的叙述文件;
-E或--remove-empty-files:若修补过后输出的文件其内容是一片空白,则移除该文件;
-f或--force:此参数的效果和指定"-t"参数类似,但会假设修补数据的版本为新版本;
-F<监别列数>或--fuzz<监别列数>:设置监别列数的最大值;
-g<控制数值>或--get=<控制数值>:设置以RSC或SCCS控制修补作业;
-i<修补文件>或--input=<修补文件>:读取指定的修补问家你;
-l或--ignore-whitespace:忽略修补数据与输入数据的跳格,空格字符;
-n或--normal:把修补数据解译成一般性的差异;
-N或--forward:忽略修补的数据较原始文件的版本更旧,或该版本的修补数据已使 用过;
-o<输出文件>或--output=<输出文件>:设置输出文件的名称,修补过的文件会以该名称存放;
-p<剥离层级>或--strip=<剥离层级>:设置欲剥离几层路径名称;
-f<拒绝文件>或--reject-file=<拒绝文件>:设置保存拒绝修补相关信息的文件名称,预设的文件名称为.rej;
-R或--reverse:假设修补数据是由新旧文件交换位置而产生;
-s或--quiet或--silent:不显示指令执行过程,除非发生错误;
-t或--batch:自动略过错误,不询问任何问题;
-T或--set-time:此参数的效果和指定"-Z"参数类似,但以本地时间为主;
-u或--unified:把修补数据解译成一致化的差异;
-v或--version:显示版本信息;
-V<备份方式>或--version-control=<备份方式>:用"-b"参数备份目标文件后,备份文件的字尾会被加上一个备份字符串,这个字符串不仅可用"-z"参数变更,当使用"-V"参数指定不同备份方式时,也会产生不同字尾的备份字符串;
-Y<备份字首字符串>或--basename-prefix=--<备份字首字符串>:设置文件备份时,附加在文件基本名称开头的字首字符串;
-z<备份字尾字符串>或--suffix=<备份字尾字符串>:此参数的效果和指定"-B"参数类似,差别在于修补作业使用的路径与文件名若为src/linux/fs/super.c,加上"backup/"字符串后,文件super.c会备份于/src/linux/fs/backup目录里;
-Z或--set-utc:把修补过的文件更改,存取时间设为UTC;
--backup-if-mismatch:在修补数据不完全吻合,且没有刻意指定要备份文件时,才备份文件;
--binary:以二进制模式读写数据,而不通过标准输出设备;
--help:在线帮助;
--nobackup-if-mismatch:在修补数据不完全吻合,且没有刻意指定要备份文件时,不要备份文件;
--verbose:详细显示指令的执行过程。

参数

  • 原文件:指定需要打补丁的原始文件;
  • 补丁文件:指定补丁文件。

rpmquery

rpmquery命令使用多种依据从rpm数据库中查询软件包信息。

语法

rpmquery(选项)

选项

-qf:查询指定的文件所属的软件包;
-q:查询指定的软件包是否被安装;
-qc:查询软件包中的配置文件;
-qd:查询软件包中的文档文件;
-qi:查询软件包的基本信息。

实例

使用rpmquery命令查询指定文件所属的软件包:

[root@localhost ~]# rpmquery -qf /usr/bin/htpasswd
httpd-2.2.3-81.el5.centos