dpkg 、apt
1. apt简介
Advanced Package Tool,即APT。是一款适用于Unix和Linux系统的应用程序管理器。是debian,ubuntu发行版的包管理工具,与红帽中的yum工具非常类似。 最初于1998年发布,用于检索应用程序并将其加载到Debian Linux系统。APT成名的原因之一在于其出色的解决软件依赖关系的能力。
APT的命令行工具:apt-get apt等。
2. apt 常用的命令
- apt-cache和apt-get是apt包的管理工具,他们根据/etc/apt/sources.list里的软件源地址列表搜索目标软件、并通过维护本地软件包列表来安装和卸载软件。
- 查看本机是否安装软件: whereis package_name 或者 which package_name
2.1 注意
apt-get命令一般需要root权限执行,所以一般跟着sudo命令。
//例:
sudo apt-get xxxx
2.2 apt-get 常用命令
2.2.1 安装软件包
apt-get install packagename
- 安装名为packagename 的软件包
2.2.2 卸载软件包
apt-get remove packagename
apt-get remove --purge packagename
- 第一个命令:卸载名为packagename 的软件包,保留配置文件
- 第二个命令:卸载名为packagename 的软件包,不保留配置文件
apt-get autoremove packagename
apt-get autoremove --purge packagname
- 第一个命令:删除包及其依赖的软件包
- 第二个命令:删除包及其依赖的软件包+配置文件
dpkg --force-all --purge packagename
有些软件很难卸载,而且还阻止了别的软件的应用,就能够用这个,但是有点冒险。
2.2.3 更新软件包列表
apt-get update
- 在修改/etc/apt/sources.list或/etc/apt/preferences之后运行该命令。
- 此外需要定期运行这一命令以确保你的软件包列表是最新的。
2.2.4更新软件包
apt-get upgrade
apt-get dist-upgrade
- 两条命令可以使用这条命令更新软件包。
- apt-get upgrade不仅可以从相同版本号的发布版中更新软件包,也可以从新版本号的发布版中更新软件包(但是不推荐使用这个命令)。
- 从新版本号的发布版中更新软件包 推荐命令为apt-get dist-upgrade。
apt-get -u upgrade
- -u选项让APT显示完整的可更新软件包列表。不加这个选项,你就只能盲目地更新。APT会下载每个软件包的最新更新版本,然后以合理的次序安装它们。注意在运行该命令前应先运行
apt-get update
更新数据库,更新任何已安装的软件包。
2.2.5删除硬盘上备份的软件包
apt-get autoclean
apt-get clean
- apt会把已装或已卸的软件都备份在硬盘上。
- 第一个命令: 可以把已经卸载的软件包的备份给删除了。
- 第二个命令:将已经安装的和已卸载的软件包的备份给删除了。
2.2.6 在软件包列表中搜索 软件包
apt-cache search packegename
如果不知道完整的软件包名字,可以只输入其中一个子集。
2.2.7清除那些已卸载的软件包的.deb文档
apt-get autoclean
3.apt 和 apt-get
3.1 apt 和 apt-get
在开始对比 apt 与 apt-get 命令的区别之前,我们先来看看这两个命令的背景,以及它们要试图达到的目的。
Debian 作为 Ubuntu、Linux Mint 和 elementary OS 等 Linux 操作系统的母板,其具有强健的「包管理」系统,它的每个组件和应用程序都内置在系统中安装的软件包中。Debian 使用一套名为 Advanced Packaging Tool(APT)的工具来管理这种包系统,不过请不要把它与 apt 命令混淆,它们之间是其实不是同一个东西。
在基于 Debian 的 Linux 发行版中,有各种工具可以与 APT 进行交互,以方便用户安装、删除和管理的软件包。apt-get 便是其中一款广受欢迎的命令行工具,另外一款较为流行的是 Aptitude 这一命令行与 GUI 兼顾的小工具。
如果你已阅读过我们的 apt-get 命令指南,可能已经遇到过许多类似的命令,如apt-cache、apt-config 等。如你所见,这些命令都比较低级又包含众多功能,普通的 Linux 用户也许永远都不会使用到。换种说法来说,就是最常用的 Linux 包管理命令都被分散在了 apt-get、apt-cache 和 apt-config 这三条命令当中。
apt 命令的引入就是为了解决命令过于分散的问题,它包括了 apt-get 命令出现以来使用最广泛的功能选项,以及 apt-cache 和 apt-config 命令中很少用到的功能。
在使用 apt 命令时,用户不必再由 apt-get 转到 apt-cache 或 apt-config,而且 apt 更加结构化,并为用户提供了管理软件包所需的必要选项。
简单来说就是:apt = apt-get、apt-cache 和 apt-config 中最常用命令选项的集合。
3.1 apt 和 apt-get 命令之间的区别
虽然 apt 与 apt-get 有一些类似的命令选项,但它并不能完全向下兼容 apt-get 命令。也就是说,可以用 apt 替换部分 apt-get 系列命令,但不是全部。
apt 命令 | 取代的命令 | 安装软件包 |
---|---|---|
apt install | apt-get install | 安装软件包 |
apt remove | apt-get remove | 移除软件包 |
apt purge | apt-get purge | 移除软件包及配置文件 |
apt update | apt-get update | 刷新存储库索引 |
apt upgrade | apt-get upgrade | 升级所有可升级的软件包 |
apt autoremove | apt-get autoremove | 自动删除不需要的包 |
apt full-upgrade | apt-get dist-upgrade | 在升级软件包时自动处理依赖关系 |
apt search | apt-cache search | 搜索应用程序 |
apt show | apt-cache show | 显示安装细节 |
当然,apt 还有一些自己的命令:
- apt list 列出包含条件的包(已安装,可升级等)
- apt edit-sources 编辑源列表