Deprecated: imwpcache\f884414bce24ee67f\f73723ec7b1919fa5::__construct(): Implicitly marking parameter $YECBGYFECGEAFWHA as nullable is deprecated, the explicit nullable type must be used instead in /www/wwwroot/www.chuangxiangniao.com/wp-content/plugins/imwpcache-dist/build/f884414bce24ee67ff73723ec7b1919fa5.php on line 2

Deprecated: imwpcache\f884414bce24ee67f\f73723ec7b1919fa5::__construct(): Implicitly marking parameter $BBWFDDBHHYHDXXAB as nullable is deprecated, the explicit nullable type must be used instead in /www/wwwroot/www.chuangxiangniao.com/wp-content/plugins/imwpcache-dist/build/f884414bce24ee67ff73723ec7b1919fa5.php on line 2
linux apt是什么_创想鸟

linux apt是什么

APT是Linux系统下的一个软件包管理工具,可以自动下载、配置、安装二进制或源代码格式的软件包;大部分apt命令必须以具有sudo权限 的用户身份运行。APT最早被设计为dpkg的前端,用于处理deb格式的软件包;现在经过APT-RPM组织修改,APT已经可以安装在支持RPM的系统管理RPM包。

linux apt是什么

本教程操作环境:Ubuntu 21.04系统、Dell G3电脑。

如果我们想通过 Linux 命令行安装某个软件,直接在命令行下输入以下命令即可:

sudo apt-get updatesudo apt-get install 

这种安装方式是通过 apt 工具 实现安装的,那 apt 到底是什么呢? 

一、APT 工具

        APT 全称 Advanced Packaging Tool,即 高级包装工具,是 Linux 系统下的一个软件包管理工具。APT 可以自动下载、配置、安装二进制或源代码格式的软件包,因此简化了 Unix 系统上管理软件的过程。Apt 可用来:

安装应用程序

移除应用程序

保持应用为最新

还有更多功能……

        APT 最早被设计为 dpkg(Debian Package)的前端,用于处理 deb 格式的软件包。现在经过 APT-RPM 组织修改,APT 已经可以安装在支持 RPM 的系统管理 RPM 包。这个包管理器包含以 apt- 开头的多个工具,如  apt-get    apt-cache    apt-cdrom  等。

        简单来说,apt 就是一个命令行实用程序,用于 安装、更新、管理、删除、查找… 软件包。大部分 apt 命令必须以具有 sudo 权限 的用户身份运行。

apt 适用于 Ubuntu、Debian 和相关 Unix 发行版,不适用于 redhat、centos……

二、APT 工作原理

        APT 是一个客户/服务器系统。在服务器上先复制所有的 deb 包(deb – Debian 软件包格式的文件扩展名);然后使用 APT 的分析工具 – genbasedir,根据每个 deb 包的包头信息对所有的 deb 包进行分析,并将分析结果记录在一个文件 – DEB 索引清单中。APT 服务器的 DEB 索引清单置于 base 文件夹内。一旦 APT 服务器内的 deb包 有所变动,一定要使用 genbasedir 产生新的 DEB 索引清单。客户端在进行安装或升级时先要查询 DEB 索引清单,从而获得所有具有依赖关系的软件包,并一同下载到客户端以便安装。

        当客户端需要安装、升级或删除某个软件包时,客户端计算机取得 DEB 索引清单的压缩文件后,将其解压置于 /var/state/apt/lists/ 目录下。而客户端使用 apt-get install 或 apt-get upgrade 命令时,就会将这个文件夹内的数据和客户端计算机内的 DEB 数据库进行比对,知道哪些 DEB 是已安装、未安装或是可升级的。

        客户端需要定期从服务器上下载一个软件包列表,因为 apt 工具实际上是在可用软件包的数据库上工作。当执行安装操作时 apt-get 工具会在本地可用软件包数据库中搜索目标软件的相关信息,并根据这些信息在相关的服务器上下载软件并安装。所以在安装之前通常都会通过  sudo apt-get update  更新一下本地的软件包数据库。

三、APT 命令

(1)apt-get 常用命令

命令 说明

