如果我们想通过 Linux 命令行安装某个软件,直接在命令行下输入以下命令即可:
sudo apt-get update
sudo apt-get install <软件名>
这种安装方式是通过 apt 工具 实现安装的,那 apt 到底是什么呢?
一、APT 工具
APT 全称 Advanced Packaging Tool,即 高级包装工具,是 Linux 系统下的一个软件包管理工具。APT 可以自动下载、配置、安装二进制或源代码格式的软件包,因此简化了 Unix 系统上管理软件的过程。
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 给出的建议安装的软件包 |