0Pricing
Linux Server Deployment & SSH Mastery · 课时

从源代码构建与使用 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.2

configure / 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 反馈 — 无需本地设置。

此课程中的所有课时

  1. APT 与 YUM 包管理器
  2. 安装与更新软件
  3. 管理软件仓库
  4. 从源代码构建与使用 Snap/Flatpak
← 返回 Linux Server Deployment & SSH Mastery