Linux Ubuntu dpkg 命令详解 您所在的位置:网站首页 go语言使用正则表达式验证姓名和密码 Linux Ubuntu dpkg 命令详解

Linux Ubuntu dpkg 命令详解

2023-12-14 12:54| 来源: 网络整理| 查看: 265

Ubuntu 系统 dpkg 命令使用详解

  dpkg 即 package manager for Debian ,是 Debian 和基于 Debian 的系统中一个主要的包管理工具,可以用来安装、构建、卸载、管理 deb 格式的软件包。dpkg的主要和更友好的前端是aptitude。DPKG本身完全由命令行参数控制,命令行参数只包含一个动作和零个或多个选项。动作参数告诉dpkg要做什么,选项以某种方式控制动作的行为。      `dpkg` 主要是用来安装已经下载到本地的 `deb` 软件包,或者对已经安装好的软件进行管理。

  apt和`apt-get`是类似红帽系的yum工具,能够自行解决deb包的依赖关系。直接从远程的软件仓库下载安装软件。apt命令可可参考Linux apt 命令

dpkg 命令命令详解

   dpkg -i 手动安装软件包(这个命令并不能解决软件包之前的依赖性问题),如果在安装某一个软件包的时候遇到了软件依赖的问题,可以用apt-get -f install在解决信赖性这个问题.        dpkg --info "软件包名" --列出软件包解包后的包名称.

   dpkg -l --列出当前系统中所有的包.可以和参数less一起使用在分屏查看. (类似于rpm -qa)

   dpkg -l 查询软件包的信息        dpkg -l |grep -i "软件包名" --查看系统中与"软件包名"相关联的包.

   dpkg -s 查询已安装的包的详细信息.

   dpkg -L 查询系统中已安装的软件包所安装的位置. (类似于rpm -ql)

   dpkg -S 查询系统中某个文件属于哪个软件包. (类似于rpm -qf)

   dpkg -I 查询deb包的详细信息,在一个软件包下载到本地之后看看用不用安装(看一下呗).

   dpkg -r 卸载软件包.不是完全的卸载,它的配置文件还存在.

   dpkg -P 全部卸载(但是还是不能解决软件包的依赖性的问题)

   dpkg -reconfigure 重新配置

示例 软件安装 $ sudo dpkg -i fping_4.2-1_amd64.deb (正在读取数据库 ... 系统当前共安装有 252654 个文件和目录。) 准备解压 fping_4.2-1_amd64.deb ... 正在解压 fping (4.2-1) 并覆盖 (4.2-1) ... 正在设置 fping (4.2-1) ... 正在处理用于 man-db (2.8.5-2) 的触发器 ... 查询vim包信息 $ dpkg -l vim Desired=Unknown/Install/Remove/Purge/Hold | Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend |/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad) ||/ Name Version Architecture Description +++-==============-===================-============-================================= ii vim 2:8.1.2269-1ubuntu5 amd64 Vi IMproved - enhanced vi editor 列出已安装的软件

可以使用 dpkg -l 命令列出当前系统中已经安装的软件以及软件包的状态。如:

$ dpkg -l 期望状态=未知(u)/安装(i)/删除(r)/清除(p)/保持(h) | 状态=未安装(n)/已安装(i)/仅存配置(c)/仅解压缩(U)/配置失败(F)/不完全安装(H)/触发器等待(W)/触发器未决(T) |/ 错误?=(无)/须重装(R) (状态,错误:大写=故障) ||/ 名称 版本 体系结构 描述 +++-=============================================-===================================-============-=============================================================================== ii 2048-qt 0.1.6-1build1 amd64 mathematics based puzzle game ii accountsservice 0.6.50-0ubuntu1 amd64 query and manipulate user account information ii acl 2.2.53-4 amd64 access control list - utilities ii acpi-support 0.143 amd64 scripts for handling many ACPI events ii acpid 1:2.0.31-1ubuntu2 amd64 Advanced Configuration and Power Interface event daemon ii adduser 3.118ubuntu1 all add and remove users and groups ii adwaita-icon-theme 3.32.0-1ubuntu1 all default icon theme of GNOME (small subset) ii alsa-base 1.0.25+dfsg-0ubuntu5 all ALSA driver configuration files ii alsa-utils 1.1.8-1ubuntu1 amd64 Utilities for configuring and using ALSA ...

