如何从源码编译 GNOME Shell 和应用
这是一篇如何从源码编译 GNOME 的快速指南,包括 Shell、mutter 和一些原生应用。
在编译之前,你需要确保一些事情,因为以下编译直接来自 Gitlab 的主分支,其中包含一些开发包。
通常,你可以选择在任何 Linux 发行版中编译。但是我建议使用 Fedora Rawhide(Fedora 的开发分支,用于将来的发布)。
另外,请勿在稳定系统中尝试此操作。因为操作可能出错,所以你可能最终得到损坏的系统。
总而言之,你需要以下内容来从源码编译 GNOME。
我不建议你在 Wayland 会话中进行编译,因为你会遇到问题。
从源码编译 GNOME
GNOME 桌面是一个基于其功能的软件包集合。Linux 发行版的桌面组件工作于窗口管理器和 shell 之下。
因此,对于 GNOME,我将首先编译 mutter – 它是 GNOME Shell 的窗口管理器。然后进行 GNOME Shell 的编译。最后,我将编译一些原生应用。
我将使用 meson 构建系统进行编译。meson 是一个漂亮的构建系统,快速且用户友好。
编译 mutter
打开终端并安装 GNOME Shell 和 mutter 所需的软件包。
sudo dnf build-dep mutter gnome-shell
在主目录(或你想要的任何地方)中创建演示目录。
cd ~
mkdir demo
cd demo
从 Gitlab 克隆 mutter 的主分支。
git clone https://gitlab.gnome.org/GNOME/mutter
进入克隆目录,然后使用以下 meson
命令来准备构建文件。默认情况下,meson 使用 /usr/local
用于构建文件。但是,你也可以使用前缀开关将输出重定向到特定文件夹(如下所示)。
cd mutter
meson _build --prefix=/usr
使用以下命令在构建完成时,将 mutter 安装在到系统中。
sudo ninja install -C _build
编译 GNOME Shell
GNOME Shell 和其他软件包的编译方法类似。首先,从 GitLab 克隆 GNOME Shell 主仓库,然后进行编译和安装。你可以按照下面的命令依次进行。
在 GNOME Shell 中,你需要两个依赖项。它们是 asciidoc 和 sassc 。请在构建 GNOME Shell 之前安装它们。
sudo dnf install asciidoc
sudo dnf install sassc
安装完这些依赖项后,按照下面的命令来构建和安装 GNOME Shell。在运行这个命令之前,请确保你回到 demo
文件夹(我在第一步创建的)。
git clone https://gitlab.gnome.org/GNOME/gnome-shellcd gnome-shellmeson _build --prefix=/usrsudo ninja install -C _build
运行 GNOME Shell
编译完成后,你可以尝试重新启动 GNOME Shell 来查看来自主分支的变化。
在重启之前,正如我之前提到的,确保你处于 X.Org 会话中。按 ALT+F2
并输入 r
。然后按回车键。这个命令将重启 GNOME Shell。
恭喜你! 你已经成功地编译了 GNOME Shell 和 Mutter。
现在,是时候编译一些 GNOME 原生应用了。
编译 GNOME 原生应用
这些步骤对于 GNOME 或任何应用的所有源码都是一样的。你需要改变仓库的名字。因此,这里有一些编译必要的 GNOME 原生应用的命令示例。
Files(Nautilus)
git clone https://gitlab.gnome.org/GNOME/nautilus/cd gnome-shellmeson _build --prefix=/usrsudo ninja install -C _build
GNOME 软件商店
git clone https://gitlab.gnome.org/GNOME/gnome-software/cd gnome-shellmeson _build --prefix=/usrsudo ninja install -C _build
GNOME 控制中心
git clone https://gitlab.gnome.org/GNOME/gnome-control-center/cd gnome-shellmeson _build --prefix=/usrsudo ninja install -C _build
FAQ
- 使用上述步骤,你可以编译任何源码分支。不仅仅是 GNOME。
- GitLab 服务器有时很慢,克隆一个仓库可能需要较长的时间。如果
git clone
失败,我建议你再试一次。
结束语
我希望这个小小的高级教程能够帮助你在新的 GNOME 功能出现在 GNOME 每日构建系统之前尝试它。既然你编译了,你也可以为测试新的 GNOME 功能做出贡献,并在 GitLab 问题页面上报告任何特定包的 bug 或问题。
这篇文章是开源应用编译系列的第一篇文章。请继续关注更多开源应用的编译文章。
另外,请让我在下面的评论栏中知道你的评论、建议,或者你在使用这些说明时遇到的任何错误。
干杯。
via: https://www.debugpoint.com/2022/05/compile-gnome-source/