dpkg和apt

article/2025/9/15 7:47:58

文章目录

  • Ubuntu软件安装
    • Deb包安装
      • Deb包简介
      • dpkg常用命令
    • apt-get源安装
      • apt-get简介
      • apt工作原理
      • apt相关文件
      • 常用的apt命令参数
        • apt-get
        • apt-cache
    • dpkg和apt-get的区别

Ubuntu软件安装

Linux有很多种发行版本,各种发行版本之间安装软件方式和命令不一样,同一个版本之间安装软件也有不同的方法。但是,大体来说,Linux有两大派系,一个是红帽派系,包含Redhat、Centos、Fedora等。还有一个是Debian派系,包含Kali、Ubuntu等。
在这里插入图片描述

这里主要介绍Debian派系的软件安装方式

Deb包安装

Deb包简介

Deb是Debian软件包格式的文件扩展名,Debian包是Unixar的标准归档,将包文件信息以及包内容,经过gzip和tar打包而成。处理这些包的经典程序是dpkg,经常是通过Debian的apt-get来运作。deb 格式是 Debian 系统(包含 Debian 和 Ubuntu )专属安装包格式,配合 APT 软件管理系统,成为了当前在 Linux 下非常流行的一种安装包。

dpkg常用命令

“dpkg ”是“Debian Packager ”的简写。为 “Debian” 专门开发的套件管理系统,方便软件的安装、更新及移除。
dpkg指令用法:

  1. 安装相关命令
    dpkg -i <package-name.deb>#–install, 安装软件包,必须是deb包的完整名称。(软件的安装可被拆分为两个对立的过程“解包”和“配置”)
    dpkg --unpack <package-name.deb># “解包”:解开软件包到系统目录但不配置,如果和-R一起使用,参数可以是一个目录
    dpkg --configure <package-name.deb>#“配置”:配置软件包
    dpkg -c <package-name.deb>#列出 deb 包的内容

  2. 移除安装包
    dpkg -r <package-name># --remove, 移除软件包,但保留其配置文件
    dpkg -P <package-name># --purge, 清除软件包的所有文件(removes everything, including conffiles)

  3. 查询
    dpkg -l <package-name-pattern># --list, 查看系统中软件包名符合pattern模式的软件包(即显示已安装软件包列表)
    dpkg -L <package-name># --listfiles, 查看package-name对应的软件包安装的文件及目录(即显示与软件包关联的文件)
    dpkg -p <package-name># --print-avail, 显示包的具体信息
    dpkg -s <package-name># --status, 查看package-name(已安装)对应的软件包信息
    dpkg -S <filename-search-pattern># --search, 从已经安装的软件包中查找包含filename的软件包名称

apt-get源安装

apt-get简介

Advanced Packaging Tool(apt)是Linux下的一款安装包管理工具,是一个客户/服务器系统。
虽然我们在使用dpkg时,已经解决掉了 软件安装过程中的大量问题,但是当依赖关系不满足时,仍然需要手动解决,而apt这个工具解决了这样的问题,linux distribution 先将软件放置到对应的服务器中,然后分析软件的依赖关系,并且记录下来,然后当客户端有安装软件需求时,通过清单列表与本地的dpkg以存在的软件数据相比较,就能从网络端获取所有需要的具有依赖属性的软件了。
通常 apt-get 都和网上的压缩包一起出没,从互联网上下载或是安装。全世界有超过200个Debian官方镜像,还有繁多的非官方软件包提供网站。你所使用的基于Debian的发布版不同,你所使用的软件仓库可能需要手工选择或是可以自动设置。你能从Debian官方网站得到完整的镜像列表。而很多非官方网站提供各种特殊用途的非官方软件包,当然,使用非官方软件包会有更多风险了。
软件包都是为某一个基本的Debian发布版所准备的(从unstable到stable),并且划分到不同类别中(如 main contrib nonfree),这个是依据 Debian 自由软件纲领而划分的(也就是常说的dfsg),因为美国限制加密软件出口,还有一个non-us类别。

apt工作原理

