Redian新闻
>
如何从源码编译 GNOME Shell 和应用 | Linux 中国

如何从源码编译 GNOME Shell 和应用 | Linux 中国

科技
 
导读:这是一篇如何从源码编译 GNOME 的快速指南,包括 Shell、mutter 和一些原生应用。   
本文字数:2708,阅读时长大约:3分钟

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

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

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

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

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

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

我不建议你在 Wayland 会话中进行编译,因为你会遇到问题。

从源码编译 GNOME

GNOME 桌面是一个基于其功能的软件包集合。Linux 发行版的桌面组件工作于窗口管理器和 shell 之下。

因此,对于 GNOME,我将首先编译 mutter – 它是 GNOME Shell 的窗口管理器。然后进行 GNOME Shell 的编译。最后,我将编译一些原生应用。

我将使用 meson 构建系统进行编译。meson 是一个漂亮的构建系统,快速且用户友好。

编译 mutter

打开终端并安装 GNOME Shell 和 mutter 所需的软件包。

  1. sudo dnf build-dep mutter gnome-shell

在主目录(或你想要的任何地方)中创建演示目录。

  1. cd ~
  2. mkdir demo
  3. cd demo

从 Gitlab 克隆 mutter 的主分支。

  1. git clone https://gitlab.gnome.org/GNOME/mutter

进入克隆目录,然后使用以下 meson 命令来准备构建文件。默认情况下,meson 使用 /usr/local 用于构建文件。但是,你也可以使用前缀开关将输出重定向到特定文件夹(如下所示)。

  1. cd mutter
  2. meson _build --prefix=/usr

Compile Mutter for GNOME

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

  1. sudo ninja install -C _build

编译 GNOME Shell

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

在 GNOME Shell 中,你需要两个依赖项。它们是 asciidoc🔗 asciidoc.org 和 sassc🔗 github.com 。请在构建 GNOME Shell 之前安装它们。

  1. sudo dnf install asciidoc
  2. sudo dnf install sassc

安装完这些依赖项后,按照下面的命令来构建和安装 GNOME Shell。在运行这个命令之前,请确保你回到 demo 文件夹(我在第一步创建的)。

  1. git clone https://gitlab.gnome.org/GNOME/gnome-shellcd gnome-shellmeson _build --prefix=/usrsudo ninja install -C _build

运行 GNOME Shell

编译完成后,你可以尝试重新启动 GNOME Shell 来查看来自主分支的变化。

在重启之前,正如我之前提到的,确保你处于 X.Org🔗 X.Org 会话中。按 ALT+F2 并输入 r。然后按回车键。这个命令将重启 GNOME Shell。

Restart GNOME Shell (X11)

恭喜你! 你已经成功地编译了 GNOME Shell 和 Mutter。

现在,是时候编译一些 GNOME 原生应用了。

编译 GNOME 原生应用

这些步骤对于 GNOME 或任何应用的所有源码都是一样的。你需要改变仓库的名字。因此,这里有一些编译必要的 GNOME 原生应用的命令示例。

Files(Nautilus)

  1. git clone https://gitlab.gnome.org/GNOME/nautilus/cd gnome-shellmeson _build --prefix=/usrsudo ninja install -C _build

GNOME 软件商店

  1. git clone https://gitlab.gnome.org/GNOME/gnome-software/cd gnome-shellmeson _build --prefix=/usrsudo ninja install -C _build

GNOME 控制中心

  1. 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中国 荣誉推出


LCTT 译者 :geekpi
💎💎💎💎
翻译: 1697.5 篇
|
贡献: 3141 天
2013-10-25
2022-06-01
https://linux.cn/lctt/geekpi
欢迎遵照 CC-BY-SA 协议规定转载,
如需转载,请在文章下留言 “转载:公众号名称”,
我们将为您添加白名单,授权“转载文章时可以修改”。


微信扫码关注该文公众号作者

戳这里提交新闻线索和高质量文章给我们。
相关阅读
编译代码时动态地链接库 | Linux 中国Chinese Men Still Get a Pass on Domestic Labor. Even From Women.Collision:用于验证 ISO 和其他文件的 Linux 应用 | Linux 中国如何把你的 GNOME 42 打磨得更精致 | Linux 中国State Media Criticizes Chengdu Shop Signs in Romanized ChineseNushell: 一个让你更清楚地了解错误信息的跨平台 Shell | Linux 中国在 Linux 上使用 Bash 创建一个临时文件 | Linux 中国封城抢菜现象在 Ubuntu Linux 如何安装 H.264 解码器 | Linux 中国Chinese Cities Cautiously Welcome Travelers From Shanghai我如何在 Linux 上扫描家庭照片 | Linux 中国全球深层政府和乌克兰战事啥?San Jose又批准了6个新的Homeless Shelter?移动版 GNOME Shell:希望之始,期望满满 | Linux 中国硬核观察 #683 不值得使用 -O3 来编译 Linux 内核有了扩展,GNOME Web 正逐渐成为 Linux 桌面上一个有吸引力的选择 | Linux 中国林黛:厄瓜多尔,我们来了---- 在圣卡鲁斯岛(Santa Cruz)看巨龟如何在 Linux 和 Windows 电脑之间共享文件 | Linux 中国Linux Mint 接管 Timeshift 备份工具的开发,并作为一款 XApp 来维护 | Linux 中国Linux Lite 6.0 发布:弃用 Firefox,默认浏览器使用 Chrome | Linux 中国手把手教你使用 GNU 调试器 | Linux 中国如何在 Linux 桌面中启用 “激活 Linux” 水印通知 | Linux 中国GNOME 新终端程序尝鲜 | Linux 中国Archinstall 新的菜单系统让安装 Arch Linux 更容易了 | Linux 中国GNOME 43 中 Nautilus 文件管理器的 6 个新变化 | Linux 中国春鸭图修复 Ubuntu Linux 中 “Command ‘python’ not found” 的错误 | Linux 中国诺基亚勒令一个开源 Linux 手机项目 “NOTKIA” 改名字 | Linux 中国Manjaro 21.3.0 Ruah 发布:增加了最新的 Calmares 3.2、GNOME 42 | Linux 中国Linux —— 用于自动监控磁盘使用情况的 Shell 脚本GNU C 编译器的程序员入门指南 | Linux 中国Ubuntu 22.04 LTS 中安装经典 GNOME Flashback 指南 | Linux 中国GNOME 新文本编辑器尝鲜 | Linux 中国如何从 Windows 上用 SSH 连接到 Linux | Linux 中国日俄战争不是为了争夺东北的控制权还能为了什么?
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。