当前位置: 首页 > article >正文

Debian系统简介

目录

Debian系统介绍

Debian版本介绍

Debian软件源介绍

软件包管理工具dpkg

dpkg核心指令详解

安装软件包

 卸载软件包

查询软件包状态

 验证软件包完整性

手动处理依赖关系

dpkg vs apt


Debian系统介绍

Debian 和 Ubuntu 都是基于 Debian内核 的 Linux 发行版,Debian系统是由自由和开放源代码的软件组成,并将始终保持 100% 自由,每个⼈都能自由使用、修改,以及发布,Debian 是由全球志愿者社区维护的Linux操作系统,核心特点如下:

  • 稳定优先的版本策略:  稳定版每 2-3 年发布一次,更新频率极低,追求绝对稳定;
  • 严格的自由软件原则:  通过代码透明、开放协作和社区自治,确保软件不受专有权力的束缚;
  • 全架构覆盖: Debian 支持最广泛的硬件架构,包括

       主流架构:amd64(x86-64 桌面/服务器)、arm64(树莓派/物联网)、armhf(ARMv7 设备);

       企业与小众架构ppc64el(IBM PowerPC),mips64el(MIPS 嵌入式);

       实验性架构riscv64(RISC-V 开源指令集);

Debian版本介绍

Debian软件源介绍

软件源示例

deb http://deb.debian.org/debian bullseye main contrib non-free
deb http://deb.debian.org/debian-security bullseye-security main
deb http://deb.debian.org/debian bullseye-updates main

Debian 官方源按软件许可和依赖关系分为三大仓库,严格遵循自由软件准则:

一 main 仓库
内容: 完全符合 Debian 自由软件准则(DFSG)的软件包,无任何专有代码;
示例: GNOME、Vim、GCC 等开源工具;
特点: 官方全力支持,安全性和稳定性最高;二 contrib 仓库
内容: 本身为自由软件,但依赖非自由软件(如专有驱动、闭源库)的包;
示例: 某些打印机驱动需依赖厂商提供的二进制固件;
特点: Debian 社区维护,但不保证所有依赖均被支持;三 non-free 仓库
内容: 包含非自由软件(如专有驱动、闭源应用)的包;
示例: NVIDIA 显卡驱动、Adobe Flash、某些商业软件;
特点: 完全不遵循 DFSG,官方不提供支持,使用需自行承担风险;

软件包管理工具dpkg

dpkg  Debian 系统的底层软件包管理工具,dpkg 只支持直接安装 .deb 格式的软件包文件;它负责软件包的安装、卸载、查询、验证等底层操作,但不自动处理依赖关系(依赖管理需手动解决或借助 apt 等上层工具),核心特点如下:

  • 直接与系统的软件包数据库(位于 /var/lib/dpkg/)交互:即通过底层工具dpkg直接读取或修改 /var/lib/dpkg/目录下的文件,以管理软件包的安装、状态、依赖关系等信息;
  • 只处理本地 .deb 文件,不涉及网络下载或源配置:所有安装、卸载、查询等操作的对象,必须是已经下载到电脑中的 .deb 安装包,而非通过网络从软件源获取,无需修改 /etc/apt/sources.list 等源配置文件,dpkg也不会读取软件源中的软件包信息;
  • dpkg是 aptsynaptic 等工具的底层依赖apt 会调用 dpkg 执行实际安装 / 卸载);

dpkg核心指令详解

安装软件包

由于dpkg 仅检查依赖是否存在,不自动下载或安装依赖包,所以若提示依赖关系不满足,需手动安装缺失的依赖包( sudo apt install 依赖包名);

sudo dpkg -i 软件包名.deb# 参数-i:  -install
# 作用:   将本地.deb文件解压到系统目录(/usr/bin/、/etc/)并在软件包数据库中记录安装信息 
# 示例:    sudo dpkg -i google-chrome-stable_current_amd64.deb  # 安装Chrome浏览器

 卸载软件包

 方式一:普通卸载(保留配置文件)

sudo dpkg -r 软件包名# 参数-r: remove
# 作用:   删除软件包的程序文件,但保留配置文件
# 示例:   sudo dpkg -r firefox  # 卸载Firefox,保留配置

 方式二:彻底卸载(删除配置文件)

sudo dpkg -P 软件包名# 参数-P: purge(清除)
# 作用:   移除软件包及所有配置文件
# 示例:   sudo dpkg -P firefox  # 彻底卸载Firefox

查询软件包状态

方式一:查看已安装的所有软件包

dpkg -l# 输出说明: 1. ii表示已安装且正常运行  2. rc表示已卸载但残留配置文件

方式二:查看单个软件包详情