Ubuntu采用集中式的软件仓库机制,将各式各样的软件包分门别类地存放在软件仓库中,进行有效地组织和管理。然后,将软件仓库置于许许多多的镜像服务器中,并保持基本一致。这样,所有的Ubuntu用户随时都能获得最新版本的安装软件包。因此,对于用户,这些镜像服务器就是他们的软件源(Reposity)。
然而,由于每位用户所处的网络环境不同,不可能随意地访问各镜像站点。为了能够有选择地访问,在Ubuntu系统中,使用软件源配置文件/etc/apt/sources.list列出最合适访问的镜像站点地址。
例1:apt-get的更新过程:

1)执行apt-get update
2)程序分析/etc/apt/sources.list
3)自动连网寻找list中对应的Packages/Sources/Release列表文件,如果有更新则下载之,存入/var/lib/apt/lists/目录
4)然后 apt-get install 相应的包 ,下载并安装。

即使这样,软件源配置文件只是告知Ubuntu系统可以访问的镜像站点地址,但那些镜像站点具体都拥有什么软件资源并不清楚。若每安装一个软件包,就在服务器上寻找一遍,效率是很低的。因而,就有必要为这些软件资源列个清单(建立索引文件),以便本地主机查询。
用户可以使用“apt-get update”命令刷新软件源,建立更新软件包列表。在Ubuntu Linux中,“apt-get update”命令会扫描每一个软件源服务器,并为该服务器所具有软件包资源建立索引文件,存放在本地的/var/lib/apt/lists/目录中。 使用apt-get执行安装、更新操作时,都将依据这些索引文件,向软件源服务器申请资源。因此,在计算机设备空闲时,经常使用“apt-get update”命令刷新软件源,是一个好的习惯。

例2:apt-get install原理图
在这里插入图片描述

apt相关文件

var/lib/dpkg/available文件的内容是软件包的描述信息, 该软件包括当前系统所使用的Debian 安装源中的所有软件包,其中包括当前系统中已安装的和未安装的软件包.

/etc/apt/sources.list记录软件源的地址(当你执行 sudo apt-get install xxx 时,Ubuntu 就去这些站点下载软件包到本地并执行安装)

/var/cache/apt/archives已经下载到的软件包都放在这里(用 apt-get install 安装软件时,软件包的临时存放路径)

/var/lib/apt/lists使用apt-get update命令会从/etc/apt/sources.list中下载软件列表,并保存到该目录

常用的apt命令参数

apt-get

apt-get 是一个下载安装软件包的简单命令行接口。最常用的命令是update(更新)和install(安装)。
用法:apt-get [选项] 命令

常用选项:

-h 本帮助文件。

-q 输出到日志 - 无进展指示

-qq 不输出信息,错误除外

-d 仅下载 - 不安装或解压归档文件

-s 不实际安装。模拟执行命令

-y 假定对所有的询问选是,不提示

-f 尝试修正系统依赖损坏处

-m 如果归档无法定位,尝试继续

-u 同时显示更新软件包的列表

-b 获取源码包后编译

-V 显示详细的版本号

-c=? 阅读此配置文件

-o=? 设置自定的配置选项,如 -o dir::cache=/tmp

常用命令:
sudo apt-get install <package-name>安装软件
sudo apt-get install <package-name> -- reinstall重新安装包
sudo apt-get -f install修复安装"-f = --fix-missing"
sudo apt-get remove <package-name>卸载软件
sudo apt-get remove <package-name>删除包,包括删除配置文件等
sudo apt-get update更新源
sudo apt-get upgrade更新所有已经安装的软件包
sudo apt-get dist-upgrade升级系统
sudo apt-get dselect-upgrade使用 dselect 升级
sudo apt-get build-dep package安装相关的编译环境
apt-get source package下载该包的源代码
sudo apt-get clean && sudo apt-get autoclean清理无用的包
sudo apt-get check检查是否有损坏的依赖

apt-cache

apt-cache depends package了解使用依赖
apt-cache rdepends package查看该包被哪些包依赖
apt-cache search <package-name>搜索包
apt-cache show <package-name>获取包的相关信息,如说明、大小、版本等
apt-cache showpkg <package-name>显示软件包的大致信息

dpkg和apt-get的区别

  • dpkg绕过apt-get包管理数据库直接对软件包进行操作
    所以用dpkg安装过的软件包可以用apt-get可以再安装一遍,系统不知道之前已经安装过了,将会覆盖之前dpkg的安装。
  • dpkg: 用来安装.deb文件时,不会解决模块的依赖关系,且不会关心ubuntu的软件仓库内的软件,可以用于安装本地的deb文件。
  • apt-get: 会解决和安装模块的依赖问题,并会咨询软件仓库,但不会安装本地的deb文件,apt-get是建立在dpkg之上的软件管理工具。

