从源代码构建与使用 Snap/Flatpak
超越系统包管理器:在没有现成软件包时从源代码编译软件,并使用 Snap 和 Flatpak 等通用包格式,独立于发行版的软件仓库安装现代应用。
从源代码构建与使用 Snap/Flatpak 是 CoddyKit 上的免费 Linux Server Deployment & SSH Mastery 课时。 这是第 4 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 Linux Server Deployment & SSH Mastery 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 Linux Server Deployment & SSH Mastery 课程共包含 4 节课。
包管理器无法满足需求时
APT 和 YUM 可以满足大多数需求,但有时某个工具没有打包、软件仓库中的版本过旧,或者您需要特定版本。在这些情况下,您有两个选择:
- 从源代码编译软件
- 使用 Snap 或 Flatpak 这样的通用软件包格式
本课将介绍这两种方式。
准备构建工具
编译需要一套工具链:编译器、make 和开发库。在 Debian/Ubuntu 上,build-essential 元软件包会安装基本组件。
sudo apt install build-essential
# RHEL/Fedora:
sudo dnf groupinstall 'Development Tools'获取源代码
源代码通常以压缩 tar 包或 git 仓库的形式提供。请下载并解压,然后进入相应目录。
wget https://example.com/tool-1.2.tar.gz
tar -xzf tool-1.2.tar.gz
cd tool-1.2configure / make / install 流程
经典的 GNU 构建流程包含三个步骤:
./configure— 检查您的系统并准备构建make— 编译代码sudo make install— 将二进制文件复制到目标位置
这种模式已有数十年历史,至今仍很常见。
./configure
make
sudo make install选择安装前缀
软件默认会安装到 /usr/local。您可以使用 --prefix 更改安装位置,使其保持隔离,从而便于清理。
安装到您的主目录可以完全避免使用 root 权限。
./configure --prefix=/opt/tool
make
sudo make install处理缺失的依赖项
如果 ./configure 因缺少库而停止并报错,请安装匹配的-dev 软件包。开发软件包提供源代码编译所需的头文件。
sudo apt install libssl-dev zlib1g-dev
./configure卸载源代码构建的软件
从源代码安装的缺点是没有自动卸载功能。如果项目支持,请在构建目录中运行 make uninstall。否则,使用隔离的 --prefix 后,直接删除相应文件夹即可。
sudo make uninstall
# or, if you used --prefix=/opt/tool:
sudo rm -rf /opt/tool通用软件包:Snap
Snap 软件包会将应用及其依赖项打包在一起,因此可以在任何安装了 snapd 的发行版上运行。它们会自动更新,并且在沙箱中运行。
sudo snap install htop
snap list
sudo snap remove htop通用软件包:Flatpak
Flatpak 是另一种通用格式,广受桌面应用欢迎,并通过 Flathub 这样的远程仓库分发。添加一次远程仓库后,就可以按应用 ID 安装。
flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
flatpak install flathub org.gimp.GIMP
flatpak run org.gimp.GIMP选择合适的方法
请选择适合您需求的方法:
- APT/YUM — 默认方式,集成性最好,支持自动更新
- Snap/Flatpak — 版本较新,跨发行版,运行于沙箱中
- 源代码 — 未打包软件或自定义构建的最后选择
请优先使用软件包,仅在必要时从源代码构建。
最佳实践
在包管理器之外安全地安装软件:
- 配置前始终先安装构建依赖
- 使用干净的
--prefix,以便日后移除源代码构建的软件 - 验证下载文件的校验和或签名
- 如果存在受维护的软件包,请优先选择 Snap/Flatpak,而不是源代码
快速检查
测试您对软件安装的掌握情况。
回顾
现在,您已经可以安装标准软件源之外的软件:
- 从源代码安装:
./configure→make→make install,并使用--prefix实现隔离 - Snap:使用
snap install安装自包含且自动更新的应用 - Flatpak:使用 Flathub 远程仓库和应用 ID
只有在 APT/YUM 无法提供您所需的软件时,才使用这些方式。
常见问题解答
「从源代码构建与使用 Snap/Flatpak」课时是免费的吗?
是的 — 「从源代码构建与使用 Snap/Flatpak」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 Linux Server Deployment & SSH Mastery 课程的其余内容,请升级到 CoddyKit PRO。 Linux Server Deployment & SSH Mastery 课程共包含 4 节课。
「从源代码构建与使用 Snap/Flatpak」这节课中我会学到什么?
超越系统包管理器:在没有现成软件包时从源代码编译软件,并使用 Snap 和 Flatpak 等通用包格式,独立于发行版的软件仓库安装现代应用。 你通过在浏览器中直接运行的动手代码来练习 Linux Server Deployment & SSH Mastery,全天候 AI 导师会在你学习这节课的过程中回答你的问题。
学习 Linux Server Deployment & SSH Mastery 需要有经验吗?
无需任何先前经验。CoddyKit 上的 Linux Server Deployment & SSH Mastery 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 4 节课,共 4 节。
「从源代码构建与使用 Snap/Flatpak」课时需要多长时间?
大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。
我能在这节 Linux Server Deployment & SSH Mastery 课中编写并运行代码吗?
能。每节 Linux Server Deployment & SSH Mastery 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。
此课程中的所有课时
- APT 与 YUM 包管理器
- 安装与更新软件
- 管理软件仓库
- 从源代码构建与使用 Snap/Flatpak