apt-get命令

apt-get 命令 #

apt-get是 Debian 和基于 Debian 的 Linux 发行版(如 Ubuntu)中的包管理命令行工具,用于从认证源安装、升级和移除软件包,以及管理软件包的依赖关系。它是 APT(Advanced Package Tool)家族的一部分。

语法 #

apt-get [选项] 命令

常用命令 #

命令 描述
update 更新可用包列表
upgrade 升级已安装的包
dist-upgrade 智能升级系统,可以添加或删除包以解决依赖关系
install 安装包
remove 移除包,但保留配置文件
purge 移除包及其配置文件
autoremove 移除自动安装且不再需要的包
clean 清除本地仓库的所有包文件
autoclean 清除本地仓库中过时的包文件
check 验证依赖关系的完整性
download 下载包文件,但不安装
source 下载源代码包
build-dep 安装构建某个包所需的依赖

常用选项 #

选项 描述
-y, --yes, --assume-yes 自动回答是,不提示确认
-q, --quiet 静默输出
-v, --verbose 详细输出
-s, --simulate 模拟操作但不实际执行
-d, --download-only 仅下载,不安装
--no-install-recommends 不安装推荐的包
--install-suggests 安装建议的包
--no-upgrade 不升级已安装的包
--only-upgrade 只升级已安装的包
--allow-downgrades 允许降级包
--allow-unauthenticated 允许安装未认证的包
--fix-broken 修复损坏的依赖关系
--force-yes 强制执行,即使可能不安全(不推荐使用)
--print-uris 打印要下载的 URI,但不下载
--reinstall 重新安装已安装的包
--target-release 从特定发行版安装包

常见用法 #

1. 更新包索引 #

apt-get update

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

2. 升级已安装的包 #

apt-get upgrade

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

3. 智能升级系统 #

apt-get dist-upgrade

这将升级整个系统,必要时可以添加或删除包以解决依赖关系。

4. 安装包 #

apt-get install package_name

例如:

apt-get install nginx

5. 安装多个包 #

apt-get install package1 package2 package3

6. 安装特定版本的包 #

apt-get install package_name=version

例如:

apt-get install nginx=1.18.0-0ubuntu1

7. 移除包 #

apt-get remove package_name

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

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

apt-get purge package_name

或者:

apt-get remove --purge package_name

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

apt-get autoremove

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

10. 清理本地缓存 #

apt-get clean

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

11. 清理过时的包文件 #

apt-get autoclean

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

12. 下载包但不安装 #

apt-get download package_name

这将下载包文件到当前目录,但不安装。

13. 下载源代码包 #

apt-get source package_name

这将下载包的源代码到当前目录。

14. 安装构建依赖 #

apt-get build-dep package_name

这将安装构建指定包所需的所有依赖。

高级用法 #

1. 模拟安装 #

apt-get -s install package_name

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

2. 只下载不安装 #

apt-get -d install package_name

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

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

apt-get --fix-broken install

或简写为:

apt-get -f install

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

4. 不安装推荐的包 #

apt-get --no-install-recommends install package_name

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

5. 从特定发行版安装包 #

apt-get -t release_name install package_name

例如:

apt-get -t focal-backports install package_name

6. 重新安装包 #

apt-get --reinstall install package_name

这将重新安装已经安装的包。

7. 打印下载 URI 但不下载 #

apt-get --print-uris install 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/:下载的包文件缓存
  • /var/lib/apt/lists/:包索引文件

与 apt 的区别 #

apt-get 是较老的命令,主要设计用于脚本中使用,而 apt 是为终端用户设计的更友好的前端。apt-get 的特点:

  • 更稳定的接口,适合在脚本中使用
  • 提供更多的低级选项
  • apt-cache 和其他 APT 工具配合使用
  • 在某些情况下提供更精细的控制

提示 #

  • 在执行重要操作前,先运行 apt-get update 确保包索引是最新的
  • 使用 apt-get dist-upgrade 而不是 apt-get upgrade 可以确保所有包都得到更新
  • 定期运行 apt-get autoremove 可以清理系统中不再需要的包
  • 在服务器环境中,考虑使用 --no-install-recommends 选项减少安装的包数量
  • 在生产环境中执行重大更改前,使用 -s 选项模拟操作
  • 使用 /etc/apt/apt.conf.d/ 目录中的配置文件可以自定义 APT 行为
  • 对于自动化脚本,总是使用 -y 选项避免交互提示
  • 使用 apt-get check 可以定期检查系统的依赖关系完整性