参考资料:
Linux系统中安装软件的几种方式
dpkg和apt-get区别
Linux软件安装管理之——dpkg与apt-*详解


http://chatgpt.dhexx.cn/article/Su3DUT8m.shtml

相关文章

dpkg安装

目录 转载&#xff1a;https://blog.csdn.net/u012300744/article/details/80267225 1.安装 &#xff08;3&#xff09;安装 sudo dpkg -i deb文件名 &#xff08;4&#xff09;根据经验&#xff0c;通常情况下会报依赖关系的错误&#xff0c;我们可以使用以下的命令修复安…

dpkg制作deb包详解

1 deb包文件结构 deb 软件包里面的结构&#xff0c;它具有DEBIAN和软件具体安装目录&#xff08;如etc, usr, opt, tmp等&#xff09;。在DEBIAN目录中至少必须包括control文件&#xff0c;还有可能postinst(postinstallation)、postrm(postremove)、preinst(preinstallation)、…

dpkg命令的用法

dpkg命令的用法 dpkg 是Debian package的简写&#xff0c;为”Debian“ 操作系统 专门开发的套件管理系统&#xff0c;用于软件的安装&#xff0c;更新和移除。 所有源自"Debian"的Linux的发行版都使用 dpkg, 例如"Ubuntu" 阅读目录 安装软件列出与该…

dpkg说明

dpkg与centos中的rpm相似&#xff0c;被用于安装&#xff0c;卸载及查询deb包信息。下面简单介绍基础命令。 已有安装包&#xff1a;test.deb。 安装命令: dpkg -i test.deb 安装test.deb软件包 dpkg -c test.deb #查看test.deb软件包中包含的文件结构 安装后查询命令&#xff…

大数据生态和Spark简介

一、大数据时代 1.第三次信息化浪潮&#xff1a;根据IBM前首席执行官郭士纳的观点&#xff0c;IT领域每隔十五年就会迎来一次重大变革。 2.数据产生方式的变革促成大数据时代的来临&#xff1a; ①存储设备容量不断增加 ②CPU处理能力大幅提升 ③网络带宽不断增加 等等&#…

Spark大数据计算引擎介绍

本文内容参考《Spark与Hadoop大数据分析》[美]文卡特安卡姆 著&#xff1b;《大数据架构详解 从数据获取到深度学习》 朱洁 罗华霖 著。 大数据生态的两个主要部分是Hadoop软件框架和Spark内存级计算引擎。Hadoop包含四个项目&#xff1a;Hadoop common&#xff0c;HDFS&#…

大数据之spark_spark简介

什么是Spark Spark是一种快速、通用、可扩展的大数据分析引擎&#xff0c;2009年诞生于加州大学伯克利分校AMPLab&#xff0c;2010年开源&#xff0c;2013年6月成为Apache孵化项目&#xff0c;2014年2月成为Apache的顶级项目&#xff0c;2014年5月发布spark1.0&#xff0c;201…

开源项目_springboot的答题系统+spark大数据实时分析

一、项目展示 在这里&#xff0c;主要展示大数据图表分析的几个页面。更多精彩由您自己发掘&#xff01; 图1 饼状图 图2 堆叠图 图3 柱状图 二、项目介绍 本项目分为两个模块&#xff0c;第一个为java语言基于springboot实现的答题模块&#xff0c;另一个为scala语言基于spar…

Spark大数据开发技术简介

Spark大数据开发技术简介 轻量级的内存集群计算平台 文章目录 Spark大数据开发技术简介历史沿革Spark的优点对比Apache Spark堆栈中的不同组件基本原理架构组成部署和体系结构Spark运行模式 页面 历史沿革 Apache Spark是一个围绕速度、易用性和复杂分析构建的大数据处理框架最…

【大数据】【Spark】Spark概述

由于Spark程序的编写最好使用Scala语言&#xff0c;可参照博主以下Scala入门文章 链接&#xff1a;https://blog.csdn.net/treesorshining/article/details/124697102 文章目录 1.Spark概念2.Spark与Hadoop的关系1.从时间节点上来看2.从功能上来看 3.Spark与Hadoop的比较4.Spar…

