Advanced Packaging Tool(apt)是Linux下的一款安装包管理工具,是一个客户/伺服器系统。
简介
Advanced Packaging Tool(apt)是Linux下的一款安装包管理工具。
最初只有.tar.gz的打包档案,用户必须编译每个他想在GNU/Linux上运行的软体。用户们普遍认为系统很有必要提供一种方法来管理这些安装在机器上的软体包,当Debian诞生时,这样一个管理工具也就应运而生,它被命名为dpkg。从而着名的“package”概念第一次出现在GNU/Linux系统中,稍后Red Hat才决定开发自己的“rpm”包管理系统。
很快一个新的问题难倒了GNU/Linux製作者,他们需要一个快速、实用、高效的方法来安装软体包,当软体包更新时,这个工具应该能自动管理关联档案和维护已有配置档案。Debian再次率先解决了这个问题,APT(Advanced Packaging Tool)作为dpkg的前端诞生了。APT后来还被Conectiva改造用来管理rpm,并被其它Linux发行版本採用为它们的软体包管理工具。
APT由几个名字以“apt-”打头的程式组成。apt-get、apt-cache 和apt-cdrom是处理软体包的命令行工具。
Linux命令—apt,也是其它用户前台程式的后端,如dselect 和aptitude。
作为操作的一部分,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-cache search # ——(package 搜寻包)
apt-cache show #——(package 获取包的相关信息,如说明、大小、版本等)
sudo apt-get install # ——(package 安装包)
sudo apt-get reinstall # —–(package - - reinstall 重新安装包)
sudo apt-get -f install # —–(强制安装?#”-f = –fix-missing”当是修复安装吧…)
sudo apt-get remove #—–(package 删除包)
sudo apt-get remove --purge # ——(package 删除包,包括删除配置档案等)
sudo apt-get autoremove --purge # —-(package 删除包及其依赖的软体包配置档案等(只对6.10有效,强烈推荐))
sudo apt-get update #——更新源
sudo apt-get upgrade #——更新已安装的包
sudo apt-get dist-upgrade # ———升级系统
sudo apt-get dselect-upgrade #——使用 dselect 升级
apt-cache depends #——-(package 了解使用依赖)
apt-cache rdepends # ——(package 了解某个具体的依赖?#当是查看该包被哪些包依赖吧…)
sudo apt-get build-dep # ——(package 安装相关的编译环境)
apt-get source #——(package 下载该包的原始码)
sudo apt-get clean && sudo apt-get autoclean # ——–清理下载档案的存档 && 只清理过时的包
sudo apt-get check #——-检查是否有损坏的依赖
apt-get install# ——(下载 以及所有依赖的包裹,同时进行包裹的安装或升级。如果某个包裹被设定了 hold (停止标誌,就会被搁在一边(即不会被升级)。更多 hold 细节请看下面。)
apt-get remove [--purge]# ——(移除 以及任何倚赖这个包裹的其它包裹。)
--purge 指明这个包裹应该被完全清除 (purged) ,更多信息请看 dpkg -P。
apt-get update# ——(升级来自 Debian 镜像的包裹列表,如果你想安装当天的任何软体,至少每天运行一次,而且每次修改了/etc/apt/sources.list 后,必须执行。)
apt-get upgrade [-u]# ——(升级所有已经安装的包裹为最新可用版本。不会安装新的或移除老的包裹。形前端(其中一些在使用前得先安装)。这里 dselect 无疑是最强大的,也是最古老,最难驾驭。)