Linux apt命令

参考资料

  1. 重要なのに忘れがちなapt関係のコマンドのメモ

目录

  • 一. 简介
  • 二. 常用命令
    • 2.1 更新
    • 2.2 查询
    • 2.3 安装
    • 2.4 删除
  • 三. `apt-*`系列命令

一. 简介

🔷apt的全称是Advanced Package Tool,是UbuntuDebian及其衍生发行版(如 Linux Mint、Kali 等)中最常用的软件包管理命令,它负责安装、升级、卸载软件以及管理软件仓库。

apt命令出现之前,最常用的 Linux 包管理命令都被分散在了apt-getapt-cacheapt-config这三条命令当中。

  • apt命令的引入就是为了解决包管理命令过于分散的问题
  • apt命令包括了 apt-get 命令出现以来使用最广泛的功能选项,以及 apt-cache 和 apt-config 命令中很少用到的功能。

在使用 apt 命令时,用户不必再由 apt-get 转到 apt-cache 或 apt-config,而且 apt 更加结构化,并为用户提供了管理软件包所需的必要选项。简单来说就是:apt命令是apt-getapt-cacheapt-config中最常用命令选项的集合。

🔷apt 安装的软件来自 软件源(Repository)

  • Ubuntu 22.04及以前的软件源位置
[apluser@FengYeHong-HP]~ $ls-l/etc/apt/sources.list -rw-r--r--1root root2403Oct262022/etc/apt/sources.list
  • Ubuntu 24.04之后的软件源位置
apluser@ubuntu24-01:~$ls-l/etc/apt/sources.list.d/ubuntu.sources -rw-r--r--1root root386Sep252024/etc/apt/sources.list.d/ubuntu.sources

二. 常用命令

2.1 更新

# 更新软件索引sudoaptupdate# 升级所有软件sudoaptupgrade

2.2 查询

# 查看所有可升级的软件aptlist--upgradable# 搜索软件aptsearch nginx# 查看指定软甲有哪些版本aptlist-anginx# 查看软件信息aptshow nginx

2.3 安装

# 安装软甲sudoaptinstallnginx# 自动确认要安装的软件, 在自动化脚本中常用sudoaptinstall-ynginx# -f:fix broken(修复损坏的依赖), APT 会自动下载缺失的软件包,然后继续完成安装。sudoaptinstall-fnginx# 安装指定版本的软件sudoaptinstallnginx=1.24.0-2ubuntu7# 从安装包安装软件, apt会自动解析并安装缺失的依赖sudoaptinstall./google-chrome.deb# 重新安装软件, 适合文件损坏,配置恢复,程序缺失sudoaptreinstall openssh-server

2.4 删除

# 删除软件, 但是不会删除配置文件sudoaptremove nginx# 连配置一起删除sudoaptpurge nginx# 清理无用依赖sudoaptautoremove

三.apt-*系列命令

🔷aptapt-*都是Ubuntu/Debian系列发行版中的软件包管理命令,它们都基于底层的 APT(Advanced Package Tool)库,但它们的定位并不完全相同。

  • apt:Ubuntu 16.04 左右推出,面向终端交互的命令(interactive command)
  • apt-*:稳定的脚本接口(stable scripting interface)

🔺apt命令在脚本中使用可能存在的问题:

  • 官方可能会对输出的格式进行调整,输出格式可能变化。
  • 会加入交互体验,这些交互体验只是为了让人类阅读,对脚本没有意义。

🔷官方明确保证apt-*系列命令 的兼容性。
apt-get,apt-cache,apt-mark都是稳定接口(Stable CLI)。
因此大量:CI/CD,Dockerfile,Ansible,企业脚本都几乎全部使用apt-*

aptapt-*系列命令
面向普通用户面向脚本和底层工具
输出更友好输出较稳定,适合脚本解析
显示安装进度通常不显示友好的进度
提供常用功能的统一接口功能更完整、更底层

🔷常见的命令对照表

日常操作aptapt-get/apt-cache
更新索引apt updateapt-get update
升级软件apt upgradeapt-get upgrade
完整升级(允许安装/删除依赖)apt full-upgradeapt-get dist-upgrade
安装软件apt install nginxapt-get install nginx
删除软件apt remove nginxapt-get remove nginx
连配置一起删除apt purge nginxapt-get purge nginx
自动删除无用依赖apt autoremoveapt-get autoremove
搜索软件apt search nginxapt-cache search nginx
查看软件信息apt show nginxapt-cache show nginx
查看软件策略apt policy nginxapt-cache policy nginx
列出已安装软件apt list --installed无直接对应(通常结合dpkg -l