在使用apt和apt-get命令的时候咱们经常会疑惑这二者有什么区别,由于大多数时间这两个命令能作不少相同的事情。linux
Ubuntu 16.04 发布时,一个引人注目的新特性即是 apt 命令的引入。其实早在 2014 年,apt 命令就已经发布了第一个稳定版,只是直到 2016 年的 Ubuntu 16.04 系统发布时才开始引人关注。随着 apt install package 命令的使用频率和广泛性逐步超过 apt-get install package,愈来愈多的其它 Linux 发行版也开始遵循 Ubuntu 的脚步,开始鼓励用户使用 apt 而不是 apt-get。 Debian 做为 Ubuntu、Linux Mint 和 elementary OS 等 Linux 操做系统的母板,其具备强健的包管理系统,它的每一个组件和应用程序都内置在系统中安装的软件包中。
Debian 使用一套名为 Advanced Packaging Tool(APT)的工具来管理这种包系统,不过请不要把它与 apt 命令混淆,它们之间是其实不是同一个东西。在基于 Debian 的 Linux 发行版中,有各类工具能够与 Advanced Packaging Tool(APT) 进行交互,以方便用户安装、删除和管理的软件包。apt-get 即是其中一款广受欢迎的命令行工具,另一款较为流行的是 Aptitude 这一命令行与 GUI 兼顾的小工具。除此以外,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 中最经常使用命令选项的集合。经过 apt 命令,用户能够在同一地方集中获得全部必要的工具,apt 的主要目的是提供一种以让终端用户满意的方式来处理 Linux 软件包的有效方式。apt 具备更精减但足够的命令选项,并且参数选项的组织方式更为有效。除此以外,它默认启用的几个特性对最终用户也很是有帮助。例如,能够在使用 apt 命令安装或删除程序时看到进度条。
虽然 apt 与 apt-get 有一些相似的命令选项,但它并不能彻底向下兼容 apt-get 命令。也就是说,能够用 apt 替换部分 apt-get 系列命令,但不是所有。windows
apt 命令工具 |
取代的命令ui |
命令的功能spa |
---|---|---|
apt install操作系统 |
apt-get install开放源代码 |
安装软件包命令行 |
apt remove日志 |
apt-get removecode |
移除软件包 |
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命令 |
命令的功能 |
---|---|
apt list |
列出包含条件的包(已安装,可升级等) |
apt edit-sources |
编辑源列表 |
总结:
须要注意的是:apt 命令也还在不断发展, 所以会在未来的版本中看到新的选项。目前尚未任何 Linux 发行版官方放出 apt-get 将被停用的消息,至少它还有比 apt 更多、更细化的操做功能。对于低级操做,仍然须要 apt-get。既然两个命令都有用,那么我该使用 apt 仍是 apt-get 呢?做为一个常规 Linux 用户,建议你们尽快适应并开始首先使用 apt。不只由于广大 Linux 发行商都在推荐 apt,更主要的仍是它提供了 Linux 包管理的必要选项。最重要的是,apt 命令选项更少更易记,所以也更易用,因此没理由继续坚持 apt-get。 apt 能够看做 apt-get 和 apt-cache 命令的子集, 能够为包管理提供必要的命令选项。 apt-get 虽然没被弃用,但做为普通用户,仍是应该首先使用 apt。
rpm 至关于windows中的安装文件,它会自动处理软件包之间的依赖关系。 rpm是redhat公司的一种软件包管理机制,直接经过rpm命令进行安装删除等操做,最大的优势是本身内部自动处理了各类软件包可能的依赖关系。rpm通常都是预先编译好的文件,它可能已经绑定到某种CPU或者发行版上面了。
tar 只是一种压缩文件格式,因此,它只是把文件压缩打包而已。tar通常包括编译脚本,能够在当前环境下编译,因此具备通用性。 若是你的包不想开放源代码,你能够制做成rpm,若是开源,用tar更方便了。 tar通常都是源码打包的软件,须要本身解包,而后进行安装三部曲,./configure, make, make install. 来安装软件。
通常来讲著名的linux系统基本上分两大类:
1.RedHat系列:Redhat、Centos、Fedora等 2.Debian系列:Debian、Ubuntu等
RedHat 系列
1 常见的安装包格式 rpm包,安装rpm包的命令是“rpm -参数” 2 包管理工具 yum 3 支持tar包
Debian系列
1 常见的安装包格式 deb包,安装deb包的命令是“dpkg -参数” 2 包管理工具 apt-get 3 支持tar包
apt-get 是一个下载安装软件包的简单命令行接口。 命令: update - 从新获取软件包列表 upgrade - 进行更新 install - 安装新的软件包 remove - 移除软件包 autoremove - 自动移除所有不使用的软件包 purge - 移除软件包和配置文件 source - 下载源码档案 build-dep - 为源码包配置编译依赖 dist-upgrade - 发行版升级 dselect-upgrade - 依照 dselect 的选择更新 clean - 清除下载的归档文件 autoclean - 清除旧的的已下载的归档文件 check - 检验是否有损坏的依赖 选项: -h 本帮助文件。 -q 输出到日志 - 无进展指示 -qq 不输出信息,错误除外 -d 仅下载 - 不安装或解压归档文件 -s 不实际安装。模拟执行命令 -y 假定对全部的询问选是,不提示 -f 尝试修正系统依赖损坏处 -m 若是归档没法定位,尝试继续 -u 同时显示更新软件包的列表 -b 获取源码包后编译 -V 显示详细的版本号 -c=? 阅读此配置文件 -o=? 设置自定的配置选项,如 -o dir::cache=/tmp
经常使用的命令:
apt-cache search packagename 搜索包 apt-cache show packagename 获取包的相关信息,如说明、大小、版本等 apt-get install packagename 安装包 apt-get install packagename --reinstall 从新安装包 apt-get -f install 修复安装”-f = –fix-missing” apt-get remove packagename 删除包 apt-get remove packagename --purge 删除包,包括删除配置文件等 apt-get update 更新源 apt-get upgrade 更新已安装的包 apt-get dist-upgrade 升级系统 apt-get dselect-upgrade 使用 dselect 升级 apt-cache depends packagename 了解使用依赖 apt-cache rdepends packagename 是查看该包被哪些包依赖 apt-get build-dep packagename 安装相关的编译环境 apt-get source packagename 下载该包的源代码 apt-get clean 清理无用的包 apt-get autoclean 清理无用的包 apt-get check 检查是否有损坏的依赖
注意事项:
update 是同步 /etc/apt/sources.list 和 /etc/apt/sources.list.d 中列出的源的索引,这样才能获取到最新的软件包。 upgrade 是升级已安装的全部软件包,升级以后的版本就是本地索引里的,所以,在执行 upgrade 以前必定要执行 update, 这样才能是最新的。 安装或升级系统分下面几个步骤: 第一步,得到最近的软件包的列表;列表中包含一些包的信息,好比这个包是否更新过。 第二步,若是这个包没有发布更新,就无论它;若是发布了更新,就把包下载到电脑上,并安装。 apt update对应的就是第一步。 apt upgrade 与apt dist-upgrade对应的是第二步。 因为包与包之间存在各类依赖关系。upgrade只是简单的更新包,无论这些依赖,它不和添加包,或是删除包。而dist-upgrade能够根据依赖关系的变化,添加包,删除包。 upgrade:系统将现有的Package升级,若是有相依性的问题,而此相依性须要安装其它新的Package或影响到其它Package的相依性时,此Package就不会被升级,会保留下来. dist-upgrade:能够聪明的解决相依性的问题,若是有相依性问题,须要安装/移除新的Package,就会试着去安装/移除它. (因此一般这个会被认为是有点风险的升级) apt-get upgrade 和 apt-get dist-upgrade 本质上是没有什么不一样的。只不过,dist-upgrade 会识别出当依赖关系改变的情形并做出处理,而upgrade对此情形不处理。 例如软件包 a 原先依赖 b c d,可是在源里面可能已经升级了,如今是 a 依赖 b c e。这种状况下,dist-upgrade 会删除 d 安装 e,并把 a 软件包升级,而 upgrade 会认为依赖关系改变而拒绝升级 a 软件包。
5、
sudo apt --fix-broken install
这个命令出来的时候通常是使用dpkg安装软件出现依赖或者源找不到的状况,会提示使用这个命令来解决依赖,删除半安装的软件,由于不使用这个软件使用 apt update或者apt upgrade将不能成功。