dpkg -s 软件包名#作用: 显示包的版本、描述、依赖关系、安装路径等详细信息

方式三:查看软件包安装的文件列表

dpkg -L 软件包名# 作用: 列出该包在系统中安装的所有文件路径

 验证软件包完整性

dpkg -V 软件包名# 参数-V:    verify
# 作用:      检查已安装的软件包文件是否被篡改
# 输出说明:  若存在输出则说明文件被修改,否则表示文件完整

手动处理依赖关系

方式一:通过 apt 辅助处理

sudo apt install -f  # 自动修复依赖问题(会调用dpkg)

方式二:从官方源或第三方网站下载对应的 .deb 文件,逐一安装

dpkg vs apt

dpkg作为底层工具直接读写 /var/lib/dpkg/ 下的文件,不依赖网络或软件源,只处理本地 .deb 包;

apt:作为高层工具,间接通过 dpkg 操作数据库,并额外处理网络源、依赖解析、版本冲突等复杂逻辑;

示例:当执行 apt install package 时,apt 会:

  1. 从网络源下载 .deb 包;
  2. 调用 dpkg -i 安装,并触发 dpkg 直接修改数据库;
  3. 自动处理依赖包的下载和安装(dpkg 本身不具备此能力)

总结

  • dpkg核心逻辑dpkg 是 Debian 软件包管理的 "引擎",通过直接读写 /var/lib/dpkg/ 目录下的文件,实现对软件包的增、删、查、改
  • apt/apt-get 等工具 只是 dpkg 的 "外壳",通过调用 dpkg 间接操作数据库,并补充网络源、依赖解析等功能;
关键指令记忆:-安装: sudo dpkg -i-卸载: sudo dpkg -r(普通)/-P(彻底)-查询: sudo dpkg -s(详情)/-L(文件列表)-修复: sudo apt -f install

相关文章:

Debian系统简介

目录 Debian系统介绍 Debian版本介绍 Debian软件源介绍 软件包管理工具dpkg dpkg核心指令详解 安装软件包 卸载软件包 查询软件包状态 验证软件包完整性 手动处理依赖关系 dpkg vs apt Debian系统介绍 Debian 和 Ubuntu 都是基于 Debian内核 的 Linux 发行版&#xff…...

多场景 OkHttpClient 管理器 - Android 网络通信解决方案

下面是一个完整的 Android 实现&#xff0c;展示如何创建和管理多个 OkHttpClient 实例&#xff0c;分别用于长连接、普通 HTTP 请求和文件下载场景。 <?xml version"1.0" encoding"utf-8"?> <LinearLayout xmlns:android"http://schemas…...

8k长序列建模,蛋白质语言模型Prot42仅利用目标蛋白序列即可生成高亲和力结合剂

蛋白质结合剂&#xff08;如抗体、抑制肽&#xff09;在疾病诊断、成像分析及靶向药物递送等关键场景中发挥着不可替代的作用。传统上&#xff0c;高特异性蛋白质结合剂的开发高度依赖噬菌体展示、定向进化等实验技术&#xff0c;但这类方法普遍面临资源消耗巨大、研发周期冗长…...

QMC5883L的驱动

简介 本篇文章的代码已经上传到了github上面&#xff0c;开源代码 作为一个电子罗盘模块&#xff0c;我们可以通过I2C从中获取偏航角yaw&#xff0c;相对于六轴陀螺仪的yaw&#xff0c;qmc5883l几乎不会零飘并且成本较低。 参考资料 QMC5883L磁场传感器驱动 QMC5883L磁力计…...

Cesium1.95中高性能加载1500个点

一、基本方式&#xff1a; 图标使用.png比.svg性能要好 <template><div id"cesiumContainer"></div><div class"toolbar"><button id"resetButton">重新生成点</button><span id"countDisplay&qu…...

大型活动交通拥堵治理的视觉算法应用

大型活动下智慧交通的视觉分析应用 一、背景与挑战 大型活动&#xff08;如演唱会、马拉松赛事、高考中考等&#xff09;期间&#xff0c;城市交通面临瞬时人流车流激增、传统摄像头模糊、交通拥堵识别滞后等问题。以演唱会为例&#xff0c;暖城商圈曾因观众集中离场导致周边…...

循环冗余码校验CRC码 算法步骤+详细实例计算

通信过程&#xff1a;&#xff08;白话解释&#xff09; 我们将原始待发送的消息称为 M M M&#xff0c;依据发送接收消息双方约定的生成多项式 G ( x ) G(x) G(x)&#xff08;意思就是 G &#xff08; x ) G&#xff08;x) G&#xff08;x) 是已知的&#xff09;&#xff0…...

Java如何权衡是使用无序的数组还是有序的数组

