乐于分享
好东西不私藏

Linux软件的各种安装方式

Linux软件的各种安装方式

Linux系统的软件有多种安装方式,不同的发行版都有自己的安装命令,下面分别介绍。

apt

sudo apt install <软件名>

apt 从软件源(Sources)获取信息,智能地规划好需要安装的软件包列表,然后指挥底层的安装工 dpkg 去完成实际的解压和配置工作。它最大的价值在于把你从手动下载、分析和解决复杂依赖关系的繁琐劳动中彻底解放出来。

dpkg

sudo dpkg -i <软件包.deb>

更底层的安装工具,直接和 .deb 文件打交道,只专注于拆包和放置文件,不会自动处理依赖关系。如果出现依赖问题,可用如下命令尝试解决

sudo apt install –fix-broken

以上两个工具多用于Debian、Ubuntu及相关发行版中。

rpm

sudo rpm -ivh <软件包.rpm>

直接安装、查询、卸载本地的 .rpm 包,但不自动处理依赖关系。

yum

sudo yum install <软件名>

从远程仓库下载包,自动解决依赖,曾是 Fedora、RHEL、CentOS 的默认包管理器。          

dnf

sudo dnf install <软件名>

拥有更先进的依赖解析算法、性能更好、内存占用更低,从 Fedora 22、RHEL 8、CentOS 8 起成为默认包管理器。

zypper

sudo zypper install <软件名>

zypper 是 openSUSE 发行版(以及 SUSE Linux Enterprise)的命令行包管理器,它基于 libzypp 库,用于管理 RPM 格式的软件包。它本身就是一个完整的包管理工具,既充当了底层安装器,又实现了上层依赖管理。

pacman

sudo pacman -S <软件名>

pacman 是 Arch Linux 的包管理器,它遵循 Arch 的 KISS(Keep It Simple, Stupid) 原则,设计简洁、高效,使用 .pkg.tar.zst 格式的二进制包。pacman 会处理软件包之间的依赖关系,但默认不会安装“可选依赖”(例如安装一个桌面环境时,你需要手动选择安装哪些可选组件)。

flatpak

flatpak install flathub <应用ID>

Flatpak通过将应用程序与操作系统核心之外的依赖库打包在一起(或者共享运行时),创建了一个沙盒环境,旨在让 Linux 软件生态更统一、更安全、更新更快。 这意味着开发者只需要打一个 Flatpak 包,这个包就能在几乎所有支持 Flatpak 的主流 Linux 系统上运行,无论底层是哪个发行版。

snap

sudo snap install <软件名>

Snap 是由 Canonical(Ubuntu 的母公司)主导开发的一种跨 Linux 发行版的软件包格式和运行时隔离机制。它的核心目标是实现“一次打包,到处运行”,并从根本上解决 Linux 生态中长期存在的两个痛点:依赖地狱和应用隔离。

AppImage

这是一个包格式,它的核心思想是“直接运行”,力求做到下载后、赋予执行权限,就能直接运行,无需安装,也不会影响系统其他部分。

Snap、Flatpak、AppImage这三种格式都是为了解决传统包管理的“依赖地狱”和应用分发碎片化问题而生的“应用级”解决方案,但它们走了三条不同的路:

Snap 像一个“全能选手”,强调自动化和集成。它的自动更新和严格沙盒(默认对系统资源访问受限)很适合对安全性和版本有要求的服务器或桌面应用,但在非 Ubuntu 系统上需要额外安装 snapd 服务。

Flatpak 像一位“桌面专家”,专注于为 Linux 桌面提供更好的体验。它的权限控制非常精细(例如,你可以只允许应用访问特定文件夹),并且与 GNOME 软件中心等桌面应用商店深度集成,使用体验流畅。

AppImage 则是一个“独行侠”,追求极致的简洁与便携。它“下载即用,删除即焚”的特性,让你能轻松尝试各种新奇软件,不用担心系统被搞乱,非常适合临时工具、测试版软件或绿色软件。

除了使用以上方式安装,也可以通过源码自己编译安装,只不过这种方式有一定难度。

./configure && make && sudo make install