mirror of
https://github.com/LCTT/TranslateProject.git
synced 2024-12-26 21:30:55 +08:00
162 lines
5.9 KiB
Markdown
162 lines
5.9 KiB
Markdown
[#]: subject: "Compile GNOME Shell and Apps From Source [Beginner’s Guide]"
|
||
[#]: via: "https://www.debugpoint.com/2022/05/compile-gnome-source/"
|
||
[#]: author: "Arindam https://www.debugpoint.com/author/admin1/"
|
||
[#]: collector: "lkxed"
|
||
[#]: translator: "geekpi"
|
||
[#]: reviewer: "wxy"
|
||
[#]: publisher: "wxy"
|
||
[#]: url: "https://linux.cn/article-14662-1.html"
|
||
|
||
如何从源码编译 GNOME Shell 和应用
|
||
======
|
||
|
||
![](https://img.linux.net.cn/data/attachment/album/202206/01/180518p98dt89wz7779tyb.jpg)
|
||
|
||
> 这是一篇如何从源码编译 GNOME 的快速指南,包括 Shell、mutter 和一些原生应用。
|
||
|
||
在编译之前,你需要确保一些事情,因为以下编译直接来自 Gitlab 的主分支,其中包含一些开发包。
|
||
|
||
通常,你可以选择在任何 Linux 发行版中编译。但是我建议使用 Fedora Rawhide(Fedora 的开发分支,用于将来的发布)。
|
||
|
||
另外,请勿在稳定系统中尝试此操作。因为操作可能出错,所以你可能最终得到损坏的系统。
|
||
|
||
总而言之,你需要以下内容来从源码编译 GNOME。
|
||
|
||
* 测试环境([虚拟机][1] 或测试系统)。
|
||
* Fedora Rawhide 发行版(推荐,[从此处下载][2])。
|
||
* 确保你的发行版是最新的。
|
||
* 你已登录 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][3]
|
||
|
||
使用以下命令在构建完成时,将 mutter 安装在到系统中。
|
||
|
||
```
|
||
sudo ninja install -C _build
|
||
```
|
||
|
||
#### 编译 GNOME Shell
|
||
|
||
GNOME Shell 和其他软件包的编译方法类似。首先,从 GitLab 克隆 GNOME Shell 主仓库,然后进行编译和安装。你可以按照下面的命令依次进行。
|
||
|
||
在 GNOME Shell 中,你需要两个依赖项。它们是 [asciidoc][4] 和 [sassc][5] 。请在构建 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)][6]
|
||
|
||
恭喜你! 你已经成功地编译了 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][a]
|
||
选题:[lkxed][b]
|
||
译者:[geekpi](https://github.com/geekpi)
|
||
校对:[wxy](https://github.com/wxy)
|
||
|
||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
|
||
|
||
[a]: https://www.debugpoint.com/author/admin1/
|
||
[b]: https://github.com/lkxed
|
||
[1]: https://www.debugpoint.com/tag/virtual-machine
|
||
[2]: https://dl.fedoraproject.org/pub/fedora/linux/development/rawhide/Workstation/x86_64/iso/
|
||
[3]: https://www.debugpoint.com/wp-content/uploads/2022/05/Compile-Mutter-for-GNOME.jpg
|
||
[4]: https://asciidoc.org/
|
||
[5]: https://github.com/sass/sassc
|
||
[6]: https://www.debugpoint.com/wp-content/uploads/2022/05/Restart-GNOME-Shell-X11.jpg
|