sudo apt-get update更新本地软件包数据库sudo apt-get install 安装软件包sudo apt-get –reinstall install 重新安装软件包,如:系统被破坏、一些错误的配置导致软件无法正常工作…sudo apt-get upgrade升级所有已安装的软件包sudo apt-get full-upgrade完全升级已安装的软件包sudo apt-get remove 移除已安装的软件包(包括与被移除软件包有依赖关系的软件包,但不包含软件包的配置文件)sudo apt-get autoremove移除之前被其他软件包依赖,但现在不再被使用的软件包sudo apt-get purge 完全移除软件包(包括软件包的配置文件sudo apt-get clean移除下载到本地的已经安装的软件包,默认保存在 /var/cache/apt/archives/sudo apt-get list生成软件包列表sudo apt-get search 搜索软件包sudo apt-get show 显示软件包具体信息,如:版本号、安装大小、依赖关系等

(2)apt-get 常用参数

参数 说明

-y自动回应是否安装软件包的选项,在一些自动化安装脚本中非常有用-s模拟安装-q安静安装方式,指定多个 q-q=#(#表示数字,用于设定静默级别),在不想要安装过程中屏幕输出过多内容时非常有用-f修复损坏的依赖关系-d下载,不安装–reinstall重新安装已经安装但可能存在问题的软件包–install-suggests同时安装 APT 给出的建议安装的软件包

四、使用 apt 命令管理基于 Debian 和 Ubuntu 的 Linux 发行版中的包

我在本教程中使用 Ubuntu 21.04,但你可以使用任何其他基于 Debian/Ubuntu 的 Linux 发行版,例如 Linux Mint、elementary OS、Linux Lite 等。

4.1、使用 apt 更新包数据库

apt 作用于可用包的数据库。如果数据库没有更新,系统将不知道是否有可更新的软件包可用。这就是为什么在任何 Linux 系统中进行了全新安装后,首先要更新存储库。

更新包数据库需要超级用户权限,因此您需要使用sudo

sudo apt update

运行此命令看到从各种服务器检索的包信息:

在这里插入图片描述
在此处看到三种类型的行:HitGetIgn。基本上这些是:

命中(Hit):包版本与之前的版本没有变化。忽略(Ign):包被忽略。要么是包版本太新,它甚至懒得检查,要么在检索文件时出错,但错误微不足道,因此被忽略。获取(Get):有一个新版本可用。它将下载有关版本的信息(而不是包本身)。您可以在上面的屏幕截图中看到带有“获取(Get)”行的下载信息(大小以kb为单位)。

4.2、使用 apt 升级已安装的软件包

更新软件包数据库后,就可以升级已安装的软件包。最方便的方法是升级所有具有可用更新的软件包。可以简单地使用以下命令:

sudo apt upgrade

这将显示将要升级的所有软件包的数量和种类。

在这里插入图片描述在这里插入图片描述

还有另一种方法可以使用以下命令提供完整升级:

sudo apt full-upgrade

full-upgradeupgrade 的工作原理相同,只是如果系统升级需要删除系统上已安装的软件包,它会这样做。然而,正常的升级命令不会这样做。

4.3、apt update 和 apt upgrade 的区别

虽然听起来像当执行 apt update 时,它会更新软件包,你将获得最新版本的软件包。但事实并非如此。apt update 只更新包的数据库

例如,如果你安装了 XYZ 包 1.3 版,则在 apt 更新后,数据库将知道有更新的 1.4 版可用。当你在 apt update 之后执行 apt upgrade 时,它会将已安装的软件包升级(或更新)到较新的版本。

这就是为什么使用此命令更新 Ubuntu 系统最快、最方便的原因:

sudo apt update && sudo apt upgrade -y

4.4、使用 apt 安装新软件包

如果已经知道包的名称,则可以使用以下命令进行安装:

sudo apt install 

只需将 替换为所需的包。假设你想安装mplayer,你可以简单地使用下面的命令:

sudo apt install mplayer

在这里插入图片描述在这里插入图片描述

可以使用自动完成功能。当不确定确切的包名称时,可以输入几个字母并按Tab,它会建议所有以这些字母开头的可用的包。例如:

注意是按Tab,而不是Enter!

使用自动完成功能查找具有给定名称的包:
在这里插入图片描述

4.5、使用 apt 安装多个软件包

Layx是一款网页弹窗Javript插件 Layx是一款网页弹窗Javript插件

Layx 是一款网页弹窗Javript插件,她将助力于互联网Web开发,提供优质的弹窗体验

Layx是一款网页弹窗Javript插件 32 查看详情 Layx是一款网页弹窗Javript插件

不必一次只安装一个软件包。可以通过同时提供多个软件包名称来一次安装多个软件包:

sudo apt install   

4.6、如果在已安装的软件包上运行 apt install 会怎样

这将只查看数据库,如果找到更新的版本,它会将已安装的软件包升级到较新的软件包。因此,使用它不会造成任何伤害,除非你不希望它升级。

在这里插入图片描述

4.7、在不升级的情况下安装软件包

如果由于某种原因你想安装一个包,但不想升级,如果它已经安装了。在这种情况下,你可以通过以下方式使用选项 –no-upgrade

sudo apt install  --no-upgrade

在这里插入图片描述

4.8、只升级软件包,而不是安装它

如果你只想升级软件包但不想安装它(如果尚未安装),则可以使用以下命令执行此操作:

sudo apt install  --only-upgrade

在这里插入图片描述

4.9、安装特定版本的应用程序

默认情况下,将为应用程序安装存储库中可用的最新版本。但是如果不想安装最新版本,可以指定版本号。你需要知道要安装的确切版本号。

只需在包名称后添加 =version 即可。

sudo apt install =

4.10、使用 apt 删除已安装的软件包

删除软件包就像安装它们一样简单。只需使用以下命令:

sudo apt remove 

在这里插入图片描述
卸载软件包的另一种方法是使用清除。该命令的使用方式如下:

sudo apt purge 

apt remove 和 apt purge 的区别

apt remove只是删除包的二进制文件。它留下了残留的配置文件。apt purge 删除与包相关的所有内容,包括配置文件。

如果你习惯于apt remove删除特定软件然后重新安装它,你的软件将具有相同的配置文件。当然,再次安装时会要求你覆盖现有的配置文件。

当你弄乱了程序的配置,你想从系统中完全清除它的痕迹再重新开始,清除会很有用。也可以在已删除的包上使用apt purge

在这里插入图片描述通常,apt remove卸载软件包绰绰有余。

4.11、搜索packages

这不是搜索包的最好方式。但是当你在寻找一些特定的库时,这很有用。只需将以下命令与所需的搜索词一起使用,就可以找到包含搜索词的所有包。

apt search 

在这里插入图片描述
在这里插入图片描述

4.12、查看package的内容

如果你想在安装或删除软件包之前了解有关软件包的更多信息,可以使用以下命令:

apt show 

这将显示有关给定包的信息,例如其依赖项、安装和下载大小、包的不同来源、包内容的描述等:

在这里插入图片描述

4.13、列出可升级和已安装的版本

apt 命令有一个名为 list 的新选项。使用此命令,可以查看所有准备升级的较新版本的软件包:

apt list --upgradable

在这里插入图片描述
还可以使用--installed选项查看系统上所有已安装的软件包:

apt list --installed

在这里插入图片描述

还有第三个选项,称为 –all-versions。它将列出可用于你的系统的所有软件包:

apt list --all-versions

在这里插入图片描述
在这里插入图片描述

4.14、使用 apt 清理系统

与 apt-get 不同,这里没有 clean 和 autoclean 命令。但是仍然可以使用 autoremove 选项释放一些磁盘空间:

sudo apt autoremove

安装软件时会自动安装一些满足依赖关系的库和包。如果软件包被删除,这些自动安装的库和包虽然没有用,但仍会保留在系统中。可以使用此命令清除掉。

在这里插入图片描述

相关推荐:《Linux视频教程》

以上就是linux apt是什么的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/321037.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
漫蛙漫画(台版)入口 漫蛙漫画(台版)官方正版链接推荐
上一篇 2025年11月5日 09:49:28
如何利用MySQL和Go语言开发一个简单的音频播放器
下一篇 2025年11月5日 09:49:32

相关推荐

  • 如何在Java中安装Eclipse开发环境

    先安装JDK并配置环境变量,再下载安装Eclipse IDE。1. 安装JDK:从Oracle或Eclipse Adoptium下载JDK 17/21,按提示安装,设置JAVA_HOME和PATH,用java -version验证。2. 安装Eclipse:官网下载“Eclipse IDE for …

    2026年9月23日
    000
  • 配置Linux下vim自动缩进

    从终端打开配置文件: vim ~/.vimrc 添加如下代码: set tabstop=4set softtabstop=4set shiftwidth=4set autoindentset cindentset cinoptions={0,1s,t0,n-2,p2s,(03s,=.5s,>1…

    2026年9月23日
    800
  • Java岗大厂面试百日冲刺 – 日积月累,每日三题【Day25】—— JVM1

    Java岗大厂面试百日冲刺 – 日积月累,每日三题【Day25】—— JVM1Java岗大厂面试百日冲刺 – 日积月累,每日三题【Day25】—— JVM1Java岗大厂面试百日冲刺 – 日积月累,每日三题【Day25】—— JVM1Java岗大厂面试百日冲刺 – 日积月累,每日三题【Day25】—— JVM1

    车票 面试题1:你遇到过哪些OOM情况,什么原因造成的?怎么解决的? 该问题主要针对你遇到的实际问题出发,可以根据你实际遇到过的情况和场景,结合下面每种情况的具体原因和解决方式,整理后回答。 当堆内存(Heap Space)没有足够空间存放新创建的对象时,就会抛出 java.lang.OutOfMe…

    2026年9月23日 用户投稿
    000
  • 手把手教你在 Ubuntu16.04 安装 GPU 驱动 + CUDA9.0 + cuDNN7

    手把手教你在 Ubuntu16.04 安装 GPU 驱动 + CUDA9.0 + cuDNN7手把手教你在 Ubuntu16.04 安装 GPU 驱动 + CUDA9.0 + cuDNN7手把手教你在 Ubuntu16.04 安装 GPU 驱动 + CUDA9.0 + cuDNN7手把手教你在 Ubuntu16.04 安装 GPU 驱动 + CUDA9.0 + cuDNN7

    如果你的电脑上安装了 ubuntu 16.04 系统,并且配备了一块 nvidia geforce gpu 显卡,那么不利用它来运行深度学习模型就太可惜了!尽管网上有许多相关教程,但质量参差不齐。本文将详细指导你如何在 ubuntu 16.04 上安装 gpu 显卡驱动、cuda 9.0 和 cud…

    2026年9月23日 用户投稿
    000
  • Linux中的SUID、SGID和Sticky Bit详解

    SUID、SGID和Sticky Bit是Linux特殊权限,分别用于以文件所有者身份执行、继承组权限及限制删除文件。SUID用4000表示,如chmod 4755;SGID用2000,可作用于文件和目录;Sticky Bit用1000,常用于/tmp等共享目录。三者可通过数字或符号方式设置,组合使…

    2026年9月23日
    300
  • spark运行原理简单介绍和一些总结

    spark运行原理简单介绍和一些总结spark运行原理简单介绍和一些总结spark运行原理简单介绍和一些总结spark运行原理简单介绍和一些总结

    大家好,又见面了,我是你们的朋友全栈君。 一、运行原理 来看一个流程图: 解释如下: 构建spark Application运行环境sparkcontext向资源管理器注册sparkContext向资源管理器申请运行Executor(执行器)资源管理器分配executor资源管理器启动executo…

    2026年9月23日 用户投稿
    800
  • VSCode配置C/C++单元测试 完整VSCode开发环境搭建

    要搭建#%#$#%@%@%$#%$#%#%#$%@_e2fc++805085e25c9761616c00e065bfe8中c/c++单元测试环境,需先安装c/c++扩展、test adapter for google test等必要插件,配置tasks.json和launch.json实现编译与调试…

    2026年9月23日
    000
  • Linux命令行中uniq命令的使用场景

    uniq命令需与sort配合处理相邻重复行,直接执行uniq可去除连续重复行如aabba变为aba;使用-c统计每行出现次数,结合sort -nr可排序频次;-d选项仅输出重复行,适合定位重复数据;-f跳过前N个字段(空白分隔),-s跳过前N字符,常用于忽略日志时间戳;整体在日志分析中高效实用。 u…

    2026年9月23日
    100
  • 嵌入式Linux开发-根文件系统本地挂载

    嵌入式Linux开发-根文件系统本地挂载嵌入式Linux开发-根文件系统本地挂载嵌入式Linux开发-根文件系统本地挂载嵌入式Linux开发-根文件系统本地挂载

    引言 前一篇文章介绍了根文件系统的制作与nfs网络挂载,本文将探讨如何通过本地挂载根文件系统来完成系统启动。本地挂载通常用于产品发布阶段,并且分为两种操作方式。 第一种方式:在PC机上制作好文件映像rootfs.img,然后通过uboot加载并直接烧写到EMMC中。这种方法最便捷,适用于产品批量生产…

    2026年9月23日 用户投稿
    300
  • Java PreparedStatement

    大家好,很高兴再次与大家见面,我是你们的老朋友全栈君。 Java PreparedStatement与Statement类似,是Java JDBC Framework的一部分。它用于对数据库执行CRUD操作。PreparedStatement扩展了Statement接口。由于支持参数化查询,Prep…

    2026年9月23日
    2600
  • Linux用户和权限管理的安全最佳实践

    最小权限原则要求用户和进程仅拥有必要权限,避免赋予root权限,通过sudo提权并限制命令,服务账户禁止登录且权限最小化;定期审查sudoers文件,删除无用账户,禁用root直接登录,强密码策略由pam_pwquality实现,usermod -s /sbin/nologin限制服务账户登录;文件…

    2026年9月23日
    600
  • Asianux 7.3安装Oracle 11.2.0.4单实例体验

    在asianux 7.3环境中安装#%#$#%@%@%$#%$#%#%#$%@_a189c++633d9995e11bf8607170ec9a4b8 11.2.0.4单实例的具体步骤和注意事项如下: 环境:Asianux 7.3 需求:安装Oracle 11.2.0.4 单实例 背景:系统使用默认的…

    2026年9月23日
    400
  • Kafka 精妙的高性能设计(上篇)

    Kafka 精妙的高性能设计(上篇)Kafka 精妙的高性能设计(上篇)Kafka 精妙的高性能设计(上篇)Kafka 精妙的高性能设计(上篇)

    kafka 的高性能设计可以说是无微不至,从生产者(producer)、到代理(broker)、再到消费者(consumer),kafka 在每一个细节上都精心优化,最终实现了极致的性能。 本文将首先带领大家建立高性能设计的思维模式,然后深入探讨 Kafka 的高性能设计方案,最终帮助大家系统地掌握…

    2026年9月23日 用户投稿
    100
  • mysql安装后怎么可视化 mysql图形界面工具安装使用

    mysql安装后怎么可视化 mysql图形界面工具安装使用mysql安装后怎么可视化 mysql图形界面工具安装使用mysql安装后怎么可视化 mysql图形界面工具安装使用mysql安装后怎么可视化 mysql图形界面工具安装使用

    要更方便地操作 mysql 数据库,推荐使用图形界面工具。常见的有:1. mysql workbench(官方工具,功能全面)2. navicat for mysql(商业软件,界面简洁,功能丰富)3. dbeaver(开源免费,跨平台支持)4. phpmyadmin(基于 web,适合 php 环…

    2026年9月23日 用户投稿
    400
  • Linux用户认证与授权机制解析

    Linux通过认证与授权机制保障系统安全,先验证用户身份,再控制资源访问。1. 用户认证包括密码、PAM、SSH密钥等方式,由login或sshd调用PAM模块完成;2. 用户与组管理基于UID和GID,通过/etc/passwd、/etc/group、/etc/shadow文件实现,使用usera…

    2026年9月23日
    000
  • 如何解决Linux软件包冲突 yum和apt依赖问题处理方案

    如何解决Linux软件包冲突 yum和apt依赖问题处理方案如何解决Linux软件包冲突 yum和apt依赖问题处理方案如何解决Linux软件包冲突 yum和apt依赖问题处理方案如何解决Linux软件包冲突 yum和apt依赖问题处理方案

    处理linux软件包冲突的核心方法是利用包管理器自带修复机制并手动干预。1. 清理缓存与元数据,重新更新以解决临时错误;2. 使用跳过损坏包、强制重装等方式尝试自动修复;3. 禁用或调整第三方仓库优先级以避免冲突源;4. 手动安装特定版本依赖或卸载冲突包;5. 对于apt系统,使用–fi…

    2026年9月23日 用户投稿
    600
  • 关于java打包成jar在linux上运行的一些问题「建议收藏」

    大家好,又见面了,我是你们的朋友全栈君。 关于将Java项目导出为可运行的jar文件,请参考下图: 如果在Linux上运行时,前两个选项导出的jar包报错,提示找不到依赖包,那么建议使用第三个选项。这个选项会生成一个jar包和一个文件夹,文件夹内包含jar包的所有依赖。将这两个文件一起上传到Linu…

    2026年9月23日
    000
  • VSCode如何配置生物信息开发环境 VSCode基因组数据分析工作流

    vscode在生物信息学中的核心配置是通过安装python、r、remote-ssh/containers/wsl等扩展,结合conda管理环境,实现多语言支持与远程开发;2. 处理大规模基因组数据时应避免直接打开大文件,而是通过集成终端调用命令行工具(如samtools、bcftools)在远程服…

    2026年9月23日
    100
  • go 语言版本控制器

    管理不同版本的go语言环境是一项繁琐的任务,尤其是当需要为每个go特性单独安装go环境时。为了简化这一过程,我们需要一个版本管理工具来统一管理go环境。以下是关于go版本控制器g的详细介绍。 一、Go版本控制器g简介 g是一个适用于Linux、macOS和Windows的命令行工具,旨在提供一个方便…

    2026年9月23日
    000
  • Windows 下安装和配置 WSL(Windows 10 子系统)

    前言与介绍 作为开发者,经常需要使用 Linux 环境,甚至信息学奥林匹克竞赛(NOI)也采用 Linux 作为编译环境。然而,Linux 系统上缺乏一些必备工具,如 Photoshop 和 Internet Download Manager。因此,Windows 系统同样不可或缺,频繁在两个系统间…

    2026年9月23日
    200

发表回复

登录后才能评论
关注微信