文章目录

  • 一、什么是Apt?
  • 二、使用 apt 命令管理基于 Debian 和 Ubuntu 的 Linux 发行版中的包
    • 2.1、使用 apt 更新包数据库
    • 2.2、使用 apt 升级已安装的软件包
    • 2.3、apt update 和 apt upgrade 的区别
    • 2.4、使用 apt 安装新软件包
    • 2.5、使用 apt 安装多个软件包
    • 2.6、如果在已安装的软件包上运行 apt install 会怎样
    • 2.7、在不升级的情况下安装软件包
    • 2.8、只升级软件包,而不是安装它
    • 2.9、安装特定版本的应用程序
    • 2.10、使用 apt 删除已安装的软件包
      • apt remove 和 apt purge 的区别
    • 2.11、搜索packages
    • 2.12、查看package的内容
    • 2.13、列出可升级和已安装的版本
    • 2.14、使用 apt 清理系统

一、什么是Apt?

Apt ( Advanced Package Tool ) 是 Debian 的一套核心工具。Apt 可用来:

  • 安装应用程序
  • 移除应用程序
  • 保持应用为最新
  • 还有更多功能……

Debian Linux 使用 dpkg 打包系统。打包系统是一种提供安装程序和应用程序的方式,这样就不必从源代码构建程序,但是这并不是处理包的最好方法。APT(Advanced Package Tool,高级打包工具)是在基于 Debian 的 Linux 发行版中与打包系统交互的命令行工具。

虽然已经有 dpkg 命令来管理包,但 APT 是一种更友好的管理包的方式。可以用它来查找和安装新软件包、升级软件包、删除软件包等。

apt-get 可能是最流行的APT交互工具,但是 apt 作为它的替代品正慢慢被推广。

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

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

2.1、使用 apt 更新包数据库

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

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

sudo apt update

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


在此处看到三种类型的行:HitGetIgn。基本上这些是:

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

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

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

sudo apt upgrade

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

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

sudo apt full-upgrade

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

2.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

2.4、使用 apt 安装新软件包

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

sudo apt install <package_name>

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

sudo apt install mplayer

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

注意是按Tab,而不是Enter!

使用自动完成功能查找具有给定名称的包:

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

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

sudo apt install <package_1> <package_2> <package_3>

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

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

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

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

sudo apt install <package_name> --no-upgrade

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

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

sudo apt install <package_name> --only-upgrade

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

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

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

sudo apt install <package_name>=<version_number>

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

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

sudo apt remove <package_name>


卸载软件包的另一种方法是使用清除。该命令的使用方式如下:

sudo apt purge <package_name>

apt remove 和 apt purge 的区别

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

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

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

通常,apt remove卸载软件包绰绰有余。

2.11、搜索packages

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

apt search <search term>


2.12、查看package的内容

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

apt show <package_name>

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

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

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

apt list --upgradable


还可以使用--installed选项查看系统上所有已安装的软件包:

apt list --installed

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

apt list --all-versions


2.14、使用 apt 清理系统

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

sudo apt autoremove

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

本文翻译并修改自Using apt Commands in Linux [Complete Guide] 。作者:Abhishek Prakash。英文过关的可以去阅读原文。

详解 Linux 中 apt 命令的使用相关推荐

  1. linux中create命令详解,linux中 pmap 命令详解

    通过查看帮助,返回了如下信息: Usage: pmap [options] pid [pid ...] Options: -x, --extended show details -X show eve ...

  2. linux中dd命令详解,Linux中DD命令详解

    Linux中DD命令详解 1.dd命令简介 功能:把指定的输入文件拷贝到指定的输出文件中,并且在拷贝过程中可以进行格式转换.可以用该命令实现DOS下的diskcopy命令的作用.先用dd命令把软盘上的 ...

  3. linux中替换命令详解,linux中sed命令字符串替换的用法详解

    Linux系统中sed命令可以将字符串批量替换,省去了很多麻烦,下面由学习啦小编为大家整理了linux系统中sed命令字符串替换的用法详解,希望对大家有帮助! linux中sed命令字符串替换的用法详 ...

  4. linux中free -m命令详解,Linux中free命令起什么作用呢?

    摘要: 下文讲述Linux中free的功能说明,如下所示: free命令功能: 用于返回linux系统的物理内存和物理空闲内存 还有交换内存 及被内核使用的缓冲和缓存 free命令的原理: 通过查询/ ...

  5. make linux命令详解,Linux中make命令起什么作用呢?

    摘要: 下文讲述Linux中make的功能说明,如下所示: make命令是GNU工程化中的一个编译工具 make命令功能: 用于编译众多互相关联的源代码文件, make命令还可以编译内核模块 make ...

  6. linux中top界面详解,Linux中top命令输出详解

    前言 Linux下的top命令我相信大家都用过,自从我接触Linux以来就一直用top查看进程的CPU和MEM排行榜.但是top命令的其他输出结果我都没有了解,这些指标都代表什么呢,什么情况下需要关注 ...

  7. linux uname命令详解,linux中uname命令参数及用法详解

    uname 命令可用于大多数 UNIX 和类 UNIX 系统以及 Linux. 功能说明:uname用来获取电脑和操作系统的相关信息. 语 法:uname [-amnrsvpio][--help][- ...

  8. 在linux中hdparm作用,详解Linux中hdparm命令查看硬盘信息的用法

    功能说明:显示与设定硬盘的参数. 语 法:hdparm [-CfghiIqtTvyYZ][-a ][-A <0或1>][-c ][-d <0或1>][-k <0或1> ...

  9. linux中which命令详解,Linux下which命令使用详解(转)

    我们经常在linux要查找某个文件,但不知道放在哪里了,可以使用下面的一些命令来搜索: which 查看可执行文件的位置. whereis 查看文件的位置. locate 配合数据库查看文件位置. f ...

最新文章

  1. Android java传递string类型数据给C
  2. 什么是视频会议?什么是H.323?SIP是什么协议?
  3. UVa1030 Image Is Everything
  4. ccna实验配置个人总结
  5. Dockerfile 布局的良好实践
  6. 通过ClassLoader加载硬盘上的图片到内存及ImageIO的使用
  7. linux下硬盘的安装及分区fdisk
  8. 诺奖奖金为何119年还没发完?
  9. 实践 | Centos 7搭建LVS+Keepalived高可用Web服务群集群
  10. mac php5.6 gd 扩展,mac 编译安装php5.6.40
  11. 最初语音识别率只有60%,如今坐拥5亿用户,这款AI产品是怎么做到的?
  12. ServerHttpRequest 和 HttpServletRequest 获取 IP 地址 学习笔记
  13. 电脑运行c语言时错误,电脑出现microsoft visual c++ runtime error 解决方法(多图)
  14. PlaySound函数用法
  15. 【jdbc】 jndi与“Java:comp/env/“语法
  16. 如何区分共射极放大电路与共基极放大电路?
  17. RN:React Native原理以及新架构JSI、Fabric等概念
  18. 大学生如何正确使用手机便捷支付
  19. 免费个人网页制作指南Dreamweaver教程
  20. Makefile文件:Makefile介绍

热门文章

  1. OpenSips使用说明
  2. VINS(三)IMU预积分
  3. ACdream 1148(莫比乌斯反演+分块)
  4. 安装配置nagios
  5. 精通MVC3摘译(9)-过滤器
  6. NodeJS开源项目
  7. 打开VS项目时出错 MSBuild。。。
  8. ViT (Vision Transformer) ---- SimpleRNN + Self-Attention
  9. python计算召回率代码_序列标注的准确率和召回率计算
  10. loop在python中什么意思_在python中使用loop打开多个文件