在 Java 中,选择有序数组还是无序数组取决于具体场景的性能需求与操作特点。以下是关键权衡因素及决策指南: ⚖️ 核心权衡维度 维度有序数组无序数组查询性能二分查找 O(log n) ✅线性扫描 O(n) ❌插入/删除需移位维护顺序 O(n) ❌直接操作尾部 O(1) ✅内存开销与无序数组相…...

【HarmonyOS 5.0】DevEco Testing:鸿蒙应用质量保障的终极武器

——全方位测试解决方案与代码实战 一、工具定位与核心能力 DevEco Testing是HarmonyOS官方推出的​​一体化测试平台​​&#xff0c;覆盖应用全生命周期测试需求&#xff0c;主要提供五大核心能力&#xff1a; ​​测试类型​​​​检测目标​​​​关键指标​​功能体验基…...

在rocky linux 9.5上在线安装 docker

前面是指南&#xff0c;后面是日志 sudo dnf config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo sudo dnf install docker-ce docker-ce-cli containerd.io -y docker version sudo systemctl start docker sudo systemctl status docker …...

Day131 | 灵神 | 回溯算法 | 子集型 子集

Day131 | 灵神 | 回溯算法 | 子集型 子集 78.子集 78. 子集 - 力扣&#xff08;LeetCode&#xff09; 思路&#xff1a; 笔者写过很多次这道题了&#xff0c;不想写题解了&#xff0c;大家看灵神讲解吧 回溯算法套路①子集型回溯【基础算法精讲 14】_哔哩哔哩_bilibili 完…...

python/java环境配置

环境变量放一起 python&#xff1a; 1.首先下载Python Python下载地址&#xff1a;Download Python | Python.org downloads ---windows -- 64 2.安装Python 下面两个&#xff0c;然后自定义&#xff0c;全选 可以把前4个选上 3.环境配置 1&#xff09;搜高级系统设置 2…...

mongodb源码分析session执行handleRequest命令find过程

mongo/transport/service_state_machine.cpp已经分析startSession创建ASIOSession过程&#xff0c;并且验证connection是否超过限制ASIOSession和connection是循环接受客户端命令&#xff0c;把数据流转换成Message&#xff0c;状态转变流程是&#xff1a;State::Created 》 St…...

安宝特方案丨XRSOP人员作业标准化管理平台:AR智慧点检验收套件

在选煤厂、化工厂、钢铁厂等过程生产型企业&#xff0c;其生产设备的运行效率和非计划停机对工业制造效益有较大影响。 随着企业自动化和智能化建设的推进&#xff0c;需提前预防假检、错检、漏检&#xff0c;推动智慧生产运维系统数据的流动和现场赋能应用。同时&#xff0c;…...

如何在看板中体现优先级变化

在看板中有效体现优先级变化的关键措施包括&#xff1a;采用颜色或标签标识优先级、设置任务排序规则、使用独立的优先级列或泳道、结合自动化规则同步优先级变化、建立定期的优先级审查流程。其中&#xff0c;设置任务排序规则尤其重要&#xff0c;因为它让看板视觉上直观地体…...

IGP(Interior Gateway Protocol,内部网关协议)

IGP&#xff08;Interior Gateway Protocol&#xff0c;内部网关协议&#xff09; 是一种用于在一个自治系统&#xff08;AS&#xff09;内部传递路由信息的路由协议&#xff0c;主要用于在一个组织或机构的内部网络中决定数据包的最佳路径。与用于自治系统之间通信的 EGP&…...

PPT|230页| 制造集团企业供应链端到端的数字化解决方案:从需求到结算的全链路业务闭环构建

制造业采购供应链管理是企业运营的核心环节&#xff0c;供应链协同管理在供应链上下游企业之间建立紧密的合作关系&#xff0c;通过信息共享、资源整合、业务协同等方式&#xff0c;实现供应链的全面管理和优化&#xff0c;提高供应链的效率和透明度&#xff0c;降低供应链的成…...

ssc377d修改flash分区大小

1、flash的分区默认分配16M、 / # df -h Filesystem Size Used Available Use% Mounted on /dev/root 1.9M 1.9M 0 100% / /dev/mtdblock4 3.0M...

线程同步:确保多线程程序的安全与高效!

全文目录&#xff1a; 开篇语前序前言第一部分&#xff1a;线程同步的概念与问题1.1 线程同步的概念1.2 线程同步的问题1.3 线程同步的解决方案 第二部分&#xff1a;synchronized关键字的使用2.1 使用 synchronized修饰方法2.2 使用 synchronized修饰代码块 第三部分&#xff…...

uni-app学习笔记二十二---使用vite.config.js全局导入常用依赖

