dpkg和apt是两个不同的工具用于管理Debian系列Linux发行版上的软件包。dpkg是底层工具,负责直接安装、删除和管理软件包文件(.deb)。它不会自动处理软件包的依赖关系,需要用户手动处理。apt是一个高级工具,自动处理软件包依赖,能够从软件仓库中下载和安装软件包,进行更新和升级。apt依赖dpkg来实际执行软件包的安装和卸载。
apt-get/apt-cache
在Debian和Ubuntu及其衍生发行版中,apt-get 和 apt-cache 是两个常用的命令行工具,用于管理和查询软件包。
# apt-get 旧版本的命令
# 更新源文件
apt-get update
# 升级已安装所有包
apt-get upgrade
# 升级指定的包
apt-get install packagename --only-upgrade
# 安装指定包
apt-get install packagename
# 重新安装指定包
apt-get install packagename --reinstall
# 删除对应包
apt-get remove packagename
# 删除包及配置文件
apt-get remove packagename -- purge
# 安装指定版本的包
# 查询可用版本列表
apt-cache policy <package_name>
# 安装指定版本
apt-get install <package_name>=<version_number>
# 安装相关的编译环境
apt-get build-dep packagename
# 下载对应包的源码
apt-get source packagename
# 查询指定的包
apt-cache search packagename
# 了解包的版本信息
apt-cache show packagename
# 了解使用该包依赖哪些包
apt-cache depends packagename
# 查看该包被哪些包依赖
apt-cache rdepends packagename
apt
apt是Debian中用于管理软件包的高级工具,能够处理依赖关系、更新软件包列表、安装、升级和卸载软件包等操作。
# 安装指定的软件包
sudo apt install <package_name>
sudo apt install <package_1> <package_2> <package_3>
# 删除指定的软件包
sudo apt remove <package_name>
# 移除软件包和配置文件
sudo apt purge <package_name>
# 列出所有可更新的软件清单
sudo apt update
# 升级软件包
sudo apt upgrade
# 更新指定的软件
sudo apt update <package_name>
# 查找软件包
sudo apt search <keyword>
# 显示软件包具体信息,例如:版本号,安装大小,依赖关系等等
sudo apt show <package_name>
# 列出可更新的软件包及版本信息
apt list --upgradable
# 列出所有安装的软件包
apt list --installed
# 列出所有已安装的包的版本信息
apt list --all-versions
dpkg
dpkg命令是Debian Linux发行版中用于管理二进制软件包(.deb格式)的基本工具。
# 安装deb包
dpkg -i package.deb
# 卸载deb包
dpkg -r package-name
# 重新安装软件包并覆盖缺失的配置文件,但保留现有的配置文件
dpkg -i --force-confmiss package.deb
# 显示指定包的安装信息
dpkg -l package-name
# 列出安装包的文件清单
dpkg -L package-name
# 查找给定文件属于哪个已安装的软件包
dpkg -S filename
# 显示特定软件包的详细信息,包括描述、版本、依赖等
dpkg -p package-name
dpkg-source
dpkg-source 命令是用于处理Debian源码软件包的工具,主要用于构建和管理.dsc文件以及源码包
# 解压缩一个源码包,生成源码目录以便后续的修改和构建
dpkg-source -x package.dsc
# 根据给定的源码目录构建一个新的源码包,生成 .dsc 文件和压缩后的源码包文件
dpkg-source -b source-directory
# 提交对源码包的修改
dpkg-source --commit
debuild
debuild是一个用于构建Debian软件包的工具,它通过调用其他底层工具(如 dpkg-buildpackage)来简化构建过程。它会处理构建过程中的常见步骤,包括生成.deb文件、.dsc文件和其他相关文件。debuild 主要用于在开发和测试阶段构建和打包Debian软件包。
debulid [options] #构建deb包
# -a [archname] 指定debuild构建的系统架构类型
# -b 仅构建二进制包,不构建源包
# 生成的文件包括: deb二进制安装包 ddeb调试信息包(类似win-pdb) buildinfo 包含了构建环境的信息和软件包的构建细节
# .changes文件,记录了构建过程中的变更和版本信息
# 普通包-提供运行程序所需的文件,供最终用户使用。-dev包-提供开发和编译软件所需的文件,供开发人员使用
# -S 仅构建源包,不构建二进制包 生成的文件包括:
# .dsc文件 包含包的基本信息、版本、依赖关系等
# tar.gz 或tar.xz 源码信息
#.changes 记录包的构建信息、版本号和变更日志。
# -us 构建未签名的源包
# -uc 构建未签名的 .changes 文件。与 -us 类似,这个选项跳过对 .changes 文件的签名
# -kKEYID 指定用于签名的 GPG 密钥
# -nc 构建之前不清理source tree
# --pre-clean 构建之前清理代码树
# -tc / --post-clean 构建之后清理代码树
# -sa / --source --all 包含所有的源码文件
# 构建未签名的源包和 .changes 文件
# 默认构建源码包和二进制包,构建完成之后清理中间文件
debuild -us -uc -tc
#把所有的源码文件打包 并且不清理中间文件
debuild -sa -S -nc