Linux中國

如何從源碼編譯 GNOME Shell 和應用

這是一篇如何從源碼編譯 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中國 榮譽推出


本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive

對這篇文章感覺如何?

太棒了
0
不錯
0
愛死了
0
不太好
0
感覺很糟
0
雨落清風。心向陽

    You may also like

    Leave a reply

    您的郵箱地址不會被公開。 必填項已用 * 標註

    此站點使用Akismet來減少垃圾評論。了解我們如何處理您的評論數據

    More in:Linux中國