序
- 续:
- 《[Linux] Linux中安装软件的方式? - 博客园/千千寰宇》
- 《[Linux] 包管理器之综述【RPM/DPKG|YUM/APT】 - 博客园/千千寰宇》
概述:包管理器 APT
APT
:Advanced Packaging Tool(现名)
解释: Advanced Packaging Tool(apt),作为 原始包管理器
DPKG
的前端包管理工具(在线包管理器),是Linux下的一款安装包管理工具,是一个客户/服务器系统。
Debian GNU/Linux
是Linux APT
的缔造者。
初衷:是利用工具来解决软件安装时候的依赖性问题。
APT
的核心功能:用于在Debian
、Ubuntu
和相关Linux发行版上安装、更新、删除和管理deb软件包。
APT
是Debian
系列发行版(如Ubuntu
)使用的包管理工具。它通过.deb
包来管理软件,且支持从网络仓库下载和安装软件。
apt
是为交互使用而设计的。
最好在shell
脚本中使用apt-get
和apt-cache
,因为它们在不同版本之间向后兼容,并且有更多选项和功能
大多数apt
命令必须以具有sudo
权限的用户身份运行
apt
是Debian及其衍生产品的主要命令行包管理器,它提供了用于搜索、管理和查询的命令行工具、有关软件包的信息以及对所有功能的低级访问
作为操作的一部分,APT
使用一个文件列出可获得软件包的镜像站点地址,这个文件就是/etc/apt/sources.list
。
APT
工作原理:
用户安装Linux APT客户端工具,查寻APT服务器端的资料库(repositories)上的
DEB
/RPM
软件包信息,并分析软件包之间的依赖性然后下载并进行安装。
DPKG
包管理机制:
这个机制最早是由
Debian Linux
社群所开发出来的。
透过dpkg
的机制, Debian 提供的软体就能够简单的安装起来,同时还能提供安装后的软体资讯,实在非常不错。
只要是衍生于Debian
的其他 Linux distributions 大多使用dpkg
这个机制来管理软体的, 包括 Debian / B2D, Ubuntu 等等。
- dpkg 包管理器的由来:
最初只有.tar.gz的打包文件,用户必须编译每个他想在GNU/Linux上运行的软件。
用户们普遍认为系统很有必要提供一种方法来管理这些安装在机器上的软件包,当Debian诞生时,这样一个管理工具也就应运而生,它被命名为dpkg。
从而著名的“package”概念第一次出现于GNU/Linux系统中很快一个新的问题难倒了GNU/Linux制作者,他们需要一个快速、实用、高效的方法来安装软件包。
当软件包更新时,这个工具应该能自动管理关联文件和维护已有配置文件。
Debian再次率先解决了这个问题,APT(Advanced Packaging Tool)作为dpkg的前端诞生了。
APT后来还被Conectiva改造用来管理rpm,并被其它Linux发行版本采用为它们的软件包管理工具。
APT
常用命令
CASE: 使用apt更新软件包数据库
apt
实际上在可用软件包的数据库上工作。
如果数据库没有更新,系统将不知道是否有更新的软件包可用。
这就是为什么在安装任何Linux系统之后,第一件事应该是更新apt数据库。
sudo apt-get update
运行此命令时,您将看到从各种服务器检索到的软件包信息。
此命令会从配置的源(通常在/etc/apt/sources.list
文件中)拉取最新的软件包信息。
CASE: 使用apt升级已安装的软件包
- 更新软件包数据库后,可以升级已安装的软件包。最方便的方法是升级所有有可用更新的软件包。
您只需使用以下命令即可:
sudo apt-get upgrade
这将显示要升级的软件包数量和所有要升级的软件包
CASE:使用apt完全升级已安装的软件包
- 升级和完全升级的区别在于,如果需要升级整个系统,后者将删除已安装的软件包。
sudo apt-get full-upgrade
CASE:使用apt安装软件包
- 安装软件包非常简单,只需运行以下命令:
sudo apt install {packageName}
CASE:使用apt移除软件包
- 要删除已安装的软件包,请键入以下命令:
sudo apt remove {packageName}
还可以指定多个包,以空格分隔:
sudo apt remove package1 package2
remove
命令将卸载给定的软件包,但可能会留下一些配置文件。
如果要删除包含所有配置文件的软件包,请使用purge
(英译:净化/清洗)而不是remove
。
CASE: 使用apt删除未使用的软件包
- 每当在系统上安装依赖于其他软件包的新软件包时,也会安装软件包依赖项。
删除包后,依赖项将保留在系统上。
这些剩余的软件包不再被其他任何东西使用,可以移除。
要删除不需要的依赖项,请使用以下命令:
sudo apt autoremove
CASE:使用apt生成软件包列表
list
命令允许您列出可用、已安装和可升级的软件包。
要列出所有可用的软件包,请使用以下命令:
sudo apt list
该命令将输出所有包的列表,包括有关包的版本和体系结构的信息。要了解是否安装了特定的软件包,可以使用
grep
命令过滤输出
sudo apt list | grep {packageName}
CASE: 要仅列出已安装的软件包
sudo apt list --installed
CASE: 获取可升级软件包的列表
- 在实际升级软件包之前,获取可升级软件包的列表可能很有用:
sudo apt list --upgradeable
CASE: 使用apt搜索软件包
- 此命令允许您在可用软件包列表中搜索给定软件包:
sudo apt search {packageName}
如果找到,该命令将返回名称与搜索词匹配的包。
CASE: 使用apt显示软件包信息
- 在删除或安装新软件包之前,有关软件包依赖项、安装大小、软件包源等的信息可能很有用。
要检索有关给定包的信息,请使用show命令:
sudo apt show {packageName}
CASE: 使用apt在不升级的情况下安装软件包
- 如果出于某种原因,你想安装一个软件包,但不想升级,那么如果已经安装了,在这种情况下,您可以通过以下方式使用下述选项不升级:
sudo apt install <package_name> --no-upgrade
CASE: 使用apt只升级软件包
- 如果只想升级软件包,但不想安装(如果尚未安装),可以使用以下命令进行升级:
sudo apt install <package_name> --only-upgrade
CASE: 使用apt安装软件的特定版本
- 默认情况下,将为应用程序安装存储库中可用的最新版本。但如果不想安装最新版本,可以指定版本号。您需要知道要安装的确切版本号。
只需使用包的名称添加=version。 [3]
sudo apt install <package_name>=<version_number>
``## CASE: 使用apt清理下载文件的存档
```shell
sudo apt-get clean
CASE: 使用apt下载软件源代码
sudo apt-get source <packages>
CASE: 使用apt了解软件依赖关系
sudo apt-cache depends <packages>
CASE: 使用apt检查软件依赖关系
sudo apt-get check
CASE: 使用apt安装相关的编译环境
sudo apt-get build-dep <packages>
Y 推荐文献
- 《[Linux] Linux中安装软件的方式? - 博客园/千千寰宇》
- 《[Linux] 包管理器之综述【RPM/DPKG|YUM/APT】 - 博客园/千千寰宇》
X 参考文献
- APT