apt
Linux软件包管理工具
apt是一个命令行实用程序,用于在UbuntuDebian和相关Linux发行版上安装、更新、删除和管理deb软件包
产生背景
最初只有.tar.gz的打包文件,用户必须编译每个他想在GNU/Linux上运行的软件。用户们普遍认为系统很有必要提供一种方法来管理这些安装在机器上的软件包,当Debian诞生时,这样一个管理工具也就应运而生,它被命名为dpkg。从而著名的“package”概念第一次出现于GNU/Linux系统中.
很快一个新的问题难倒了GNU/Linux制作者,他们需要一个快速、实用、高效的方法来安装软件包,当软件包更新时,这个工具应该能自动管理关联文件和维护已有配置文件。Debian再次率先解决了这个问题,APT(Advanced Packaging Tool)作为dpkg的前端诞生了。APT后来还被Conectiva改造用来管理rpm,并被其它Linux发行版本采用为它们的软件包管理工具
简介
apt是Debian及其衍生产品的主要命令行包管理器,它提供了用于搜索、管理和查询的命令行工具、有关软件包的信息以及对所有功能的低级访问
作为操作的一部分,APT使用一个文件列出可获得软件包的镜像站点地址,这个文件就是/etc/apt/sources.list。
工作原理
APT是一个客户/服务器系统。在服务器上先复制所有DEB包(DEB是Debian软件包格式文件扩展名),然后用APT的分析工具(genbasedir)根据每个DEB 包的包头(Header)信息对所有的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实际上在可用软件包的数据库上工作。如果数据库没有更新,系统将不知道是否有更新的软件包可用。这就是为什么在安装任何Linux系统之后,第一件事应该是更新apt数据库。
sudo apt-get update
运行此命令时,您将看到从各种服务器检索到的软件包信息。
使用apt升级已安装的软件包
更新软件包数据库后,可以升级已安装的软件包。最方便的方法是升级所有有可用更新的软件包。您只需使用以下命令即可:
sudo apt-get upgrade
这将显示要升级的软件包数量和所有要升级的软件包。
使用apt完全升级已安装的软件包
升级和完全升级的区别在于,如果需要升级整个系统,后者将删除已安装的软件包。
sudo apt-get full-upgrade
使用apt安装软件包
安装软件包非常简单,只需运行以下命令:
sudo apt install package_name
使用apt移除软件包
要删除已安装的软件包,请键入以下命令:
sudo apt remove package_name
还可以指定多个包,以空格分隔:
sudo apt remove package1 package2
remove命令将卸载给定的软件包,但可能会留下一些配置文件。如果要删除包含所有配置文件的软件包,请使用purge而不是remove
使用apt删除未使用的软件包
每当在系统上安装依赖于其他软件包的新软件包时,也会安装软件包依赖项。删除包后,依赖项将保留在系统上。这些剩余的软件包不再被其他任何东西使用,可以移除。
要删除不需要的依赖项,请使用以下命令:
sudo apt autoremove
使用apt生成软件包列表
list命令允许您列出可用、已安装和可升级的软件包。
要列出所有可用的软件包,请使用以下命令:
sudo apt list
该命令将输出所有包的列表,包括有关包的版本和体系结构的信息。要了解是否安装了特定的软件包,可以使用grep命令过滤输出。
sudo apt list | grep package_name
要仅列出已安装的软件包,请键入:
sudo apt list --installed
在实际升级软件包之前,获取可升级软件包的列表可能很有用:
sudo apt list --upgradeable
使用apt搜索软件包
此命令允许您在可用软件包列表中搜索给定软件包:
sudo apt search package_name
如果找到,该命令将返回名称与搜索词匹配的包。
使用apt显示软件包信息
在删除或安装新软件包之前,有关软件包依赖项、安装大小、软件包源等的信息可能很有用。
要检索有关给定包的信息,请使用show命令:
sudo apt show package_name
使用apt在不升级的情况下安装软件包
如果出于某种原因,你想安装一个软件包,但不想升级,那么如果已经安装了,就可以升级。在这种情况下,您可以通过以下方式使用选项–不升级:
sudo apt install --no-upgrade
使用apt只升级软件包
如果只想升级软件包,但不想安装(如果尚未安装),可以使用以下命令进行升级:
sudo apt install --only-upgrade
使用apt安装软件的特定版本
默认情况下,将为应用程序安装存储库中可用的最新版本。但如果不想安装最新版本,可以指定版本号。您需要知道要安装的确切版本号。
只需使用包的名称添加=version。
sudo apt install =
使用apt清理下载文件的存档
sudo apt-get clean
使用apt下载软件源代码
sudo apt-get source
使用apt了解软件依赖关系
sudo apt-cache depends
使用apt检查软件依赖关系
sudo apt-get check
使用apt安装相关的编译环境
sudo apt-get build-dep
最新修订时间:2023-12-06 11:38
目录
概述
产生背景
参考资料