如何從源碼編譯 GNOME Shell 和應用
在編譯之前,你需要確保一些事情,因為以下編譯直接來自 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/
作者:Arindam 選題:lkxed 譯者:geekpi 校對:wxy
本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive