ubuntu(10)dpkg命令
在 Ubuntu 或其他基于 Debian 的系统中,**dpkg
是一个底层的包管理工具,用于处理 .deb 包**的安装、卸载、查询等操作。
dpkg help
root@vgt-ubuntu-10:~# dpkg --help
Usage: dpkg [<option>...] <command>
Commands:
-i|--install <.deb file name>... | -R|--recursive <directory>... ### 安装
--unpack <.deb file name>... | -R|--recursive <directory>...
-A|--record-avail <.deb file name>... | -R|--recursive <directory>...
--configure <package>... | -a|--pending
--triggers-only <package>... | -a|--pending
-r|--remove <package>... | -a|--pending ### 移除
-P|--purge <package>... | -a|--pending ### 移除包及配置
-V|--verify [<package>...] Verify the integrity of package(s).
--get-selections [<pattern>...] Get list of selections to stdout.
--set-selections Set package selections from stdin.
--clear-selections Deselect every non-essential package.
--update-avail [<Packages-file>] Replace available packages info.
--merge-avail [<Packages-file>] Merge with info from file.
--clear-avail Erase existing available info.
--forget-old-unavail Forget uninstalled unavailable pkgs.
-s|--status [<package>...] Display package status details.
-p|--print-avail [<package>...] Display available version details.
-L|--listfiles <package>... List files 'owned' by package(s). ### 列出包内文件
-l|--list [<pattern>...] List packages concisely.
-S|--search <pattern>... Find package(s) owning file(s).
-C|--audit [<package>...] Check for broken package(s).
--yet-to-unpack Print packages selected for installation.
--predep-package Print pre-dependencies to unpack.
--add-architecture <arch> Add <arch> to the list of architectures.
--remove-architecture <arch> Remove <arch> from the list of architectures.
--print-architecture Print dpkg architecture.
--print-foreign-architectures Print allowed foreign architectures.
--assert-help Show help on assertions.
--assert-<feature> Assert support for the specified feature.
--validate-<thing> <string> Validate a <thing>'s <string>.
--compare-versions <a> <op> <b> 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.
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=<directory> Use <directory> instead of /var/lib/dpkg.
--root=<directory> Install on a different root directory.
--instdir=<directory> Change installation dir without changing admin dir.
--pre-invoke=<command> Set a pre-invoke hook.
--post-invoke=<command> Set a post-invoke hook.
--path-exclude=<pattern> Do not install paths which match a shell pattern.
--path-include=<pattern> 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=<format> Verify output format (supported: 'rpm').
--no-pager Disables the use of any pager.
--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=<octal> Enable debugging (see -Dhelp or --debug=help).
--status-fd <n> Send status change updates to file descriptor <n>.
--status-logger=<command> Send status change updates to <command>'s stdin.
--log=<filename> Log status changes and actions to <filename>.
--ignore-depends=<package>[,...]
Ignore dependencies involving <package>.
--force-<thing>[,...] Override problems (see --force-help).
--no-force-<thing>[,...] Stop when problems encountered.
--refuse-<thing>[,...] Ditto.
--abort-after <n> Abort after encountering <n> errors.
--robot Use machine-readable output on some commands.
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.
1.常用参数
安装包
-i
或--install
:安装指定的 .deb 文件。示例:1
dpkg -i package.deb
dpkg -i example.deb
注意:如果依赖未满足,可能会失败,需用apt
修复(sudo apt install -f
)。-f –fix 自动修复依赖问题
删除包
-r
或--remove
:移除已安装的包,但保留配置文件。1
dpkg -r 包名
示例:
dpkg -r vim
-P
或--purge
:彻底移除包,包括配置文件。1
dpkg -P 包名
示例:
dpkg -P vim
查询包信息
-l
或--list
:列出已安装的包(支持通配符)。1
dpkg -l
示例:
dpkg -l | grep vim
(查找包含 “vim” 的包)-L
或--listfiles
:列出某个已安装包的所有文件。1
dpkg -L 包名
示例:
dpkg -L vim
-s
或--status
:显示某个包的详细信息。(安装情况、包说明等信息)1
dpkg -s 包名
示例:
dpkg -s vim
-S
或--search
:查找某个文件属于哪个包。1
dpkg -S 文件路径
示例:
dpkg -S /usr/bin/vim
处理 .deb 文件
--contents
或-c
(需用dpkg-deb
):列出 .deb 文件的内容。1
dpkg-deb -c package.deb
示例:
dpkg-deb -c example.deb
--extract
或-x
(需用dpkg-deb
):解压 .deb 文件到指定目录。1
dpkg-deb -x package.deb /path/to/extract
示例:
dpkg-deb -x example.deb ./extracted
--info
或-I
:显示 .deb 文件的元信息(如版本、依赖等)。1
dpkg -I package.deb
示例:
dpkg -I example.deb
配置包
--configure
:配置未完成配置的包。1
dpkg --configure 包名
示例:
dpkg --configure vim
--configure -a
:配置所有未完成配置的包。1
dpkg --configure -a
其他选项
--force-选项
:强制执行某些操作(谨慎使用)。
示例:dpkg -i --force-overwrite package.deb
(强制覆盖文件冲突)-R
或--recursive
:递归处理目录中的所有 .deb 文件。1
dpkg -R -i /path/to/deb_files/
--dry-run
:模拟操作,不实际执行。1
dpkg --dry-run -i package.deb
2.常用用法示例
- 安装一个 .deb 文件如果依赖缺失,运行:
1
sudo dpkg -i example.deb
1
sudo apt install -f
自动修复依赖问题
卸载一个包但保留配置文件
1
sudo dpkg -r package-name
彻底删除一个包
1
sudo dpkg -P package-name
查看已安装包的列表
1
dpkg -l
查找某个文件属于哪个包
1
dpkg -S /usr/bin/ls
检查 .deb 文件内容
1
dpkg-deb -c example.deb
3.注意事项
dpkg
是底层工具,不处理依赖关系。如果安装或删除时遇到依赖问题,建议结合apt
使用。- 使用
sudo
是必要的,因为包管理通常需要管理员权限。 - 如果需要更高级的管理功能,可以使用
apt
或aptitude
,它们是对dpkg
的封装。