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
可以定期检查系统的依赖关系完整性