Spark大数据系列教程持续更新

Spark大数据系列教程 想学习大数据的福利来了&#xff0c;由于近期工作繁忙&#xff0c;本人已将自己学习大数据的过程陆续开始更新&#xff1a; Spark大数据系列&#xff1a;一、RDD详解Spark大数据系列 二、Spark入门程序WordCount详解(Scala版本)Spark大数据系列&#xff…

大数据面试题——spark

文章目录 讲一下spark 的运行架构一个spark程序的执行流程讲一下宽依赖和窄依赖spark的stage是如何划分的Spark的 RDD容错机制。checkpoint 检查点机制&#xff1f;RDD、DAG、 Stage、 Task 、 Job Spark的shuffle介绍Spark为什么快&#xff0c;Spark SQL 一定比 Hive 快吗Spar…

引爆Spark大数据引擎的七大工具

原文名称&#xff1a;7 tools to fire up Sparks big data engine Spark正在数据处理领域卷起一场风暴。让我们通过本篇文章&#xff0c;看看为Spark的大数据平台起到推波助澜的几个重要工具。 Spark生态系统众生相 Apache Spark不仅仅让大数据处理起来更快&#xff0c;还让大…

大数据面试题Spark篇(1)

目录 1.spark数据倾斜 2.Spark为什么比mapreduce快&#xff1f; 3.hadoop和spark使用场景&#xff1f; 4.spark宕机怎么迅速恢复&#xff1f; 5. RDD持久化原理&#xff1f; 6.checkpoint检查点机制 7.checkpoint和持久化的区别 8.说一下RDD的血缘 9.宽依赖函数&#…

大数据_Spark常见组件

Spark 是一个分布式数据处理引擎&#xff0c;其各种组件在一个集群上协同工作&#xff0c;下面是各个组件之间的关系图。 Spark驱动器 作为 Spark 应用中负责初始化 SparkSession 的部分&#xff0c;Spark 驱动器扮演着多个角色&#xff1a;它与集群管理器打交道&#xff1b;它…

大数据Spark框架

Spark 是一种基于内存快速、通用、可扩展的大数据分析计算引擎。 Spark 优势&#xff1a; Spark核心单元RDD适合并行计算和重复使用&#xff1b;RDD模型丰富&#xff0c;使用灵活&#xff1b;多个任务之间基于内存相互通信&#xff08;除了shuffle会把数据写入磁盘&#xff0…

Windows下的Spark环境配置(含IDEA创建工程--《Spark大数据技术与应用》第九章-菜品推荐项目)

文章目录 前言一、下载资源二、本地配置步骤1.解压2.引入本地环境3.启动HADOOP文件4.进行Spark测试 三、IDEA引入Spark项目1.idea按照scala插件2.新建scala项目3.配置项目4.新建scala类 前言 本文适用于《Spark大数据技术与应用》第九章-菜品推荐项目环境配置&#xff1a; 跟…

Spark开发:Spark大数据开发编程示例

大数据开发人员&#xff0c;根据企业大数据处理的需求&#xff0c;进行大数据平台系统的搭建&#xff0c;比如说Hadoop&#xff0c;比如说Spark&#xff0c;而不同的大数据处理框架&#xff0c;采取不同的编程语言和编程模型&#xff0c;这就需要技术开发人员要掌握相关的技术。…

《Spark大数据技术与应用》肖芳 张良均著——课后习题

目录 教材知识汇总课后习题第一章 Spark概述Spark的特点Spark生态圈Spark应用场景 第二章 Scala基础匿名函数SetMapmapflatMapgroupBy课后习题 第三章 Spark编程教材52页任务3.2及之后的任务 重点复习sortBy排序collect查询distinct去重zip实训题实训1实训2选择题编程题 第四章…

Spark大数据技术与应用 第一章Spark简介与运行原理

Spark大数据技术与应用 第一章Spark简介与运行原理 1.Spark是2009年由马泰扎哈里亚在美国加州大学伯克利分校的AMPLab实验室开发的子项目&#xff0c;经过开源后捐赠给Aspache软件基金会&#xff0c;成为了Apache Spark。由Scala语言实现的专门为大规模数据处理而设计的快速通用…