Kde

用於自己建構的 KDE 的 xsession

  • April 25, 2022

我正在嘗試做的事情:我正在嘗試從原始碼建構我自己的完整 KDE 並以我的普通使用者身份執行它,而無需從系統中更改它。問題:如果不將整個系統更改為始終只執行該軟體,我似乎無法執行我建構的軟體。

根據我從文件第 2.5.1 節的理解,這得到了很好的支持。kdesrc-build 將安裝一個登錄驅動程序,以便登錄管理器找到一個適當的設置來執行等離子會話,該會話執行在我的安裝前綴中建構的軟體。我無法開箱即用地完成這項工作——SDDM 不會看到已安裝的腳本,但我可以通過將plasma.desktopkdesrc-build 安裝的文件連結到我的 /usr/share/xsession 文件夾來輕鬆地工作。這讓 SDDM 可以看到我的會話。

不幸的是,這仍然無法執行我從原始碼建構的 KDE。這樣做的原因是,雖然這會從我建構的軟體啟動 init 序列,但啟動序列(如在 plasma/plasma-workspace/startkde/plasma-session/startup.cpp 及其朋友中)只會添加安裝前綴對於一開始的一些命令,所以它會執行我建構的 startkde 但很快它就會恢復到 from$PATH並且似乎沒有人設置該變數。在我看來,一些環境腳本應該這樣做(kde-env-master.sh 看起來是個不錯的候選者)

所以我作弊,安排登錄腳本設置$PATH為包含我建構的軟體的bin目錄。但這還不夠——我建構的二進製文件現在將嘗試從系統中載入庫,這些庫不是他們建構的對象。在 init 文件中有一些引用設置$LD_LIBRARY_PATH為包含我建構的 lib 所在的目錄,但出於安全原因$LD_LIBRARY_PATH,經常重置(實際上,一旦 init 序列刪除權限,就會發生這種情況),因此在環境腳本實際上被忽略了。

我可以設置我的 ldconfig 來查找我建構的這些庫——但這是系統範圍的,所以如果我這樣做,使用我的發行版安裝的穩定軟體執行的正常會話將嘗試使用我建構的庫,這充其量是危險的主意。

所有這些都表明我做錯了什麼,但我不知道是什麼。畢竟,文件說執行會話是正確的方法,kdesrc-build安裝登錄驅動程序,有文件可以將我建構的前綴中內置的環境設置為正確的目錄,所有這些似乎都很好地集成了但是當我嘗試這樣做我發現一個又一個問題,所以我只能假設我沒有做對。

我應該如何設置一個執行我定制的 KDE 的會話,而不影響我的發行版安裝的正常會話?

注意:在 Debian 測試和 kdesrc-build 20.06 上執行它

您必須執行

~/kde/build/plasma-workspace/login-sessions/install-sessions.sh

安裝您的 kde 建構會話:

https ://community.kde.org/Get_Involved/development#Plasma_Desktop

這可能是一個問題,仍然(對我而言)。如果遇到它們,請向 kde bugtracker 報告。

引用自:https://unix.stackexchange.com/questions/696970