文章目录
基本概念
apt是什么?
apt (Advanced Package Tool) 是Debian系Linux系统的package管理工具。可以使用apt命令 安装、更新、删除或者查询安装包以及他们的依赖。APT 被移植成为 APT-RPM 来管理rpm 包格式。APT-RPM 可以被任何基于 RPM 的发行版使用,例如 Conectiva、Red Hat、SUSE、ALT-Linux 等。
Linux的几大分支
flowchart LR
Linux --> Debian系列
Debian系列 --> Debian
Debian系列 --> ubuntu
Linux --> Redhat系列
Redhat系列 --> RHEL:收费
Redhat系列 --> Centos:和RHEL基本一致不收费
Redhat系列 --> Fedora
Linux --> 国产麒麟
个人来说,最好用的是ubuntu,用于学习和测试。一个是UI不错,一个是可以安装在windows上。
企业不差钱的,会用RHEL。差钱的,Centos足够了。
apt apt-get?
apt 和 apt-get 都是用于处理包的命令行工具。apt-*的命令太多太复杂,于是乎有有了apt。
apt集成了最常用的三个命令apt-get、apt-cache 和 apt-config 中最常用命令选项的集合。
- apt 的大部分命令与 apt-get 类似,但您必须使用apt-cache进行搜索和显示命令。
- apt被设计为最终用户界面,其输出可能会在版本之间更改。
- apt包含来自更专业的 APT 工具(如apt-get和apt-cache )中最常用的命令和选项。
- 此外,apt 在输出中包含进度条和彩色文本以供交互式使用。
apt 命令的工作原理
apt 命令使用存储库来管理包。通常,预装 Ubuntu 的存储库足以满足大多数 Debian 软件包。 软件存储库本质上是文本文件中的 URL,这些URL存储在以下两个位置之一。
- 主要的 Ubuntu 存储库列表存储在 /etc/apt/sources.list. 在该文件中,您会发现 Ubuntu 的包管理器可以从中提取包的大量存储库。
- 此外,从 /etc/apt/sources.list.d/ 目录中读取扩展名为 .list 的文件,并且在您使用 apt 时也会使用。
存储库URL典型格式:
deb http://us.archive.ubuntu.com/ubuntu/ bionic main restricted
- 以空格分割,第一部分为deb 或者 deb-src。deb代表二进制文件,deb-src代表是源码。
- 第二部分是获取存储库的实际的URL。
- 第三部分 是发布版本的代号。上面的例子是bionic。
- 每个存储库行的第四部分是指组件,它引用存储库是否包含免费和开源的软件。组件可以是 main、restricted、universe 或 multiverse。
- 具有main组件的存储库包括官方支持的软件。这通常意味着软件包有可用的源代码,因此 Ubuntu 开发人员能够修复错误。
- 标记为restricted的软件仍受支持,但许可证可能有问题。
- Universe 代表为社区支持,
- multiverse 表示不受支持或者并非免费。
使用 apt 命令的示例
只有 root 用户或 sudo 用户才有执行apt命令的权限。apt 命令的基本语法是:
apt [options] command [package name]
1.使用apt命令安装包
可以使用此命令在系统中安装软件包。需要指定用于安装该软件包的软件包名称。
# apt install package_name
可以指定多个软件包来安装所有软件包。
# apt install package1 package2 package3
2.用apt命令删除一个包
要从系统中卸载软件包,可以使用remove命令后跟软件包名称。
# apt remove package_name
remove 命令不会删除配置文件。
可以使用purge 命令删除软件包及其配置文件。
# apt purge package_name
系统中的dpkg工具会记录软件包的状态:
Col1 | Col2 |
---|---|
not-installed | 未安装 |
config-files | 只有配置文件部署到系统中 |
half-installed | 安装已经开始,但并没有完成 |
unpacked | 部署包已经解压,但是未配置 |
half-configured | 正在配置中 |
triggers-awaited | 等待其他包 |
triggers-pending | 其他包已经触发 |
installed | 安装包已经完成 |
remove不会引起dpkg中记录的状态的改变。
3. apt 命令显示包详细信息
此命令打印指定包的详细信息。
# apt show package_name
4.使用apt命令搜索包
使用search命令在包的名称和描述中模式搜索。
# apt search pattern
5. 使用 apt 命令更新可用包列表
您可以使用此命令从配置的存储库中更新可用包的列表。update 参数用于从所有配置的源下载包信息。
# apt update
6.apt命令升级包
此命令通过sources.list将所有已安装的包及其依赖项升级到最新版本。如果需要满足依赖关系,将安装新包,但永远不会删除现有包。如果软件包的升级需要删除已安装的软件包,则不会执行此软件包的升级。
# apt upgrade
升级特定的包,可以指定包名
# apt upgrade package_name
7.使用apt命令查看可升级包列表
如果需要查看系统中可升级包的列表,可以使用以下命令。
# apt list --upgradable
8. 使用apt命令升级全系统
full-upgrade命令升级整个系统。在升级系统需要的情况下,它将安装/删除/升级软件包。
# apt full-upgrade
9. apt 命令删除未使用的包
在系统上安装新包时,会自动安装包依赖项。当您删除一个包时,这些依赖项将保留在系统上并且不再使用。要删除所有未使用的包和依赖项,可以使用以下命令。
# apt autoremove
10.使用apt命令列出所有包
可以使用以下命令查看适用于您的系统的所有软件包的列表。
# apt list
11.使用apt命令列出所有已安装的包
此命令可以帮助您获取系统上所有已安装软件包的列表。
# apt list --installed
要列出特定的包,可以通过grep筛选:
# apt list --installed | grep 包名
12.使用apt检查包的依赖关系
可以使用该命令打印指定包的依赖信息。
# apt depends package_name
13. 使用 apt 命令避免是/否提示
为了避免是/否提示并假设是,您可以使用-y选项。
14. 使用apt命令列出包的策略
可以将-a选项与list命令一起使用来列出特定包的策略。
# apt -a list package_name
15.apt命令编辑源信息文件
使用以下命令,编辑源信息文件/etc/apt/sources.list。
# apt edit-sources