转载:http://blog.csdn.net/sunjiajiang/article/details/7252593

dpkg是一个Debian的一个命令行工具,它可以用来安装、删除、构建和管理Debian的软件包。
下面是它的一些命令解释:
1)安装软件
命令行:dpkg -i <.deb file name>
示例:dpkg -i avg71flm_r28-1_i386.deb
2)安装一个目录下面所有的软件包
命令行:dpkg -R
示例:dpkg -R /usr/local/src
3)释放软件包,但是不进行配置
命令行:dpkg –unpack package_file 如果和-R一起使用,参数可以是一个目录
示例:dpkg –unpack avg71flm_r28-1_i386.deb
4)重新配置和释放软件包
命令行:dpkg –configure package_file
如果和-a一起使用,将配置所有没有配置的软件包
示例:dpkg –configure avg71flm_r28-1_i386.deb
5)删除软件包(保留其配置信息)
命令行:dpkg -r
示例:dpkg -r avg71flm
6)替代软件包的信息
命令行:dpkg –update-avail <Packages-file>
7)合并软件包信息
dpkg –merge-avail <Packages-file>
8)从软件包里面读取软件的信息
命令行:dpkg -A package_file
9)删除一个包(包括配置信息)
命令行:dpkg -P
10)丢失所有的Uninstall的软件包信息
命令行:dpkg –forget-old-unavail
11)删除软件包的Avaliable信息
命令行:dpkg –clear-avail
12)查找只有部分安装的软件包信息
命令行:dpkg -C
13)比较同一个包的不同版本之间的差别
命令行:dpkg –compare-versions ver1 op ver2
14)显示帮助信息
命令行:dpkg –help
15)显示dpkg的Licence
命令行:dpkg –licence (or) dpkg –license
16)显示dpkg的版本号
命令行:dpkg –version
17)建立一个deb文件
命令行:dpkg -b direc×y [filename]
18)显示一个Deb文件的目录
命令行:dpkg -c filename
19)显示一个Deb的说明
命令行:dpkg -I filename [control-file]
20)搜索Deb包
命令行:dpkg -l package-name-pattern
示例:dpkg -I vim
21)显示所有已经安装的Deb包,同时显示版本号以及简短说明
命令行:dpkg -l
22)报告指定包的状态信息
命令行:dpkg -s package-name
示例:dpkg -s ssh
23)显示一个包安装到系统里面的文件目录信息
命令行:dpkg -L package-Name
示例:dpkg -L apache2
24)搜索指定包里面的文件(模糊查询)
命令行:dpkg -S filename-search-pattern

上面这个命令比较有用,比如当我们需要知道下载ps的源代码,但是又不知道包含ps的源码包的名称,那么我们可以采用如下命令:

which  ps    //目的是查找本机的ps命令在哪个目录,以便下一步进行筛选

dpkg  -S ps | grep "/bin/ps"  //如果不进行筛选,打印的信息太多,不易查找

pengdl@debian:~/trunk/hisiv100nptl$ which ps
/bin/ps
pengdl@debian:~/trunk/hisiv100nptl$ dpkg -S ps | grep "/bin/ps"
perl: /usr/bin/psed
kbd: /usr/bin/psfstriptable
ghostscript: /usr/bin/ps2pdfwr
netpbm: /usr/bin/pstopnm
ghostscript: /usr/bin/ps2txt
ghostscript: /usr/bin/ps2pdf12
ghostscript: /usr/bin/ps2pdf13
ghostscript: /usr/bin/ps2pdf14
ghostscript: /usr/bin/ps2ascii
psmisc: /usr/bin/pstree.x11
perl: /usr/bin/pstruct
ghostscript: /usr/bin/ps2ps
ghostscript: /usr/bin/ps2pdf
kbd: /usr/bin/psfxtable
procps: /bin/ps
kbd: /usr/bin/psfaddtable
kbd: /usr/bin/psfgettable
ghostscript: /usr/bin/ps2ps2
netpbm: /usr/bin/psidtopgm
psmisc: /usr/bin/pstree
ghostscript: /usr/bin/ps2epsi
pengdl@debian:~/trunk/hisiv100nptl$

从上图中procps:/bin/ps可以看到ps所在的软件包的名字是 procps。

25)显示包的具体信息

命令行:dpkg -p package-name
示例:dpkg -p cacti

