Appearance
Linux 系统有多种包管理器,它们根据不同的发行版和社区的选择而异。以下是一些常见的 Linux 包管理器:
1. 基于 DEB 包的包管理器
主要用于 Debian 及其衍生发行版,如 Ubuntu、Linux Mint 等。
- dpkg
- 低级别工具,用于直接管理
.deb包。 - 示例命令:
dpkg -i package.deb
- 低级别工具,用于直接管理
- APT (Advanced Package Tool)
- 高级包管理工具,依赖于
dpkg,支持自动解决依赖关系。 - 示例命令:sh
sudo apt update # 更新软件源 sudo apt install vim # 安装软件 sudo apt remove vim # 卸载软件 - Ubuntu 中的
apt-get和apt是常见工具。
- 高级包管理工具,依赖于
2. 基于 RPM 包的包管理器
主要用于 Red Hat 系统及其衍生版本,如 Fedora、CentOS、RHEL 等。
- RPM (Red Hat Package Manager)
- 低级别工具,用于直接管理
.rpm包。 - 示例命令:
rpm -ivh package.rpm
- 低级别工具,用于直接管理
- YUM (Yellowdog Updater, Modified)
- 高级包管理工具,依赖于
rpm,支持自动解决依赖关系。 - 示例命令:sh
sudo yum install vim sudo yum remove vim
- 高级包管理工具,依赖于
- DNF (Dandified Yum)
- YUM 的下一代替代方案,改进了性能,简化了依赖管理。
- Fedora 28、RHEL 8 等已改用
dnf。 - 示例命令:sh
sudo dnf install vim sudo dnf remove vim
3. 基于 Arch 的包管理器
主要用于 Arch Linux 及其衍生发行版,如 Manjaro、EndeavourOS 等。
- Pacman
- Arch Linux 的默认包管理器,简单高效。
- 示例命令:sh
sudo pacman -Syu # 更新系统 sudo pacman -S vim # 安装软件 sudo pacman -R vim # 卸载软件
- AUR 工具 (例如 yay、paru)
- 用于管理 Arch 用户社区 (AUR) 软件包。
- 示例命令:sh
yay -S package_name # 从 AUR 安装软件
4. 基于 Gentoo 的包管理器
主要用于 Gentoo Linux。
- Portage
- 源代码包管理器,使用
emerge命令。 - 示例命令:sh
sudo emerge --sync # 同步软件源 sudo emerge package_name # 安装软件
- 源代码包管理器,使用
5. 基于 SUSE 的包管理器
主要用于 openSUSE 和 SUSE Linux Enterprise 系统。
- zypper
- 高级包管理器,处理
.rpm包,功能类似于yum或dnf。 - 示例命令:sh
sudo zypper install vim sudo zypper remove vim
- 高级包管理器,处理
6. 独立发行版的包管理器
一些不依赖传统 DEB 或 RPM 格式的软件发行版有自己的包管理器:
- snap (Canonical 推出)
- 用于分发独立的跨发行版包。
- 示例命令:sh
sudo snap install package_name
- flatpak
- 通用二进制包管理器,类似 Snap。
- 示例命令:sh
flatpak install flathub package_name
- AppImage
- 并不算严格意义的包管理器,而是一种便携应用打包格式。
- 直接下载
.AppImage文件并运行即可。
- Nix (NixOS 包管理器)
- 强大的声明性包管理器。
- 示例命令:sh
nix-env -i package_name
7. 源码包管理器
适用于一些源码发行系统或需要通过源码编译的场景。
- Homebrew (Linuxbrew)
- 起初是 macOS 的包管理器,现在支持 Linux。
- 示例命令:sh
brew install package_name
- Conda
- 用于管理科学计算包,适用于 Anaconda 和 Miniconda 环境。
- 示例命令:sh
conda install package_name
总结
根据发行版和需求选择适合的包管理工具,例如:
- Debian/Ubuntu 系使用
apt或snap。 - RHEL/CentOS/Fedora 系使用
dnf或yum。 - Arch Linux 系使用
pacman和 AUR 辅助工具。 - 通用跨平台 可以选择
snap、flatpak或AppImage。
不同的包管理器有自己独特的优势,具体选择取决于操作系统及用户需求。