Debian常用包管理命令用法详解

文章目录

dpkg和apt是两个不同的工具用于管理Debian系列Linux发行版上的软件包。dpkg是底层工具,负责直接安装、删除和管理软件包文件(.deb)。它不会自动处理软件包的依赖关系,需要用户手动处理。apt是一个高级工具,自动处理软件包依赖,能够从软件仓库中下载和安装软件包,进行更新和升级。apt依赖dpkg来实际执行软件包的安装和卸载。

apt-get/apt-cache

在Debian和Ubuntu及其衍生发行版中,apt-get 和 apt-cache 是两个常用的命令行工具,用于管理和查询软件包。

shell 复制代码
# 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中用于管理软件包的高级工具,能够处理依赖关系、更新软件包列表、安装、升级和卸载软件包等操作。

shell 复制代码
# 安装指定的软件包  
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格式)的基本工具。

shell 复制代码
# 安装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文件以及源码包

shell 复制代码
# 解压缩一个源码包,生成源码目录以便后续的修改和构建  
dpkg-source -x package.dsc  

# 根据给定的源码目录构建一个新的源码包,生成 .dsc 文件和压缩后的源码包文件
dpkg-source -b source-directory  

# 提交对源码包的修改
dpkg-source --commit  

debuild

debuild是一个用于构建Debian软件包的工具,它通过调用其他底层工具(如 dpkg-buildpackage)来简化构建过程。它会处理构建过程中的常见步骤,包括生成.deb文件、.dsc文件和其他相关文件。debuild 主要用于在开发和测试阶段构建和打包Debian软件包。

shell 复制代码
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  
相关推荐
九河云23 分钟前
AWS账号注册费用详解:新用户是否需要付费?
服务器·云计算·aws
Lary_Rock28 分钟前
RK3576 LINUX RKNN SDK 测试
linux·运维·服务器
幺零九零零1 小时前
【计算机网络】TCP协议面试常考(一)
服务器·tcp/ip·计算机网络
云飞云共享云桌面2 小时前
8位机械工程师如何共享一台图形工作站算力?
linux·服务器·网络
Peter_chq3 小时前
【操作系统】基于环形队列的生产消费模型
linux·c语言·开发语言·c++·后端
一坨阿亮4 小时前
Linux 使用中的问题
linux·运维
dsywws5 小时前
Linux学习笔记之vim入门
linux·笔记·学习
幺零九零零6 小时前
【C++】socket套接字编程
linux·服务器·网络·c++
free7 小时前
netstat中sendq/recvq用于排查发送端发送数据的问题
服务器
小林熬夜学编程7 小时前
【Linux系统编程】第四十一弹---线程深度解析:从地址空间到多线程实践
linux·c语言·开发语言·c++·算法