apt命令

apt 命令 #

apt(Advanced Package Tool)是 Debian 和基于 Debian 的 Linux 发行版(如 Ubuntu)中的包管理命令行工具。它是apt-getapt-cache等工具的高级前端,提供了更友好的界面和更现代的功能。

语法 #

apt [选项] 子命令

常用子命令 #

子命令 描述
update 更新可用包列表
upgrade 升级已安装的包
full-upgrade 升级包,必要时可以移除其他包(相当于apt-get dist-upgrade
install 安装包
remove 移除包
purge 移除包及其配置文件
autoremove 移除不再需要的自动安装的包
search 搜索包
show 显示包详细信息
list 列出包
edit-sources 编辑源列表文件
clean 清除本地仓库的检索文件
autoclean 清除本地仓库中过时的检索文件

常用选项 #

选项 描述
-y, --yes 自动回答是,不提示确认
-q, --quiet 静默输出
-v, --verbose 详细输出
-s, --simulate 模拟操作但不实际执行
--no-install-recommends 不安装推荐的包
--no-upgrade 不升级已安装的包
--only-upgrade 只升级已安装的包
--allow-downgrades 允许降级包
--fix-broken 修复损坏的依赖关系
-d, --download-only 仅下载,不安装

常见用法 #

1. 更新包索引 #

apt update

这将更新本地包索引,但不会安装或升级任何包。

2. 升级已安装的包 #

apt upgrade

这将升级所有已安装的包到最新版本,但不会移除任何包。

3. 完全升级系统 #

apt full-upgrade

这将升级整个系统,必要时可以移除一些包以解决依赖关系。

4. 安装包 #

apt install package_name

例如:

apt install nginx

5. 安装多个包 #

apt install package1 package2 package3

6. 安装特定版本的包 #

apt install package_name=version

例如:

apt install nginx=1.18.0-0ubuntu1

7. 移除包 #

apt remove package_name

这将移除包,但保留配置文件。

8. 完全移除包及其配置 #

apt purge package_name

或者:

apt remove --purge package_name

9. 移除不再需要的依赖 #

apt autoremove

这将移除那些最初是作为依赖项自动安装,但现在不再需要的包。

10. 搜索包 #

apt search keyword

例如:

apt search "web server"

11. 显示包信息 #

apt show package_name

例如:

apt show nginx

12. 列出已安装的包 #

apt list --installed

13. 列出可升级的包 #

apt list --upgradable

14. 清理本地缓存 #

apt clean

这将删除/var/cache/apt/archives/中的所有包文件。

15. 清理过时的包文件 #

apt autoclean

这将只删除那些不能再下载的包文件(过时的版本)。

高级用法 #

1. 模拟安装 #

apt -s install package_name

这将模拟安装过程,显示将会发生什么,但不会实际安装。

2. 只下载不安装 #

apt -d install package_name

这将下载包文件但不安装。

3. 修复损坏的依赖关系 #

apt --fix-broken install

这在安装过程中断后特别有用。

4. 不安装推荐的包 #

apt --no-install-recommends install package_name

这将只安装必要的依赖,不安装推荐的包。

5. 从特定仓库安装包 #

apt install -t repository_name package_name

例如:

apt install -t focal-backports package_name

6. 查看包的依赖关系 #

apt depends package_name

7. 查看哪些包依赖于特定包 #

apt rdepends package_name

配置文件 #

APT 的主要配置文件和目录:

  • /etc/apt/sources.list:主要的软件源列表
  • /etc/apt/sources.list.d/:附加软件源列表目录
  • /etc/apt/apt.conf:APT 配置文件
  • /etc/apt/apt.conf.d/:APT 配置目录
  • /etc/apt/preferences:包优先级配置
  • /var/cache/apt/archives/:下载的包文件缓存

与 apt-get 的区别 #

apt 命令是为终端用户设计的,而 apt-get 更适合在脚本中使用。apt 提供了:

  • 更简洁的命令(例如 apt update 而不是 apt-get update
  • 进度条和彩色输出
  • 自动显示可升级的包数量
  • 合并了 apt-getapt-cache 的常用功能

提示 #

  • 在执行重要操作前,先运行 apt update 确保包索引是最新的
  • 使用 apt full-upgrade 而不是 apt upgrade 可以确保所有包都得到更新
  • 定期运行 apt autoremove 可以清理系统中不再需要的包
  • 使用 apt list --installed | grep package_name 可以快速检查特定包是否已安装
  • 在服务器环境中,考虑使用 --no-install-recommends 选项减少安装的包数量
  • 使用 apt-mark 命令可以将包标记为手动或自动安装
  • 在生产环境中执行重大更改前,使用 -s 选项模拟操作
  • 使用 /etc/apt/apt.conf.d/ 目录中的配置文件可以自定义 APT 行为