如果你曾经使用过Debian或基于Debian的发行版 (例如Ubuntu或Linux Mint),那么很可能使用过apt软件包系统来安装或删除软件。即使你从未涉足过命令行,为包管理器GUI提供支持的底层系统也是APT系统。
在本文中,小编将介绍下apt命令,深入研究一些不常用或较常用的apt命令,带你看看这个设计出色的系统。
什么是APT?
APT代表高级软件包工具,它于1999 年首次出现在Debian 2.1中。本质上,APT是dpkg软件包的管理系统,如扩展名*.deb所示那样。
APT不仅旨在管理软件包和更新,还解决安装某些软件包时的许多依赖性问题。作为那些在早期使用Linux的人,当尝试从源代码编译某些东西时,甚至在处理许多Red Hat的单独RPM文件时,可能对“dependency hell(依赖地狱)”这个术语非常熟悉。
了解APT配置
/etc/apt/sources.list文件是一个配置文件,它指定包管理器 ( apt ) 从中检索和安装软件包的存储库。该文件包含存储库的URL(统一资源定位器)列表,以及分发代号和组件等详细信息。
以下是/etc/apt/sources.list文件的示例:
sudo cat /etc/apt/sources.list
你可能从上面的/etc/apt/sources.list文件中推断出,小编使用的是Ubuntu 22.04 ( ammy Jellyfish )。此外,还使用了三个存储库:
- Main Repository
- Universe Repository
- 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-cache的命令。我们将搜索参数传递给它,表明我们要搜索APT。正如我们在上面看到的,搜索“ wordpress ”返回了几个与搜索字符串相关的包,以及每个包的简短描述。
其中,我们看到了“ wordpress – weblog manager”的主包,我们要安装它。但是,如果能够准确地看到哪些依赖项将随其一起安装不是很好吗?apt也可以告诉我们:
sudo apt-cache showpkg wordpress
上图表明,wordpress 5.8.3是要安装的版本、要安装的存储库、反向依赖项以及它依赖的其它包,以及它们的版本号。
现在,实际的安装命令如下:
sudo apt install wordpress
该命令将安装WordPress-5.8.3以及当前未安装的所有依赖项:
当然,这并不是APT所能做的全部。其它一些有用的apt命令如下:
卸载软件包与安装软件包一样简单:
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及其一些有用命令的一小部分。如果想了解更多,可以查看APT手册页页面了解。另外,感兴趣也可以阅读下面文章:
总结
简单来说,APT(Advanced Package Tool)是用于在Debian及其派生系统(如Ubuntu)上管理软件包的工具。它是一个强大的包管理系统,用于安装、升级、删除和管理软件包。
一旦熟悉了APT命令,你就可以编写出色的Cron脚本来保持系统最新,从而更容易的管理和操作Linux系统。