在前面的练习中&#xff0c;每个页面需要使用ref&#xff0c;onShow等生命周期钩子函数时都需要像下面这样导入 import {onMounted, ref} from "vue" 如果不想每个页面都导入&#xff0c;需要使用node.js命令npm安装unplugin-auto-import npm install unplugin-au…...

Mybatis逆向工程,动态创建实体类、条件扩展类、Mapper接口、Mapper.xml映射文件

今天呢&#xff0c;博主的学习进度也是步入了Java Mybatis 框架&#xff0c;目前正在逐步杨帆旗航。 那么接下来就给大家出一期有关 Mybatis 逆向工程的教学&#xff0c;希望能对大家有所帮助&#xff0c;也特别欢迎大家指点不足之处&#xff0c;小生很乐意接受正确的建议&…...

java 实现excel文件转pdf | 无水印 | 无限制

文章目录 目录 文章目录 前言 1.项目远程仓库配置 2.pom文件引入相关依赖 3.代码破解 二、Excel转PDF 1.代码实现 2.Aspose.License.xml 授权文件 总结 前言 java处理excel转pdf一直没找到什么好用的免费jar包工具,自己手写的难度,恐怕高级程序员花费一年的事件,也…...

centos 7 部署awstats 网站访问检测

一、基础环境准备&#xff08;两种安装方式都要做&#xff09; bash # 安装必要依赖 yum install -y httpd perl mod_perl perl-Time-HiRes perl-DateTime systemctl enable httpd # 设置 Apache 开机自启 systemctl start httpd # 启动 Apache二、安装 AWStats&#xff0…...

Docker 运行 Kafka 带 SASL 认证教程

Docker 运行 Kafka 带 SASL 认证教程 Docker 运行 Kafka 带 SASL 认证教程一、说明二、环境准备三、编写 Docker Compose 和 jaas文件docker-compose.yml代码说明&#xff1a;server_jaas.conf 四、启动服务五、验证服务六、连接kafka服务七、总结 Docker 运行 Kafka 带 SASL 认…...

《从零掌握MIPI CSI-2: 协议精解与FPGA摄像头开发实战》-- CSI-2 协议详细解析 (一)

CSI-2 协议详细解析 (一&#xff09; 1. CSI-2层定义&#xff08;CSI-2 Layer Definitions&#xff09; 分层结构 &#xff1a;CSI-2协议分为6层&#xff1a; 物理层&#xff08;PHY Layer&#xff09; &#xff1a; 定义电气特性、时钟机制和传输介质&#xff08;导线&#…...

基于uniapp+WebSocket实现聊天对话、消息监听、消息推送、聊天室等功能,多端兼容

基于 ​UniApp + WebSocket​实现多端兼容的实时通讯系统,涵盖WebSocket连接建立、消息收发机制、多端兼容性配置、消息实时监听等功能,适配​微信小程序、H5、Android、iOS等终端 目录 技术选型分析WebSocket协议优势UniApp跨平台特性WebSocket 基础实现连接管理消息收发连接…...

Swift 协议扩展精进之路:解决 CoreData 托管实体子类的类型不匹配问题(下)

概述 在 Swift 开发语言中&#xff0c;各位秃头小码农们可以充分利用语法本身所带来的便利去劈荆斩棘。我们还可以恣意利用泛型、协议关联类型和协议扩展来进一步简化和优化我们复杂的代码需求。 不过&#xff0c;在涉及到多个子类派生于基类进行多态模拟的场景下&#xff0c;…...

深入浅出:JavaScript 中的 `window.crypto.getRandomValues()` 方法

深入浅出&#xff1a;JavaScript 中的 window.crypto.getRandomValues() 方法 在现代 Web 开发中&#xff0c;随机数的生成看似简单&#xff0c;却隐藏着许多玄机。无论是生成密码、加密密钥&#xff0c;还是创建安全令牌&#xff0c;随机数的质量直接关系到系统的安全性。Jav…...

【SpringBoot】100、SpringBoot中使用自定义注解+AOP实现参数自动解密

在实际项目中,用户注册、登录、修改密码等操作,都涉及到参数传输安全问题。所以我们需要在前端对账户、密码等敏感信息加密传输,在后端接收到数据后能自动解密。 1、引入依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId...

【位运算】消失的两个数字(hard)

消失的两个数字&#xff08;hard&#xff09; 题⽬描述&#xff1a;解法&#xff08;位运算&#xff09;&#xff1a;Java 算法代码&#xff1a;更简便代码 题⽬链接&#xff1a;⾯试题 17.19. 消失的两个数字 题⽬描述&#xff1a; 给定⼀个数组&#xff0c;包含从 1 到 N 所有…...