最后
1、很多人抱怨用了Ubuntu或者Debian以后,不知道自己的软件给安装到什么地方了。其实可以用上面的dpkg -L命令来方便的查找。看来基础还是非常重要的,图形界面并不能够包办一切。
2、有的时候,用“新力得”下载完成以后,没有配置,系统会提示用“dpkg –configure -all”来配置,具体为什么也可以从上面看到。
3、现在Edgy里面可以看到Deb的信息。不过是在没有安装的时候(当然也可以重新打开那个包),可以看到Deb的文件路径。
4、如果想暂时删除程序以后再安装,第5项还是比较实用的,毕竟在Linux下面配置一个软件也并非容易。

dpkg安装软件 与Linux软件包依赖介绍

linux软件包依赖关系:是一个软件的安装,需要安装另外一个软件进行支持的一种现象。在windows也存在,但因为很多基础 dll都被windows集成了,所以并不明显。但在linux体系中,因为多个开源软件开发者并不成为一个体系,因而依赖关系向来比较复杂,解决依赖关系也是让很多人比较头疼的问题。

linux中,采用apt或者yum等常常能自动解决依赖关系,但往往我们也需要一些软件源里不存在的软件进行安装。LD源自ubuntu,而 ubuntu又基于debian,故LD中,这些无法用apt来安装的软件我们一般用dpkg来安装,dpkg可以提示是否符合依赖关系,但不会自动解决。“dpkg ”是“Debian Package ”的简写。为 “Debian” 专门开发的套件管理系统,方便软件的安装、更新及移除。

安装这类软件,首先我们先看是否存在适用于ubuntu 32位的deb包(比如virtualbox,我们不想装ose版,就可以去http://www.virtualbox.org/下载ubuntu的32位版,注意扩展名,文件名应为*.deb)。

下载后,用dpkg进行安装:

dpkg -i package.deb ###安装包

dpkg -r package ###删除包

dpkg -P package ###删除包(包括配置文件)

dpkg -L package ###列出与该包关联的文件

dpkg -l package ###显示该包的版本

dpkg --unpack package.deb ###解开 deb 包的内容

dpkg -S keyword ###搜索所属的包内容

dpkg -l ###列出当前已安装的包

dpkg -c package.deb ###列出 deb 包的内容

dpkg --configure package ###配置包

dpkg-reconfigure package   ###重新配制一个已经安装的包裹

dpkg-reconfigure --frontend=dialog debconf ###如果安装时选错了配置信息,这里可以改回来.

dpkg --force-all --purge ###有些软件很难卸载,而且还阻止了别的软件的应用,就可以用这个,不过有点冒险.

更多选项可通过 dpkg -h 查询,有些指令需要超级用户权限才能执行,故执行时,一般需 在dpkg 前加sudo (例:sudo dpkg -i package.deb)。

dpkg配置及缓存信息:系统中所有的包信息都在/var/lib/dpkg下.其中/var/lib/dpkg/info目录中保存了各个软件包的信息及管理文件. 提供这些信息仅供了解,一般不需要更改。

每个文件的作用如下:

".conffiles" 文件记录软件包的配置列表.

".list" 文件记录了软件包的文件列表,用户可在文件当中找到软件包文件的具体安装位置.

".md5sums" 文件记录了md5信息,用来进行包的验证的.

".config" 文件是软件包的安装配置脚本.

".postinst" 脚本是完成Debian包解开之后的配置工作,通常用来执行所安装软件包相关的命令和服务的重新启动.

".preinst" 脚本在Debain解包之前运行,主要作用是是停止作用于即将升级的软件包服务直到软件包安装或和升级完成.

".prerm" 脚本负责停止与软件包关联的daemon服务,在删除软件包关联文件之前执行.

".postrm" 脚本负责修改软件包链接或文件关联,或删除由它创建的文件.

/var/lib/dpkg/available是软件包的描述信息.

包括当前系统中所有使用的Debian安装源中所有的软件包,还包括当前系统中已经安装和未安装的软件包.

 

dpkg的用法的更多相关文章

  1. linux中管理包的apt和dpkg命令用法

    1,apt-get命令 apt-get是debian,ubuntu发行版的包管理工具,与红帽中的yum工具非常类似,适用于deb包管理式的操作系统,主要用于自动从互联网的软件仓库中搜索.安装.升级.卸 ...

  2. dpkg的用法 (转)

    dpkg是一个Debian的一个命令行工具,它可以用来安装.删除.构建和管理Debian的软件包. 下面是它的一些命令解释: 1)安装软件 命令行:dpkg -i <.deb file name ...

  3. ubuntu包管理命令apt和dpkg的用法

    apt-get命令: apt-get是debian,ubuntu发行版的包管理工具,与红帽中的yum工具非常类似,适用于deb包管理式的操作系统,主要用于自动从互联网的软件仓库中搜索.安装.升级.卸载 ...

  4. Linux下dpkg的用法

    转自:http://blog.csdn.net/fireblue1990/article/details/52627952 dpkg是一个Debian的一个命令行工具,它可以用来安装.删除.构建和管理 ...

  5. 转载:ubuntu 下的dpkg 的用法

    dpkg是一个Debian的一个命令行工具,它可以用来安装.删除.构建和管理Debian的软件包. 下面是它的一些命令解释: 1)安装软件 命令行:dpkg -i <.deb file name ...

  6. Debian系Linux的dpkg命令

    dpkg "是"Debian Packager "的简写.为 "Debian" 专门开发的套件管理系统,方便软件的安装.更新及移除.所有源自" ...

  7. 如何在Ubuntu下安装”.deb“、”.bin“、”.tar.gz“、”.tar.bz2“格式的软件包!

    今天在Ubuntu11.10中安装Google chrome浏览器是遇到了问题,下载好的“.deb”格式的安装文件google-chrome-stable.deb双击后或者右键快捷菜单选择 Synap ...

  8. Debian系统简要说明

    Debian这个是我最喜欢也是比较熟悉的一个系统了,BD下做个简要说明 一,APT以及dpkg常见用法如下:功能具体语句 软件源设置     /etc/apt/sources.list 更新软件源数据 ...

  9. [转]Ubuntu 16.04安装有道词典

    原文:https://www.cnblogs.com/scplee/archive/2016/05/13/5489024.html 以前用Ubuntu 14.04 的时候,直接下载有道词典官方deb安 ...

