Ubuntu包管理工具
Ubuntu包管理工具
在Ubuntu系统中,包管理工具是管理软件包的核心工具,用于安装、更新、卸载和配置系统中的软件包。Ubuntu基于Debian,因此它主要使用Debian的包管理工具和软件包格式(.deb)。
1 dpkg
1.1 介绍
dpkg 是 Ubuntu 及其他基于 Debian 的发行版中用于管理 .deb 软件包的底层工具。与 APT 不同,dpkg 不会自动解决依赖关系,而是直接操作本地的 .deb 软件包文件。dpkg 是 APT 工具的基础,所有的 APT 命令最终都会调用 dpkg 来执行实际的软件包安装、卸载、配置等操作。
1.2 常用命令和示例
| 命令 | 作用 | 示例 | 
|---|---|---|
| dpkg -i <package.deb> | 安装指定的 .deb包。 | sudo dpkg -i google-chrome-stable_current_amd64.deb | 
| dpkg -r <package> | 卸载已安装的软件包,但保留配置文件。 | sudo dpkg -r google-chrome-stable | 
| dpkg --purge <package> | 完全卸载软件包并删除其所有配置文件。 | sudo dpkg --purge google-chrome-stable | 
| dpkg -l | 列出系统中所有已安装的软件包。 | dpkg -l | 
| dpkg -L <package> | 列出指定软件包安装的所有文件及其路径。 | dpkg -L google-chrome-stable | 
| dpkg -s <package> | 显示指定软件包的详细信息(如版本、状态、依赖等)。 | dpkg -s google-chrome-stable | 
| dpkg -S <file> | 查找系统中某个文件属于哪个软件包。 | dpkg -S /usr/bin/firefox | 
| dpkg -c <package.deb> | 列出 .deb包内包含的所有文件(不安装)。 | dpkg -c google-chrome-stable_current_amd64.deb | 
| dpkg -I <package.deb> | 显示 .deb包的元数据(如包名、版本、依赖等)。 | dpkg -I google-chrome-stable_current_amd64.deb | 
| dpkg --configure <package> | 配置已解压但未配置的软件包。 | sudo dpkg --configure google-chrome-stable | 
| dpkg --remove <package> | 移除软件包(等价于 -r,保留配置文件)。 | sudo dpkg --remove google-chrome-stable | 
| dpkg -x <package.deb> <dir> | 解压 .deb包到指定目录,而不安装。 | dpkg -x google-chrome-stable_current_amd64.deb ./extracted/ | 
1.2.1 安装
dpkg 可以直接安装本地的 .deb 包文件:
| 1 | dpkg -i package_name.deb | 
需要注意的是,dpkg -i 不会自动解决依赖关系。如果软件包依赖其他未安装的包,可能会遇到错误。
1.2.2 修复依赖
如果在使用 dpkg 安装软件包时出现了依赖错误,可以通过以下命令修复:
| 1 | apt --fix-broken install | 
此命令会尝试自动安装缺失的依赖项。
1.2.3 卸载
使用-r选项:
| 1 | dpkg -r package_name | 
要完全卸载一个软件包并删除所有相关的配置文件,可以使用以下命令:
| 1 | dpkg --purge package_name | 
1.2.4 列出已安装的包
使用-l选项,示例:
| 1 | root@VM-24-12-ubuntu:/home/ubuntu# dpkg -l | 
1.2.5 查看特定包
使用-s选项:
| 1 | root@VM-24-12-ubuntu:/home/ubuntu# dpkg -s apt | 
1.3 包安装的路径
使用 dpkg 安装的软件包通常会将文件分散安装在系统的多个目录中。以下是常见的安装位置:
- 可执行文件
可执行文件一般会被安装在以下目录:
- /usr/bin/
- /usr/sbin/
- /bin/
- /sbin/
- 库文件
库文件通常会被安装在以下目录:
- /usr/lib/
- /lib/
- /lib64/
- 配置文件
配置文件一般位于:
- /etc/
- 文档和说明文件
文档和帮助文件通常会安装在:
- /usr/share/doc/
- /usr/share/man/
- 其他资源文件
资源文件(如图片、语言包等)可能会安装在:
- /usr/share/
- 查看特定包的安装文件
可以使用 dpkg -L package-name 命令列出某个已安装包的所有文件路径:
| 1 | root@VM-24-12-ubuntu:/home/ubuntu# dpkg -L apt | 
2 apt
2.1 介绍
APT(Advanced Package Tool) 是 Ubuntu 中最常用的包管理工具,它提供了一组命令行工具,用于简化安装、升级和管理软件包的过程。APT 的核心功能依赖于 dpkg,但相比于 dpkg,APT 具备自动解决依赖关系的能力。
2.2 常用命令和示例
| 命令 | 作用 | 示例 | 
|---|---|---|
| apt update | 更新本地软件包列表,不实际安装或升级软件。 | sudo apt update | 
| apt upgrade | 升级所有已安装的软件包,更新到新版本,但不会自动移除或安装新包。 | sudo apt upgrade | 
| apt full-upgrade | 与 apt upgrade类似,但会自动处理依赖关系,可能移除一些软件包以进行完整升级。 | sudo apt full-upgrade | 
| apt install <package> | 安装指定的软件包。 | sudo apt install vim | 
| apt remove <package> | 卸载指定的软件包,但保留配置文件。 | sudo apt remove vim | 
| apt purge <package> | 完全卸载软件包并删除其配置文件。 | sudo apt purge vim | 
| apt autoremove | 自动删除系统中不再需要的依赖包和孤立包。 | sudo apt autoremove | 
| apt search <package> | 搜索可用的软件包。 | apt search nginx | 
| apt show <package> | 显示指定软件包的详细信息(如版本、依赖、描述等)。 | apt show nginx | 
| apt list --installed | 列出所有已安装的软件包。 | apt list --installed | 
| apt list --upgradable | 列出可以升级的软件包。 | apt list --upgradable | 
| apt clean | 清理本地缓存的下载包,释放磁盘空间。 | sudo apt clean | 
| apt edit-sources | 编辑软件源列表文件 /etc/apt/sources.list。 | sudo apt edit-sources | 
2.3 和apt-get的区别
apt 和 apt-get 都是 Ubuntu 和其他基于 Debian 的 Linux 发行版中用于包管理的命令行工具。尽管它们都属于 APT(Advanced Package Tool)系统的一部分,但它们有一些显著的区别,尤其是在使用体验和功能范围方面。
- apt-get是一个历史悠久的命令行工具,自从 Debian 早期版本以来就存在,用于管理软件包。它是更底层的包管理工具,提供了大量的功能和选项,主要面向高级用户和脚本编写。
- apt是在 Ubuntu 16.04 和 Debian 8 之后引入的一个更现代化的命令行工具,它简化了常见的包管理任务。- apt是对- apt-get和- apt-cache的一层封装,旨在提供一个更用户友好的命令集,适合日常使用。
命令对比:
| 操作 | apt-get命令 | apt命令 | 
|---|---|---|
| 更新软件包列表 | sudo apt-get update | sudo apt update | 
| 升级所有软件包 | sudo apt-get upgrade | sudo apt upgrade | 
| 智能升级(处理依赖) | sudo apt-get dist-upgrade | sudo apt full-upgrade | 
| 安装软件包 | sudo apt-get install <pkg> | sudo apt install <pkg> | 
| 删除软件包 | sudo apt-get remove <pkg> | sudo apt remove <pkg> | 
| 清理无用软件包 | sudo apt-get autoremove | sudo apt autoremove | 
| 搜索软件包 | apt-cache search <pkg> | apt search <pkg> | 
| 查看软件包信息 | apt-cache show <pkg> | apt show <pkg> | 
2.4 下载源
详见:[[sources.list和sources.list.d]]

