大家好,又见面了,我是你们的朋友全栈君。
dpkg是Debian的中级软件包管理器,类似RPM.
dpkg是Debian软件包管理系统的中流砥柱,负责安全卸载软件包,配置,以及维护已安装的软件包.也是Debian系统中众多软件包管理工具的后端.有关dpkg的更多介绍参阅:http://www.dpkg.org
系统中所有packages的信息都在/var/lib/dpkg/目录下,其中子目录”/var/lib/dpkg/info”用于保存各个软件包的配置文件列表.
.conffiles 记录了软件包的配置文件列表
.list 保存软件包中的文件列表,用户可以从.list的信息中找到软件包中文件的具体安装位置.
.md5sums 记录了软件包的md5信息,这个信息是用来进行包验证的.
.prerm 脚本在Debian报解包之前运行,主要作用是停止作用于即将升级的软件包的服务,直到软件包安装或升级完成.
.postinst脚本是完成Debian包解开之后的配置工作,通常用于执行所安装软件包相关命令和服务重新启动.
/var/lib/dpkg/available文件的内容是软件包的描述信息,该软件包括当前系统所使用的Debian安装源中的所有软件包,其中包括当前系统中已安装的和未安装的软件包.
==============================================================================================
dpkg
查询以安装的信息
查询当前系统所有已安装的deb包
dpkg –l 命令用于查询当前系统所有以安装的deb包的信息.,通过less和grep可以执行更复杂的查询工作.
例如查找跟vim有关的软件包,dpkg –l |grep –ivim
(如发现iU 表示软件包未安装成功,ii表示安装成功)
查看已安装软件包的详细情况
dpkg –s 命令查看软件包的详细情况,包括版本,依赖之类的
查询系统中所安装软件包所安装的文件
dpkg –L 命令用于查询系统中所安装软件包的安装的文件安装到系统的位置和安装了那些.
小提示: 如何可以看软件包装到哪个地方?
用apt-get install *
如何可以看软件包装到哪个地方?
dpkg -L package-name|more
查询系统中某个文件属于那个软件包
dpkg –S 命令用于了解当前的软件属于那个软件包
查询未安装的信息
查询未安装软件包详细信息
dpkg –I 命令用于查看未安装软件包的详细信息,以便了解该软件包是否需要安装.
查询deb包文件中所包含的文件
dpkg –c 显示未安装deb软件包所包含的文件列表,以及安装位置
安装软件包
安装deb软件包
dpkg –i 手工安装deb包到系统中,不过有时会存在Dpends关系,建议使用apt-get 来安装.
如果通过dpkg –i安装软件后由于Dpends关系没有安装成功,可通 过apt-get –f install解决
解决dpkg –i 安装deb包出现Dpends问题
apt-get –f install 解决Dpends问题.
例如:dpkg –i lftp_3.1.3-1_i386.deb
Selecting previously deselected package lftp.
(Reading database … 20654 files and directories currently installed.)
unpacking lftp (from lftp_3.1.3-1_i386.deb)…
dpkg:dependency problems prevent configuration of lftp:
ftp depends on libexpat1 (<=1.95.8);however
dpkg : error processing lftp (–install)
dependency problems –leaving unconfigured
Errors were encountered while processing:
lftp
//lftp软件包安装失败
dpkg –l |grep lftp
iU lftp 3.1.3-1 Sophisticated
command-line FTP/HTTP client p
//”dpkg -l” 查询信息表示lftp软件包未安装成功
(iU表示未安装成功,ii表示安装成功)
使用apt-get –f install解决
卸载deb软件包
卸载deb包
dpkg –r用于卸载指定的软件包,该命令只卸载软件包安装到系统中的文件,而不去删除软件包的配置文件,因此不是完全意义上的卸载.但是软件包保存在系统中,可以提供给以后在安装软件包时使用.
例如:dpkg –r prozilla 移除后再用dpkg –l |grep prozilla 查看
会看到rc proc 1.3.6-3woody3 multi-thraded download accelerator
表示软件包已经被卸载,但配置文件仍在“rc”带表配置文件仍在.
卸载软件包并清除配置文件
dpkg –P 用于卸载软件包同时也删除配置文件,dpkg –P 不能解决Dpends问题,建议卸载时使用apt-get操作
重新配置软件包
对于Debian系统中的众多软件包(尤其是系统和服务器软件包)来说,在第一次安装该软件包时候会显示对话框窗口,提示用户输入必要的配置信息.当用户需要再次对软件包配置的时候,可以使用dpkg-reconfigure来对指定的软件包进行配置.
比如dpkg-reconfigure locales
用于配置语言
alien包转换工具
如果我们有很喜欢的RPM包,而又没有deb版本
怎么办~?
可以同过alien来转换或者直接安装,这个小家伙可是个很方便的东西!
基本命令如下:
首先通过apt-get install alien来安装.
然后alien -i name-of-the-pakage.rpm /*用来直接安装rpm包
alien -d , –to-deb /*Make debian packages,This is the default
例:alien –d package.rpm
alien –r , –to-rpm /*Make rpm packages
例:alien –r package.deb
alien –p , –to-pkg /*Make Solaris pkg packages
alien –-to-slp /*Make slp packages
alien –t , –to-tgz /*Make tgz packages
alien –T 检测
alien –-patch=patch 设置patch ===========================================================================================
在终端界面输入 : dpkg –help
则有关dpkg的用法 全部都可以列出来 具体的用法如下:
PC:~/Desktop$ dpkg –help 用法:dpkg [<选项> …] <命令>
命令: -i|–install <.deb 文件名> … | -R|–recursive <目录> … –unpack <.deb 文件名> … | -R|–recursive <目录> … -A|–record-avail <.deb 文件名> … | -R|–recursive <目录> … –configure <软件包名> … | -a|–pending –triggers-only <软件包名> … | -a|–pending -r|–remove <软件包名> … | -a|–pending -P|–purge <软件包名> … | -a|–pending -V|–verify <软件包名> … 检查包的完整性。 –get-selections [<表达式> …] 把已选中的软件包列表打印到标准输出。 –set-selections 从标准输入里读出要选择的软件。 –clear-selections 取消选中所有不必要的软件包。 –update-avail <软件包文件> 替换现有可安装的软件包信息。 –merge-avail <软件包文件> 把文件中的信息合并到系统中。 –clear-avail 清除现有的软件包信息。 –forget-old-unavail 忘却已被卸载的不可安装的软件包。 -s|–status <软件包名> … 显示指定软件包的详细状态。 -p|–print-avail <软件包名> … 显示可供安装的软件版本。 -L|–listfiles <软件包名> … 列出属于指定软件包的文件。 -l|–list [<表达式> …] 简明地列出软件包的状态。 -S|–search <表达式> … 搜索含有指定文件的软件包。 -C|–audit [<表达式> …] 检查是否有软件包残损。 –yet-to-unpack 列出标记为待解压的软件包。 –predep-package 列出待解压的预依赖。 –add-architecture <体系结构> 添加 <体系结构> 到体系结构列表。 –remove-architecture <体系结构> 从架构列表中移除 <体系结构>。 –print-architecture 显示 dpkg 体系结构。 –print-foreign-architectures 显示已启用的异质体系结构。 –assert-<特性> 对指定特性启用断言支持。 –validate-<属性> <字符串> 验证一个 <属性>的 <字符串>。 –compare-vesions <a> <关系> <b> 比较版本号 – 见下。 –force-help 显示本强制选项的帮助信息。 -Dh|–debug=help 显示有关出错调试的帮助信息。
-?, –help 显示本帮助信息。 –version 显示版本信息。
Assert 特性: support-predepends, working-epoch, long-filenames, multi-conrep, multi-arch, versioned-provides.
可验证的属性:pkgname, archname, trigname, version.
调用 dpkg 并带参数 -b, –build, -c, –contents, -e, –control, -I, –info, -f, –field, -x, –extract, -X, –vextract, –ctrl-tarfile, –fsys-tarfile 是针对归档文件的。 (输入 dpkg-deb –help 获取帮助)
选项: –admindir=<目录> 使用 <目录> 而非 /var/lib/dpkg。 –root=<目录> 安装到另一个根目录下。 –instdir=<目录> 改变安装目录的同时保持管理目录不变。 –path-exclude=<表达式> 不要安装符合Shell表达式的路径。 –path-include=<表达式> 在排除模式后再包含一个模式。 -O|–selected-only 忽略没有被选中安装或升级的软件包。 -E|–skip-same-version 忽略版本与已安装软件版本相同的软件包。 -G|–refuse-downgrade 忽略版本早于已安装软件版本的的软件包。 -B|–auto-deconfigure 就算会影响其他软件包,也要安装。 –[no-]triggers 跳过或强制随之发生的触发器处理。 –verify-format=<格式> 检查输出格式(‘rpm’被支持)。 –no-debsig 不去尝试验证软件包的签名。 –no-act|–dry-run|–simulate 仅报告要执行的操作 – 但是不执行。 -D|–debug=<八进制数> 开启调试(参见 -Dhelp 或者 –debug=help)。 –status-fd <n> 发送状态更新到文件描述符<n>。 –status-logger=<命令> 发送状态更新到 <命令> 的标准输入。 –log=<文件名> 将状态更新和操作信息到 <文件名>。 –ignore-depends=<软件包>,… 忽略关于 <软件包> 的所有依赖关系。 –force-… 忽视遇到的问题(参见 –force-help)。 –no-force-…|–refuse-… 当遇到问题时中止运行。 –abort-after <n> 累计遇到 <n> 个错误后中止。
可供–compare-version 使用的比较运算符有: lt le eq ne ge gt (如果版本号为空,那么就认为它先于任意版本号); lt-nl le-nl ge-nl gt-nl (如果版本号为空,那么就认为它后于任意版本号); < << <= = >= >> > (仅仅是为了与主控文件的语法兼容)。
‘apt’ 和 ‘aptitude’ 提供了更为便利的软件包管理。
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/143494.html原文链接:https://javaforall.cn