随机推荐

  1. 第二百三十一天 how can I 坚持

    哎,蛋疼的一天,一点破问题搞了一下午,还没搞利索. 他们要组织出去玩,我没有参加啊,随便找了个借口. 博客园的字体怎么变小了呢,看着好难受啊,昨天传照片传的? 睡觉.外边下着雨呢,喜欢下雨的夏天还有下 ...

  2. 未找到与约束contractname Microsoft.VisualStudio.Utilities.IContentTypeRegistryService

    在項目中遇到的問題,網上找到的答案,做個記錄, 项目能打开,但是当要在项目中查看文件时弹出 未找到与约束 Microsoft.VisualStudio.Utilities.IContentTypeRe ...

  3. MYSQL数据库重点:流程控制语句

    1.BEGIN ... END复合语句:包含多个语句.statement_list 代表一个或多个语句的列表.statement_list之内每个语句都必须用分号(:)来结尾. [begin_labe ...

  4. python's descriptor II

    [python's descriptor II] For instance, a.x has a lookup chain starting with a.__dict__['x'], then ty ...

  5. 实时监控MySql状态

    大多网站的性能瓶颈都会出在数据库上,所以想把Mysql监控起来,就搜索了下相关资料. 后来和同事讨论了下cacti和nagios有些老套和过时,graphite比较时尚,然后就搜了下相关的资料,最后搞 ...

  6. hdoj 5317 RGCDQ

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5317 #include<stdio.h> ; int F[MAXN]; bool flag ...

  7. windows 下使用免安裝版MySql5.5

    windows 下使用面安裝版MySql5.5步驟如下 1.解壓下載的壓縮文件到指定文件夾.如:F:\DB\mysql-5.5.18-win32\mysql-5.5.18-win32: 2.在根目錄F ...

  8. JAVA 开发实例 一 移动的小球

    package com.java.move; import java.awt.Color; import java.awt.Dimension; import java.awt.Graphics; i ...

  9. 无责任Windows Azure SDK .NET开发入门篇三[使用Azure AD 管理用户信息--3.5 Delete删除用户]

    3.5 Delete删除用户 删除也是通过ObjectID获得对象进行删除 [Authorize] public async Task<ActionResult> Delete(strin ...

  10. 导入导出Excel

    最近需要频繁的使用导入导出,各么,又不想使用ms的PIA,在4.0以下,存在版本兼容的问题. 于是网上查找了很久,找到两款开源的excel组件. 1.CSharpJExcel,这是JExcel的.ne ...