该命令每行输出中的第一列 ii 表示软件包的安装和配置状态,其格式如下: 期望状态|当前状态|错误 其中期望状态有以下几种

u:即 unknown,软件包未安装且用户未请求安装 i:即 install,用户请求安装该软件包 r:即 remove,用户请求卸载该软件包 p:即 purge,用户请求卸载该软件包并清理配置文件 h:即 hold,用户请求保持续当前软件包版本

当前状态 有以下几种:

n:即 not-installed,软件包未安装 i:即 installed,软件包已安装并完成配置 c:即 config-files,软件包已经被卸载,但是其配置文件未清理 u:即 unpacked,软件包已经被解压缩,但还未配置 f:即 half-configured,配置软件包时出现错误 w:即 triggers-awaited,触发器等待 t:即 triggers-pending,触发器未决

错误状态 有以下几种:

h:软件包被强制保持 r:即 reinstall-required,需要卸载并重新安装 x:软件包被破坏

因此 ii 表示该软件需要安装且已经安装,没有出现错误; iu 表示已经安装该软件,但未正确配置; rc 表示该软件已经被删除,但配置文件未清理。

查看处于 rc 状态的软件包:

$ dpkg -l | grep ^rc rc libmhash2:amd64 0.9.9.9-7 amd64 Library for cryptographic hashing and message authentication rc linux-image-5.0.0-13-generic 5.0.0-13.14 amd64 Signed kernel image generic rc linux-modules-5.0.0-13-generic 5.0.0-13.14 amd64 Linux kernel extra modules for version 5.0.0 on 64 bit x86 SMP rc linux-modules-extra-5.0.0-13-generic 5.0.0-13.14 amd64 Linux kernel extra modules for version 5.0.0 on 64 bit x86 SMP rc zabbix-proxy-mysql 1:4.0.4+dfsg-1 amd64 network monitoring solution - proxy (using MySQL)

此外,还可以使用 dpkg -l 命令筛选出名称中包含指定模式的软件包。

$ dpkg -l "nginx*" 期望状态=未知(u)/安装(i)/删除(r)/清除(p)/保持(h) | 状态=未安装(n)/已安装(i)/仅存配置(c)/仅解压缩(U)/配置失败(F)/不完全安装(H)/触发器等待(W)/触发器未决(T) |/ 错误?=(无)/须重装(R) (状态,错误:大写=故障) ||/ 名称 版本 体系结构 描述 +++-==============-===============-============-========================================================= ii nginx 1.15.9-0ubuntu1 all small, powerful, scalable web/proxy server ii nginx-common 1.15.9-0ubuntu1 all small, powerful, scalable web/proxy server - common files ii nginx-core 1.15.9-0ubuntu1 amd64 nginx web/proxy server (standard version) un nginx-doc (无描述) un nginx-extras (无描述) un nginx-full (无描述) un nginx-light (无描述) 卸载软件

dpkg 命令的 -r 选项可以用来卸载已安装的软件包,此时只需要指定软件的名称即可。

$ sudo dpkg -r vim (正在读取数据库 ... 系统当前共安装有 252653 个文件和目录。) 正在卸载 vim (2:8.1.0320-1ubuntu3.1) ... update-alternatives: 使用 /usr/bin/vim.tiny 来在自动模式中提供 /usr/bin/vi (vi) update-alternatives: 使用 /usr/bin/vim.tiny 来在自动模式中提供 /usr/bin/view (view) update-alternatives: 使用 /usr/bin/vim.tiny 来在自动模式中提供 /usr/bin/ex (ex) update-alternatives: 使用 /usr/bin/vim.tiny 来在自动模式中提供 /usr/bin/rview (rview)

