在Linux系统中,软件安装是日常使用和系统管理的重要环节,与Windows的.exe安装包不同,Linux的软件安装方式多样,包管理器、源码编译、Snap/Flatpak等工具各有特点,选择合适的安装方法不仅能提升效率,还能确保系统稳定,以下从不同场景出发,介绍Linux系统中常用的软件安装方式及推荐工具。

包管理器:系统级软件安装的首选
包管理器是Linux发行版的核心工具,负责自动下载、安装、更新和卸载软件,同时处理依赖关系,不同发行版采用不同的包管理器,主要分为两大类:基于Debian/Ubuntu的apt系列和基于RedHat/CentOS的yum/dnf系列。
Debian/Ubuntu系:apt与apt-get
apt(Advanced Package Tool)是Ubuntu等发行版的现代包管理器,命令简洁,功能强大,安装常用编辑器Vim只需输入:
sudo apt update && sudo apt install vim
apt会自动更新软件源列表,并解决依赖问题。apt还支持autoremove(自动清理无用依赖)、list(查看已安装软件)等便捷功能,对于习惯传统命令的用户,apt-get依然可用,但apt在交互性和易用性上更优。
RedHat/CentOS/Fedora系:yum与dnf
yum(Yellow Dog Updater Modified)曾是RedHat系列的主流工具,而dnf(Dandified Yum)作为其替代品,在性能和依赖解析上显著提升,以Fedora为例,安装GIMP图像编辑器:
sudo dnf install gimp
dnf支持模块化仓库管理,可轻松切换软件版本(如开发版或稳定版),还提供history命令用于回滚操作。
源码编译:定制化需求的解决方案
当需要获取最新软件版本、启用特定功能或修复发行版包管理器未包含的软件时,源码编译是常用选择,这种方式虽复杂,但灵活性极高。

以安装Nginx为例,步骤通常包括:
- 安装依赖:如
gcc、make、pcre-devel等开发工具库; - 下载源码:从官网或Git仓库获取源码包;
- 编译安装:
./configure --prefix=/usr/local/nginx --with-http_ssl_module make && sudo make install
编译过程中,可通过
./configure --help自定义模块(如添加http_v2_module支持HTTP/2),但需注意,源码编译可能因系统环境差异失败,且需手动更新维护,适合有经验的开发者。
Snap与Flatpak:跨发行版的通用方案
Linux发行版众多,不同系统的包格式不兼容,而Snap和Flatpak作为通用打包工具,解决了这一问题。
Snap:Canonical的统一方案
Snap由Ubuntu开发商Canonical推出,所有软件打包为“snap包”,包含依赖和运行时环境,可跨发行版使用,安装命令简单:
sudo snap install code --classic # 安装VS Code
Snap包通过沙箱机制运行,安全性高,且支持snap refresh一键更新,但缺点是包体积较大,且部分软件可能存在性能损耗。
Flatpak:社区驱动的开放标准
Flatpak由 freedesktop.org 项目推动,同样支持跨发行版,且更注重与系统集成的体验,安装前需先安装Flatpak运行时:

sudo flatpak install flathub com.spotify.Client # 安装Spotify
Flatpak包可直接访问系统文件(需手动授权),适合需要深度集成的应用(如GIMP、Krita),其软件中心“Flathub”收录了大量应用,生态日益完善。
图形化工具:适合新手的安装方式
对于不习惯命令行的用户,Linux发行版通常提供图形化软件中心,如Ubuntu的“软件”、Fedora的“GNOME Software”,这些工具支持分类浏览、搜索、评分和一键安装,界面直观,操作简单。
在Ubuntu软件中心搜索“Discord”,点击“安装”即可自动处理依赖,部分软件中心还支持付费应用和第三方源管理,兼顾易用性与功能性。
其他实用工具
- AppImage:便携式应用格式,无需安装,下载后赋予执行权限即可运行(如
./Krita.AppImage),适合临时使用或测试环境。 - Pip/Conda:Python生态的包管理器,用于安装Python库(如
pip install numpy),配合虚拟环境(venv或conda)可避免版本冲突。
Linux软件安装没有“万能方案”,需根据场景选择:系统级软件优先用包管理器,定制化需求选源码编译,跨发行版依赖Snap或Flatpak,新手则推荐图形化工具,掌握多种安装方式,能更高效地发挥Linux系统的灵活性与强大功能。




















