Linux使用dpkg 解压deb安装deb包出现错误

Linux(24)
dpkg(底层一些的包管理工具,用上apt(高级包管理工具)之后,一般是不需要处理单个的deb文件的。如果需要,就要用dpkg命令)
1.dpkg -i gedit-2.12.1.deb:安装gedit
2.dpkg -r gedit:卸载gedit,但不删除配置文件
3.dpkg -P gedit:这会连同gedit的配置文件一起删除,只用-r的话是不删除配置文件的
4.dpkg -c gedit-2.12.1.deb:如果不想安装一个deb包,但想看一下它里面有什么文件就用这;如果想多看点信息用,
&&dpkg -I gedit-2.12.1.deb
5.dpkg -l gcc*:也可以用通配符来列出机器上的软件,这会列出所有gcc开头的软件包,其中,第1个 i 表示希望安装,第2个 i 表示已经安装,第3个字段是问题(如果有)(这3个字的含义可以看上面那3行,desired, status, err),后面是名字,版本和描述。un就表示,Unknown, not-installed
6.dpkg -s gedit:如果想看某包是否已经安装:
7.dpkg -L gedit:如果想看某软件都有哪些文件,都装到了什么地方;如果只想看其中的某些文件,就加上Grep:
&&dpkg -L gedit grep png
&&相关文章推荐
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:47044次
积分:1024
积分:1024
排名:千里之外
原创:49篇
转载:47篇
(3)(2)(9)(4)(6)(2)(3)(5)(19)(9)(30)(4)
(window.slotbydup = window.slotbydup || []).push({
id: '4740881',
container: s,
size: '200,200',
display: 'inlay-fix'http://hi.chinaunix.net/?uid--action-viewspace-itemid-38146
先来看看Linux软件扩展名。软件后缀为.rpm最初是Red Hat Linux提供的一种包封装格式,现在许多Linux发行版本都使用;后缀为.deb是Debain Linux提供的一种包封装格式;后缀为.tar.gz、tar.Z、tar.bz2或.tgz是使用Unix系统打包工具tar打包的;后缀为.bin的一般是一些商业软件。通过扩展名可以了解软件格式,进而了解软件安装。
&&& RPM格式软件包的安装
&&& 1.简介
&&& 几乎所有的Linux发行版本都使用某种形式的软件包管理安装、更新和卸载软件。与直接从源代码安装相比,软件包管理易于安装和卸载;易于更新已安装的软件包;易于保护配置文件;易于跟踪已安装文件。
&&& RPM全称是Red Hat Package Manager(Red Hat包管理器)。RPM本质上就是一个包,包含可以立即在特定机器体系结构上安装和运行的Linux软件。RPM示意图见图1。
图1 RPM结构示意图
&&& 大多数Linux RPM软件包的命名有一定的规律,它遵循名称-版本-修正版-类型-MYsoftware-1.2 -1.i386.rpm 。
&&& 2.安装RPM包软件
&&& # rpm -ivh MYsoftware-1.2 -1.i386.rpm
&&& RPM命令主要参数:
-i& 安装软件。
-t& 测试安装,不是真的安装。
-p& 显示安装进度。
-f& 忽略任何错误。
-U& 升级安装。
-v& 检测套件是否正确安装。
&&& 这些参数可以同时采用。更多的内容可以参考RPM的命令帮助。
&&& 3.卸载软件
&&& # rpm -e 软件名
&&& 需要说明的是,上面代码中使用的是软件名,而不是软件包名。例如,要卸载software-1.2.-1.i386.rpm这个包时,应执行:
&&& #rpm -e software
&&& 4.强行卸载RPM包
&&& 有时除去一个RPM是不行的,尤其是系统上有别的程序依赖于它的时候。如果执行命令会显示如下错误信息:
## rpm -e xsnow
error: removing these packages would break dependencies:
&&&&&&& /usr/X11R6/bin/xsnow is needed by x-amusements-1.0-1
&&& 在这种情况下,可以用--force选项重新安装xsnow:
## rpm -ivh --force xsnow-1.41-1.i386.rpm
xsnow
&&& 这里推荐使用工具软件Kleandisk,用它可以安全彻底清理掉不再使用的RPM包。详细情况请查看2003年《开放系统世界》第12期。
&&& 5.安装.src.rpm类型的文件
&&& 目前RPM有两种模式,一种是已经过编码的(i386.rpm),一种是未经编码的(src.rpm)。
&&& rpm --rebuild Filename.src.rpm
&&& 这时系统会建立一个文件Filenamr.rpm,在/usr/src/redflag/RPMS/子目录下,一般是i386,具体情况和Linux发行版本有关。然后执行下面代码即可:
&&& rpm -ivh /usr/src/regflag/RPMS/i386/Filename.rpm
&&& 使用deb打包的软件安装
&&& deb是Debian Linux提供的一个包管理器,它与RPM十分类似。但由于RPM出现得早,并且应用广泛,所以在各种版本的Linux中都常见到,而Debian的包管理器dpkg只出现在Debina Linux中。它的优点是不用被严格的依赖性检查所困扰,缺点是只在Debian Linux发行版中才能见到这个包管理工具。
&&& 1. 安装
&&& # dpkg -i MYsoftware-1.2.-1.deb
&&& 2. 卸载
&&& # dpkg -e MYsoftware
&&& 使用源代码进行软件安装
&&& 和RPM安装方式相比,使用源代码进行软件安装会复杂一些,但是用源代码安装软件是Linux下进行软件安装的重要手段,也是运行Linux的最主要的优势之一。使用源代码安装软件,能按照用户的需要选择定制的安装方式进行安装,而不是仅仅依靠那些在安装包中的预配置的参数选择安装。另外,仍然有一些软件程序只能从源代码处进行安装。
&&& 现在有很多地方都提供源代码包,到底在什么地方获得取决于软件的特殊需要。对于那些使用比较普遍的软件,如Sendmail,可以从商业网站处下载源代码软件包(如http://www.sendmail.org )。一般的软件包,可从开发者的Web站点下载。下面介绍一下安装步骤:
&&& 1.解压数据包
&&& 源代码软件通常以.tar.gz做为扩展名,也有tar.Z、tar.bz2或.tgz为扩展名的。不同扩展名解压缩命令也不相同,见表1。
&&& 2.编译软件
&&& 成功解压缩源代码文件后,进入解包的目录。在安装前阅读Readme文件和Install文件。尽管许多源代码文件包都使用基本相同的命令,但是有时在阅读这些文件时能发现一些重要的区别。例如,有些软件包含一个可以安装的安装脚本程序(.sh)。在安装前阅读这些说明文件,有助于安装成功和节约时间。
&&& 在安装软件以前要成为root用户。实现这一点通常有两种方式:在另一台终端以root用户登录,或者输入“su”,此时系统会提示输入root用户的密码。输入密码以后,就将一直拥有root用户的权限。如果已经是root用户,那就可以进行下一步。
&&& 通常的安装方法是从安装包的目录执行以下命令:
gunzip soft1.tar.gz
cd soft1
#. /configure #配置#
make #调用make#
make install& #安装源代码#
&&& 删除安装时产生的临时文件:
&&& #make clean
&&& 卸载软件:
&&& #make uninstall
&&& 有些软件包的源代码编译安装后可以用make uninstall命令卸载。如果不提供此功能,则软件的卸载必须手动删除。由于软件可能将文件分散地安装在系统的多个目录中,往往很难把它删除干净,应该在编译前进行配置。
&&& .bin文件安装
&&& 扩展名为.bin文件是二进制的,它也是源程序经编译后得到的机器语言。有一些软件可以发布为以.bin为后缀的安装包,例如,流媒体播放器RealONE。如果安装过RealONE的Windows版的话,那么安装RealONE for Linux版本(文件名:r1p1_linux22_libc6_i386_a1.bin)就非常简单了:
&&& #chmod +x r1p1_linux22_libc6_i386_a1.bin
&&& ./ r1p1_linux22_libc6_i386_a1.bin
&&& 接下来选择安装方式,有普通安装和高级安装两种。如果不想改动安装目录,就可选择普通安装,整个安装过程几乎和在Windwos下一样。
&&& .bin文件的卸载,以RealONE for Linux为例,如果采用普通安装方式的话,在用户主目录下会有Real和Realplayer9两个文件夹,把它们删除即可。
&&& Linux绿色软件
&&& Linux也有一些绿色软件,不过不是很多。Linux系统提供一种机制:自动响应软件运行进程的要求,为它设定好可以马上运行的环境。这种机制可以是一种接口,或者是中间件。程序员编写的程序可以直接拷贝分发,不用安装,只要点击程序的图标,访问操作系统提供的接口,设定好就可以工作。若要删除软件,直接删除就可以,不用链接文件。这是最简单的软件安装、卸载方式。
&&& 上面介绍了Linux软件安装的方法,对于Linux初学者来说,RPM安装是一个不错的选择。如果想真正掌握Linux系统,源代码安装仍然是Linux下软件安装的重要手段。(
浏览: 65298 次
来自: 上海博客分类:
在 GNU/Linux( 以下简称 Linux) 操作系统中,RPM 和 DPKG 为最常见的两类软件包管理工具,他们分别应用于基于 RPM 软件包的 Linux 发行版本和 DEB 软件包的 Linux 发行版本。软件包管理工具的作用是提供在操作系统中安装,升级,卸载需要的软件的方法,并提供对系统中所有软件状态信息的查询。
RPM 全称为 Redhat Package Manager,最早由 Red Hat 公司制定实施,随后被 GNU 开源操作系统接受并成为很多 Linux 系统 (RHEL) 的既定软件标准。与 RPM 进行竞争的是基于 Debian 操作系统 (UBUNTU) 的 DEB 软件包管理工具- DPKG,全称为 Debian Package,功能方面与 RPM 相似。二者之具体比较不在本文范围之内。
RPM 包的安装 / 升级 / 查询 / 卸载
一个 RPM 包包含了已压缩的软件文件集以及该软件的内容信息(在头文件中保存),通常表现为以 .rpm 扩展名结尾的文件,例如 package.rpm 。对其操作,需要使用 rpm 命令。下面介绍 rpm 工具的参数和使用方法,并以 IBM Lotus Notes 在 RHEL 5.2 安装为例做具体说明。
RPM 命令常用参数
RPM 的常规使用方法为 rpm -? package.rpm,其中 -? 为操作参数 ( 更多信息,请查阅帮助 $man rpm):
-q 在系统中查询软件或查询指定 rpm 包的内容信息 -i 在系统中安装软件 -U 在系统中升级软件 -e 在系统中卸载软件 -h 用 #(hash) 符显示 rpm 安装过程 -v 详述安装过程 -p 表明对 RPM 包进行查询,通常和其它参数同时使用,如: -qlp 查询某个 RPM 包中的所有文件列表 -qip 查询某个 RPM 包的内容信息
RPM 命令参数使用方法
以上参数有些需要组合使用,比如说 rpm -h package.rpm 是没有意义的,但 rpm -ih package.rpm 即表示安装 package 并用 # 符显示安装进度。
安装 RPM 包
# rpm -ivh package.rpm
升级 RPM 包命令
# rpm -Uvh package.rpm
卸载 RPM 包命令
# rpm -ev package
查询 RPM 包中包含的文件列表命令
# rpm -qlp package
查询 RPM 包中包含的文件列表命令
# rpm -qlp package
查询 RPM 包中包含的内容信息命令
# rpm -qip package
查询系统中所有已安装 RPM 包
# rpm -qa
RPM 包管理示例
以下步骤描述了一个普通用户安装 IBM Lotus Notes V85 ( 以下简称 Notes) 的典型操作过程。 Notes 的 RPM 包名为 ibm_lotus_notes-8.5.i586.rpm 。
首先查询是否该软件是否已经在系统中存在
# rpm -qa | grep ibm_lotus_notes
如果返回信息为空那么说明该软件还未被安装。
查询 Notes 软件包内容:
# rpm -qip ibm_lotus_notes-8.5.i586.rpm Name : ibm_lotus_notes Relocations: /opt/ibm/lotus/notes Version : 8.5 Vendor: IBM Release : 5 Build Date: Sat 13 Dec :55 AM CST Install Date: (not installed) Build Host: dithers. Group : Applications/Office Source RPM: ibm_lotus_notes-8.5-5.src.rpm Size :
License: Commercial Signature : DSA/SHA1, Sat 13 Dec :02 AM CST, Key ID 314c8c Summary : IBM Lotus Notes Description : IBM Lotus Notes software provides a robust ...
安装 Notes:
# rpm -ivh ibm_lotus_notes-8.5.i586.rpm
返回信息 :
Preparing... ########################################### [100%] 1:ibm_lotus_notes ########################################### [100%]
升级 Notes:
若今后需要基于该版本升级至更高版本的 Notes( 缝 .0 - ibm_lotus_notes-9.0.i586.rpm),则使用 -U 参数:
# rpm -Uvh ibm_lotus_notes-8.5.i586.rpm
在该步骤中如果使用 -i 则系统通常会报文件冲突错误,无法正常安装。
卸载 Notes
注意卸载软件使用软件名称,而不是包文件名:
# rpm -ev ibm_lotus_notes
DEB 包的安装 / 升级 / 查询 / 卸载
一个 DEB 包包含了已压缩的软件文件集以及该软件的内容信息(在头文件中保存),通常表现为以 .deb 扩展名结尾的文件,例如 package.deb 。对其操作,需要使用 dpkg 命令。下面介绍 dpkg 工具的参数和使用方法,并以 IBM Lotus Notes 在 UBUNTU 904 安装为例做具体说明。
DPKG 命令常用参数
DPKG 的常规使用方法为 dpkg -? Package(.rpm), 其中 -? 为安装参数 ( 更多信息,请查阅帮助 $man rpm):
-l 在系统中查询软件内容信息 --info 在系统中查询软件或查询指定 rpm 包的内容信息 -i 在系统中安装 / 升级软件 -r 在系统中卸载软件 , 不删除配置文件 -P 在系统中卸载软件以及其配置文件
DPKG 命令参数使用方法
安装 DEB 包命令
$ sudo dpkg -i package.deb
升级 DEB 包命令
$ sudo dpkg -i package.deb ( 和安装命令相同)
卸载 DEB 包命令
$ sudo dpkg -r package.deb # 不卸载配置文件或 $ sudo dpkg -P package.deb # 卸载配置文件
查询 DEB 包中包含的文件列表命令
$ sudo dpkg-deb -c package.deb
查询 DEB 包中包含的内容信息命令
$ dpkg --info package.deb
查询系统中所有已安装 DEB 包
$ dpkg -l package
DEB 包管理示例
以下步骤描述了一个普通用户安装 IBM Lotus Notes V85 ( 以下简称 Notes) 的典型操作过程。 Notes 的 DEB 包名为 ibm_lotus_notes-8.5.i586.deb.
首先查询是否该软件是否已经在系统中存在
$ dpkg -l ibm-lotus-*
如果系统中从未安装过 Lotus 产品,那么返回信息为 :
No pakcages found matching ibm-lotus-*
如果系统安装过 Lotus 产品,但已被删除,那么返回信息为 :
pn ibm-lotus-notes none (no description available)
查询 Notes 软件包内容:
$ dpkg --info ibm_lotus_notes-8.5-i586.deb
返回信息 :
new debian package, version 2.0. size
bytes: control archive= 231821 bytes. ... Package: ibm-lotus-notes Version: 8.5-5 Section: IBM Priority: extra Architecture: i386 Installed-Size: 619444 Maintainer: IBM Lotus Product Description: IBM Lotus Notes IBM Lotus Notes software provides a robust ... ...
安装 Notes:
$ sudo dpkg -i ibm_lotus_notes-8.5.i586.deb
返回信息 :
(Reading database ... 151150 files and directories currently installed.) Preparing to replace ibm-lotus-notes 8.5-5 (using ibm-lotus-notes-higher-version.i586.deb) ... Unpacking replacement ibm-lotus-notes ... Setting up ibm-lotus-notes (higher-version) ...
升级 Notes:
$ sudo dpkg -i ibm_lotus_notes-8.5.i586.deb
返回信息 :
(Reading database ... 151150 files and directories currently installed.) Preparing to replace ibm-lotus-notes 8.5-5 (using ibm-lotus-notes-higher-version.i586.deb) ... Unpacking replacement ibm-lotus-notes ... Setting up ibm-lotus-notes (higher-version) ...
卸载 Notes
注意卸载软件使用软件名称,而不是包文件名:
$ sudo dpkg -P ibm-lotus-notes
软件包依赖性关系
由于开源的多态性,Linux 操作系统中的软件之间的依赖性关系处理一直令用户感到头疼。如果 package_a 依赖于 package_b,那么在一个没有安装 package_b 的系统中,package_a 是不被系统推荐安装的,强制安装很可能会导致软件无法正常工作。基于以上 package_a 和 package_b 的关系,在一个干净的系统中 ( 未安装 package_a 或 package_b),欲安装 package_a,错误通常会表现为:
RHEL 5.2
# rpm -ivh package_a.rpm error: Failed dependencies: pacakge_b = version info is needed by package_a
Ubuntu 904
$ sudo dpkg -i package_a.deb dpkg: regarding package_a.deb containing package, pre-dependency problm: package_a pre-depends on package_b (version info) dpkg: error processing package_a.deb (--install): pre-dependency problem - not installing package_a Errors were encountered while processing: package_a.deb
查询软件包依赖关系
查询 RPM 包的依赖关系,使用 rpm -qRp:
# rpm -qRp package_a.rpm package_b = version_info 或 package_b &= version_info 或 package_b &= version_info
表明 package_a.rpm 依赖于 version_info 版的 package_b,或者任何高于并包括 version_info 版的 package_b,亦或低于或包括 version_info 版的 package_b 。所以 package_b.rpm 必须在 package_a 之前安装于系统中。
查询 DEB 包的依赖关系,可解读 dpkg --info 结果中的 Pre-Depends 字段:
$ dpkg --info package_a.deb Pre-depends: package_b (= version_info) Depends: package_b (= version_info) 或 Pre-depends: package_b (&= version_info) Depends: package_b (&= version_info) 或 Pre-depends: package_b (&= version_info) Depends: package_b (&= version_info)
表明 package_a.deb 依赖于 version_info 版的 package_b 或者任何高于并包括 version_info 版的 package_b 亦或低于或包括 version_info 版的 package_b. 所以 package_b.deb 必须在 package_a 之前安装于系统中。
所以正确的安装方法如下节所示。
对于 package_a,正确的安装方法应该是:
##RPM # rpm -ivh package_b.rpm # rpm -ivh package_a.rpm ##DEB $ sudo dpkg -i package_b.deb $ sudo dpkg -i package_a.deb
嵌套的依赖关系
如上示例为最理想的依赖关系,实际应用中往往最令用户头疼的是 package_a 依赖于 package_b/c/d/e/f 等多个包 , 而 package_b/c/d/e/f 等包又依赖于 package_b1,b2,b3/c1,c2/d1,d2/e1,e2/f1,f2 等等 ... ... 为保证软件的正常使用,必须找到所有依赖包以及子依赖包并且安装。过多的依赖关系大大降低了 Linux 软件安装的用户友好性。所以针对此类问题,使用了更高级的包管理策略去解决 - Yum/APT 。
更友好的包管理软件 - YUM
YUM 基于 RPM 包管理工具,能够从指定的源空间(服务器,本地目录等)自动下载目标 RPM 包并且安装,可以自动处理依赖性关系并进行下载、安装,无须繁琐地手动下载、安装每一个需要的依赖包。此外,YUM 的另一个功能是进行系统中所有软件的升级。如上所述,YUM 的 RPM 包来源于源空间,在 RHEL 中由 /etc/yum.repos.d/ 目录中的 .repo 文件配置指定,如 rhel-debuginfo.repo 的内容:
rhel-debuginfo.repo
[rhel-debuginfo] name=Red Hat Enterprise Linux 5Client - i386 - Debug baseurl=/pub/redhat/linux/enterprise/5Client/en/os/i386/Debuginfo/ enabled=0 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
YUM 的系统配置文件位于 /etc/yum.conf,内容如:
[main] cachedir=/var/cache/yum keepcache=1 debuglevel=2 pkgpolicy=newest logfile=/var/log/yum.log distroverpkg=redhat-release tolerant=1 exactarch=1 obsoletes=1 gpgcheck=1 plugins=1 exclude= firefox gftp
配置文件用来定义用户期望的 yum 行为,比如,gpgcheck? 表明安装时不进行 gpg 验证,exclued=firefox gftp 表明进行系统全软件升级时不升级 firefox 和 gftp 。
YUM 常用命令
安装指定软件 :
# yum -y install package-name
列出系统中已安装软件
# yum list
列出系统中可升级的所有软件
# yum check-update
升级系统中可升级的所有软件
# yum update
升级指定软件
# yum update package-name
在升级过程中接受所有互动问答
# yum -y update
卸载指定软件
# yum remove package-name
更多有关 YUM 的信息,请查阅 http://fedoraproject.org/wiki/Tools/yum 。
更友好的包管理软件 - APT
APT 的全称为 Advanced Packaging Tools 。与 YUM 对应,它最早被设计成 DPKG 的前端软件,现在通过 apt-rpm 也支持 rpm 管理。而本节本节将介绍 APT 作为 DPKG 前端的使用。 APT 的主要包管理工具为 APT-GET,通过此工具可满足和上述 YUM 相似的功能要求。
APT 的软件源定义来自 /etc/apt/sources.list 文件:
# See /community/UpgradeNotes for how to upgrade to # newer versions of the distribution. deb http://cn./ubuntu/ hardy main restricted deb-src http://cn./ubuntu/ hardy main restricted
注意每次手动修改上述文件后,需要使用 sudo apt-get update 来更新系统的源使新的源数据被当前系统识别。
UBUNTU 中 APT 的配置文件位于 /etc/apt/apt.conf.d,其中的多个配置文件依功能分类。
APT 常用命令
更新源索引
$ sudo apt-get update
安装指定软件
$ sudo apt-get install package-name
下载指定软件的源文件
$ sudo apt-get source package-name
将系统中所有软件升级到最新版本
$ sudo apt-get upgrade
将操作系统连同所有软件升级到最新版本
$ sudo apt-get dist-upgrade
卸载指定软件
$ sudo apt-get remove package-name
更多有关 APT 的信息,请查阅 http://www.debian.org/doc/manuals/apt-howto/index.en.html 。
RPM 与 DEB 的兼容 - Alien
Alien 工具可以将 RPM 软件包转换成 DEB 软件包,或把 DEB 软件包转换成 RPM 软件包,以此适应兼容性的需要。注意首先请在系统中安装 alien 。
在 UBUNTU 中使用 alien 将 rpm 转换为 deb 并安装 :
$ sudo alien -d package.rpm $ sudo dpkg -i package.deb
在 RHEL 中使用 alien 将 deb 转换为 rpm 并安装 :
# alien -r package.deb # rpm -ivh package.rpm
更多 alien 相关信息请查阅 http://linux.die.net/man/1/alien
本文以 RHEL 5.2 和 Ubuntu 904 为例,基于命令行操作,介绍了 Linux 系统中两大常用软件包管理工具- RPM 与 DPKG 。首先从最底端的 rpm/dpkg 命令操作开始列举了它们的基本使用方法,随后指出了软件的依赖关系以及由此带来的问题,并对此问题的解决方案,也是最流行的 YUM 与 APT 前端软件管理系统进行了操作介绍。最后本文简要说明了当前 RPM/DEB 的兼容性问题的常规解决方法。
常见问题列表
可以手动强制不进行 RPM/DEB 的依赖性关系检查吗?
可以。使用 --nodeps 辅助参数,则安装过程将不理会依赖性关系限制,强制安装目标包,如:
# rpm -i --nodeps package_a.rpmDEB
可以。使用— force-depends 辅助参数,如:
$ sudo dpkg -i --force-depends package_a.deb
RPM 中的 --force 是干什么用的?
RPM 中的默认安装规则是不允许同一个包多次安装的,也不允许降级安装。使用 --force 辅助参数将不考虑以上因素,强制安装 RPM 包。但是,--force 无法强制安装一个不满足系统依赖性关系的包 ( 此时需要用到 --nodeps 参数 ) 。使用方法如:
# rpm -i --force package_a.rpm
RPM/DPKG 支持远程安装吗?
是。 RPM 支持 HTTP 和 FTP 协议,如:
# rpm -Uvh ftp://user:pass@ftpserver/package.rpmDPKG
最新的基于 DEB 包的系统中,远程安装通常被更先进的 APT 代替。
可以从 RPM/DPKG 中抽取个别文件吗?
是。可以使用 rpm2cpio 工具来提取文件:http://www.rpm.org/max-rpm/s1-rpm-miscellania-rpm2cpio.html
是。可以使用 dpkg-deb 工具来提取文件:
$ dpkg-deb --extract ibm_lotus_notes-8.5.i586.deb $dir( 目标目录 )
RPM/DPKG 提供包安装成功的验证机制吗?
是。可以使用 -V 参数进行验证。
Debian 系统通常使用 debsums 工具参数进行验证。
RPM/DPKG 提供包安全签名吗?
是。可以使用 --import 导入与软件同时发布的 GPG KEY, 接着使用 -K 命令来验证包的安全性,如:
# rpm --import pub_ibm_lotus_notes.gpg # rpm -K ibm_lotus_notes-8.5.i586.rpm 返回信息 : ibm_lotus_notes-8.5.i586.rpm: (sha1) dsa sha1 md5 gpg OKDPKG
DPKG 不提供原生的 Key 验证机制。可以使用 debsigs 和 debsigs-verify,详情请见:/os/debiansecuring-howto/ch7.zh-cn.html
如果 RPM 的底层数据库损坏,RPM 还能使用吗?
如果底层数据库损坏,RPM 将无法正常使用。此时最常用的解决方法是重构数据库:
# rm -f /var/lib/rpm/__* ; rpm -vv --rebuilddbRPM
DPKG 本身不提供底层数据库恢复机制。它的数据库以文件形式保存在 /var/lib/dpkg 目录中。及时地备份这个目录是最好的预防数据库损坏措施。
可以查询系统中已经安装的某个文件属于哪个 RPM 包吗?
可以。使用 -qf 参数 , 如在安装了 Notes8.5 的系统中:
# rpm -qf /opt/ibm/lotus/notes/notes 返回信息 : Ibm_lotus_notes-8.5-0DPKG
可以。使用— search 参数 , 如在安装了 Notes8.5 的系统中:
$ dpkg --search /opt/ibm/lotus/notes/notes 返回信息 : ibm-lotus-notes: /opt/ibm/lotus/notes/notes
可以查询 RPM 包的安装时间吗?
可以。可使用 --last 查询。如:
rpm -qa --last 返回信息 : 系统中所有软件的安装时间。DPKG
DPKG 不提供直接的查询参数,但是可以用过查询 dpkg 的日志文件实现这个功能。如:
cat /var/log/dpkg.log | grep "\ install\ "
在 Linux System Administration and Configuration(, 日期不祥)中学习详尽的 Linux 常用的配置管理工具。
快速查阅最常用 rpm/dpkg 命令,请参考 Linux Software Management(摘自 Kurt Seifried 的 Linux Administrator's Security Guide 第 14 章, 2002 年 10 月)。
了解更全面的 APT 信息,请参考 APT HOWTO (Debian 系统手册, 2005 年 8 月)。
了解更全面的 YUM 信息,请参考 Fedora Tools/yum(federaproject.org 的 Wiki, 2009 年 7 月)。
参考 RPMAlienHowto(Ubuntu 官方文档, 2009 年 4 月)进行 Alien 在 Ubuntu 上的安装和常规使用。
在 developerWorks Linux 专区 寻找为 Linux 开发人员(包括 Linux 新手入门)准备的更多参考资料,查阅我们 最受欢迎的文章和教程。
在 developerWorks 上查阅所有 Linux 技巧 和 Linux 教程。
此文为引用文,尊重作者,并附原文地址:/%D2%BB%C9%FA%D2%BB%D3%F6/blog/item/1a48bb2e07b2e13bd52af1dc.html
MyEyeOfJava
浏览: 629941 次
来自: 北京
浏览量:52815
“(2)CERT.SF:这是对摘要的签名文件。对前一步生成的M ...
分享一款代码生成器,拖拽式组件结合流式处理,很容易的访问数据库 ...
android可以选择uc浏览器,也可以下载安装证书,原生浏览 ...
你好:Android系统4.4本版以后不能是batteryin ...
为什么不能横屏录制?也即是说如果我的应用是一个横屏的应用,那么 ...

我要回帖

更多关于 subprocess dpkg deb 的文章

 

随机推荐