需要注意的是,-r 选项只会移除指定的软件包而不对其配置文件产生影响,可以使用 -P 选项在删除软件包的同时清理配置文件。 sudo dpkg -P

其他包管理操作 查看软件包的内容 dpkg -c $ dpkg -c fping_4.2-1_amd64.deb drwxr-xr-x root/root 0 2019-02-20 06:27 ./ drwxr-xr-x root/root 0 2019-02-20 06:27 ./usr/ drwxr-xr-x root/root 0 2019-02-20 06:27 ./usr/bin/ -rwxr-xr-x root/root 52128 2019-02-20 06:27 ./usr/bin/fping drwxr-xr-x root/root 0 2019-02-20 06:27 ./usr/share/ drwxr-xr-x root/root 0 2019-02-20 06:27 ./usr/share/bug/ -rwxr-xr-x root/root 118 2017-06-19 05:19 ./usr/share/bug/fping drwxr-xr-x root/root 0 2019-02-20 06:27 ./usr/share/doc/ drwxr-xr-x root/root 0 2019-02-20 06:27 ./usr/share/doc/fping/ -rw-r--r-- root/root 495 2017-09-06 08:00 ./usr/share/doc/fping/NEWS.Debian.gz -rw-r--r-- root/root 1615 2019-02-20 06:27 ./usr/share/doc/fping/changelog.Debian.gz -rw-r--r-- root/root 3445 2017-12-07 04:09 ./usr/share/doc/fping/copyright drwxr-xr-x root/root 0 2019-02-20 06:27 ./usr/share/lintian/ drwxr-xr-x root/root 0 2019-02-20 06:27 ./usr/share/lintian/overrides/ -rw-r--r-- root/root 41 2017-06-19 05:19 ./usr/share/lintian/overrides/fping drwxr-xr-x root/root 0 2019-02-20 06:27 ./usr/share/man/ drwxr-xr-x root/root 0 2019-02-20 06:27 ./usr/share/man/man8/ -rw-r--r-- root/root 5733 2019-02-20 06:27 ./usr/share/man/man8/fping.8.gz -rw-r--r-- root/root 1512 2019-02-20 06:27 ./usr/share/man/man8/fping6.8.gz lrwxrwxrwx root/root 0 2019-02-20 06:27 ./usr/bin/fping6 -> fping 查看软件包(已安装)的详细信息 dpkg -s ` 或 `dpkg --status $ dpkg -s fping Package: fping Status: deinstall ok installed Priority: optional Section: net Installed-Size: 87 Maintainer: Ubuntu Developers Architecture: amd64 Version: 4.2-1 Depends: libcap2-bin, netbase, libc6 (>= 2.15) Enhances: netdata (>= 1.5) Description: sends ICMP ECHO_REQUEST packets to network hosts fping is a ping like program which uses the Internet Control Message Protocol (ICMP) echo request to determine if a target host is responding. fping differs from ping in that you can specify any number of targets on the command line, or specify a file containing the lists of targets to ping. Instead of sending to one target until it times out or replies, fping will send out a ping packet and move on to the next target in a round-robin fashion. Original-Maintainer: Axel Beckert Homepage: https://www.fping.org/ 查看软件包的安装位置 dpkg -L ` 或 `dpkg --list-files $ dpkg -L fping /. /usr /usr/bin /usr/bin/fping /usr/share /usr/share/bug /usr/share/bug/fping /usr/share/doc /usr/share/doc/fping /usr/share/doc/fping/NEWS.Debian.gz /usr/share/doc/fping/changelog.Debian.gz /usr/share/doc/fping/copyright /usr/share/lintian /usr/share/lintian/overrides /usr/share/lintian/overrides/fping /usr/share/man /usr/share/man/man8 /usr/share/man/man8/fping.8.gz /usr/share/man/man8/fping6.8.gz /usr/bin/fping6 筛选出包含指定文件(模式)的软件包 dpkg -S ` 或 `dpkg --search $ dpkg -S sites-available apache2: /etc/apache2/sites-available/default-ssl.conf apache2: /etc/apache2/sites-available/000-default.conf nginx-common: /etc/nginx/sites-available nginx-common: /etc/nginx/sites-available/default apache2: /etc/apache2/sites-available dpkg 参数 [email protected]:~# dpkg --help Usage: dpkg [ ...] Commands: -i|--install ... | -R|--recursive ... --unpack ... | -R|--recursive ... -A|--record-avail ... | -R|--recursive ... --configure ... | -a|--pending --triggers-only ... | -a|--pending -r|--remove ... | -a|--pending -P|--purge ... | -a|--pending -V|--verify [...] Verify the integrity of package(s). --get-selections [...] Get list of selections to stdout. --set-selections Set package selections from stdin. --clear-selections Deselect every non-essential package. --update-avail [] Replace available packages info. --merge-avail [] Merge with info from file. --clear-avail Erase existing available info. --forget-old-unavail Forget uninstalled unavailable pkgs. -s|--status [...] Display package status details. -p|--print-avail [...] Display available version details. -L|--listfiles ... List files 'owned' by package(s). -l|--list [...] List packages concisely. -S|--search ... Find package(s) owning file(s). -C|--audit [...] Check for broken package(s). --yet-to-unpack Print packages selected for installation. --predep-package Print pre-dependencies to unpack. --add-architecture Add to the list of architectures. --remove-architecture Remove from the list of architectures. --print-architecture Print dpkg architecture. --print-foreign-architectures Print allowed foreign architectures. --assert- Assert support for the specified feature. --validate- Validate a 's . --compare-versions Compare version numbers - see below. --force-help Show help on forcing. -Dh|--debug=help Show help on debugging. -?, --help Show this help message. --version Show the version. Assertable features: support-predepends, working-epoch, long-filenames, multi-conrep, multi-arch, versioned-provides. Validatable things: pkgname, archname, trigname, version. Use dpkg with -b, --build, -c, --contents, -e, --control, -I, --info, -f, --field, -x, --extract, -X, --vextract, --ctrl-tarfile, --fsys-tarfile on archives (type dpkg-deb --help). Options: --admindir= Use instead of /var/lib/dpkg. --root= Install on a different root directory. --instdir= Change installation dir without changing admin dir. --path-exclude= Do not install paths which match a shell pattern. --path-include= Re-include a pattern after a previous exclusion. -O|--selected-only Skip packages not selected for install/upgrade. -E|--skip-same-version Skip packages whose same version is installed. -G|--refuse-downgrade Skip packages with earlier version than installed. -B|--auto-deconfigure Install even if it would break some other package. --[no-]triggers Skip or force consequential trigger processing. --verify-format= Verify output format (supported: 'rpm'). --no-debsig Do not try to verify package signatures. --no-act|--dry-run|--simulate Just say what we would do - don't do it. -D|--debug= Enable debugging (see -Dhelp or --debug=help). --status-fd Send status change updates to file descriptor . --status-logger= Send status change updates to 's stdin. --log= Log status changes and actions to . --ignore-depends=,... Ignore dependencies involving . --force-... Override problems (see --force-help). --no-force-...|--refuse-... Stop when problems encountered. --abort-after Abort after encountering errors. Comparison operators for --compare-versions are: lt le eq ne ge gt (treat empty version as earlier than any version); lt-nl le-nl ge-nl gt-nl (treat empty version as later than any version); < > > (only for compatibility with control file syntax). Use 'apt' or 'aptitude' for user-friendly package management. dpkg-query

在软件包查询方面还有一个软件dpkg-query和dpkg有相同的功能,具体可参考:dpkg-query 命令

参考资料

15 Practical Examples of “dpkg commands” for Debian Based Distros Linux软件安装管理之——dpkg与apt-*详解 原文:https://www.jianshu.com/p/2ec0f4b945a2



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有