如何从源码编译 GNOME Shell 和应用
创始人
2024-03-02 11:22:02
0

这是一篇如何从源码编译 GNOME 的快速指南,包括 Shell、mutter 和一些原生应用。

在编译之前,你需要确保一些事情,因为以下编译直接来自 Gitlab 的主分支,其中包含一些开发包。

通常,你可以选择在任何 Linux 发行版中编译。但是我建议使用 Fedora Rawhide(Fedora 的开发分支,用于将来的发布)。

另外,请勿在稳定系统中尝试此操作。因为操作可能出错,所以你可能最终得到损坏的系统。

总而言之,你需要以下内容来从源码编译 GNOME。

  • 测试环境(虚拟机 或测试系统)。
  • Fedora Rawhide 发行版(推荐,从此处下载)。
  • 确保你的发行版是最新的。
  • 你已登录 X.org 会话。

我不建议你在 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

Compile Mutter for GNOME

使用以下命令在构建完成时,将 mutter 安装在到系统中。

sudo ninja install -C _build

编译 GNOME Shell

GNOME Shell 和其他软件包的编译方法类似。首先,从 GitLab 克隆 GNOME Shell 主仓库,然后进行编译和安装。你可以按照下面的命令依次进行。

在 GNOME Shell 中,你需要两个依赖项。它们是 asciidocsassc 。请在构建 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。

Restart GNOME Shell (X11)

恭喜你! 你已经成功地编译了 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

  1. 使用上述步骤,你可以编译任何源码分支。不仅仅是 GNOME。
  2. GitLab 服务器有时很慢,克隆一个仓库可能需要较长的时间。如果 git clone 失败,我建议你再试一次。

结束语

我希望这个小小的高级教程能够帮助你在新的 GNOME 功能出现在 GNOME 每日构建系统之前尝试它。既然你编译了,你也可以为测试新的 GNOME 功能做出贡献,并在 GitLab 问题页面上报告任何特定包的 bug 或问题。

这篇文章是开源应用编译系列的第一篇文章。请继续关注更多开源应用的编译文章。

另外,请让我在下面的评论栏中知道你的评论、建议,或者你在使用这些说明时遇到的任何错误。

干杯。


via: https://www.debugpoint.com/2022/05/compile-gnome-source/

作者:Arindam 选题:lkxed 译者:geekpi 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

相关内容

Fedora 44正式版登...
备受期待的 Fedora 44 正式版系统已正式与用户见面,此次更...
2026-05-06 12:49:02
摩尔线程正式开源TileL...
据摩尔线程官微2月10日消息,近日,摩尔线程-U(688795.S...
2026-02-10 21:19:24
makefile基础与实战...
编译技术作为连接高级语言与机器执行的桥梁,其学习路径需要理论深度与...
2026-01-15 11:19:16
makefile基础与实战...
在软件工程实践中,C/C++ 因其高性能和底层控制能力,长期被用于...
2025-12-25 16:46:57
开源鸿蒙技术大会 2025...
IT之家 8 月 28 日消息,开源鸿蒙技术大会 2025 官宣将...
2025-08-28 18:44:41
华为仓颉编程语言首个 LT...
IT之家 7 月 1 日消息,华为仓颉编程语言首个 LTS 版本 ...
2025-07-01 21:12:49

热门资讯

“Linux 中国” 开源社区... 这是一个艰难的决定 —— 这不是调侃,而是当你真正做出改变了你十几年生活轨迹的决定时,你就会明白这个...
硬核观察 #1263 德国铁路... #1 德国铁路公司招聘 Windows for Workgroups 3.11 管理员该职位要求了解...
人工智能教程(七):Sciki... 在本系列的 上一篇文章 中,我们用 TensorFlow 构建了第一个神经网络,然后还通过 Kera...
关闭 WSL 中正在运行的 L... 以下是使用 WSL 关闭在 Windows 内运行的 Linux 系统的不同方法。你使用 WSL 在...
MX Linux 23.2 “... 最新的 MX Linux 23.2 小版本更新带来了基本的改进和新增功能。MX Linux 推出了 ...
硬核观察 #1262 网络上最... #1 网络上最古老的软件存档库之一即将关闭美国新墨西哥州立大学(NMSU)最近宣布,即将于 2024...
如何在 RHEL 上通过绑定配... 在 Linux 中,你可以根据自己的需要创建高级网络设置,如 网络绑定 Network Bondin...
Linux Matrix 消息... Matrix 用户可以升级 Fractal 6 了!Fractal 是目前 最好的 Matrix 客...
如何通过 VLC 使用字幕 使用 VLC 媒体播放器播放和管理字幕的新手指南。我是一个超级动漫迷,如果你想观看最新的剧集,那么你...
硬核观察 #1261 X 计划... #1 X 计划在奥斯汀建立内容审核总部据报道,该部门将招聘 100 名全职员工,将主要关注 CSE ...