如果你曾使用过Debian或基于Debian的发行版(如 Ubuntu 或 Linux Mint),那么你可能已经使用过APT包管理系统来安装或删除软件。
即使你从未接触过命令行,支撑你的包管理器图形界面的底层系统也正是 APT 系统。
今天,我们将深入了解一些常见命令,并探讨一些不太常用或较少使用的 apt 命令,带你全面了解这个精妙设计的系统。
什么是 APT?
APT(Advanced Package Tool,高级包管理工具)首次出现在 1999 年的 Debian 2.1 版本中。简单来说,APT 是一个用于管理 dpkg 包(扩展名为 *.deb)的系统。
APT 的设计不仅仅是为了管理包和更新,还解决了安装某些包时常遇到的依赖问题。
对于早期使用 Linux 的用户来说,我们对“依赖地狱”这一术语非常熟悉,尤其是在从源代码编译软件时,或者处理许多 Red Hat 的 RPM 包时。
APT 自动解决了所有这些依赖问题,使得无论包的大小或依赖数量如何,安装任何包都能通过一行命令完成。
对于那些曾花费数小时完成这些任务的人来说,这简直是 Linux 生活中的“拨开云雾见天日”时刻!
关于APT 配置
`/etc/apt/sources.list` 文件是一个配置文件,用来指定包管理器(APT)从哪些仓库获取并安装软件包。该文件包含一系列 URL(统一资源定位符),以及如发行版代号和组件等详细信息。
下面是一个 `/etc/apt/sources.list` 文件的示例:
sudo cat /etc/apt/sources.list

从我的 `/etc/apt/sources.list` 文件可以看出,我使用的是 Ubuntu 22.04(代号:Jammy Jellyfish)。我还使用了三个仓库:
– 主仓库(Main Repository)
– 宇宙仓库(Universe Repository)
– Ubuntu 安全仓库(Ubuntu Security Repository)
`/etc/apt/sources.list` 文件的语法相对简单:
deb (url) release repository
对应的源文件仓库格式如下:
deb-src (url) release repository
这个文件几乎是你唯一需要编辑的 APT 配置文件,通常情况下,默认设置已经足够好,你无需编辑它。
不过,有时你可能需要添加第三方仓库。你可以使用相同的格式添加,并运行更新命令:
$ sudo apt update
注意:请小心添加第三方仓库!!! 只有从可信且声誉良好的来源添加仓库,避免添加可疑的仓库或混合不同版本的发行版,否则可能会严重破坏你的系统。
现在我们已经了解了如何查看和更新 `/etc/apt/sources.list` 文件,接下来让我们安装一些软件包。假设我们正在运行一个服务器,想要安装 WordPress。
首先,搜索一下该软件包:
sudo apt-cache search wordpress

什么是 APT-Cache?
`apt-cache` 是一个用于查询 APT 缓存的命令。当我们传递 `search` 参数时,它会告诉 APT 我们希望进行搜索。正如我们上面看到的,搜索“wordpress”会返回多个相关的软件包,并附带每个软件包的简短描述。
从中我们可以看到主软件包是 “wordpress – weblog manager”,我们想要安装它。但是,能否看到将要安装的所有依赖包呢?APT 也能告诉我们:
sudo apt-cache showpkg wordpress

这会告诉我们要安装的版本(如 WordPress 5.8.3),它将从哪个仓库安装,哪些软件包依赖于它,及其版本号。
注意:(null 表示版本未定义,APT 会安装仓库中的最新版本。)
接下来是实际的安装命令:
sudo apt install wordpress
这个命令会安装 WordPress 5.8.3 及其所有尚未安装的依赖包。

当然,APT 不仅仅能做这些。以下是一些其他有用的 apt 命令:
注意: 在执行一系列 apt 命令之前,最好先运行一次 `apt update`。记住,`apt update` 会解析 `/etc/apt/sources.list` 文件并更新数据库。
卸载软件包
卸载软件包与安装一样简单:
sudo apt remove wordpress
不幸的是,`apt remove` 命令会保留所有配置文件。如果你想同时删除配置文件,可以使用 `apt purge` 命令:
sudo apt purge wordpress
修复破损的依赖
有时你可能会遇到破损的依赖问题。这通常是因为没有正确运行 `apt update`,导致数据库出现问题。幸运的是,APT 提供了修复工具:
sudo apt -f install
清理下载的包文件
由于 APT 会将所有 *.deb 文件从仓库下载到你的机器上(并存储在 `/var/cache/apt/archives` 目录),你可能想定期清理这些文件,以释放磁盘空间:
sudo apt clean
这只是 APT、APT-Cache 及其一些有用命令的冰山一角。还有很多高级命令等待你进一步探索,详细内容请参阅下面的文章。
像往常一样,别忘了查看 `man` 手册页,以了解更多选项。一旦熟悉了 APT,你就可以编写出优秀的 Cron 脚本来保持系统的自动更新。











