26. Display Managers
显示管理器是图形程序,用于启动图形显示(目前是X服务器),并为窗口管理器或桌面环境提供登录功能。
有许多显示管理器可用。其中一些比较知名的包括:GDM、KDM(已弃用)、LightDM、LXDM、Slim和SDDM。
在可用于Linux的桌面环境中,您可以找到:Enlightenment、GNOME、KDE、LXDE、LXQt和XFce。
选择显示管理器或桌面环境是非常主观的。选择取决于包的外观、所需的资源(内存和磁盘空间)以及包含的实用程序。
在本章中,介绍了一些显示管理器的安装说明。在本书的后面部分,您将找到其他的,它们作为某些桌面环境的一部分提供。
26.1 GDM-43.0
简介GDM
GDM is a system service that is responsible for providing graphical logins and managing local and remote displays.
已知此包可以使用LFS 11.3平台进行构建并正常工作。
包信息
-
下载 (HTTP): https://download.gnome.org/sources/gdm/43/gdm-43.0.tar.xz
-
下载 (FTP): ftp://ftp.acc.umu.se/pub/gnome/sources/gdm/43/gdm-43.0.tar.xz
-
下载MD5校验和: d9ca2abdf2359d0420dc71a1bd1d7530
-
下载大小: 812 KB
-
预计所需的磁盘空间: 33 MB
-
预计构建时间: 0.3 SBU
GDM 依赖
必要
AccountsService-22.08.8, GTK+-3.24.36, ISO Codes-4.12.0, itstool-2.0.7, libcanberra-0.30, libdaemon-0.14, 和 Linux-PAM-1.5.2
可选
运行时依赖
gnome-session-43.0, gnome-shell-43.3, 和 Systemd-252
用户笔记: https://wiki.linuxfromscratch.org/blfs/wiki/gdm
安装GDM
建议在gdm守护进程启动后,使用专门的用户和组来控制它。以root用户发出以下命令:
groupadd -g 21 gdm &&
useradd -c "GDM Daemon Owner" -d /var/lib/gdm -u 21 \
-g gdm -s /bin/false gdm &&
passwd -ql gdm
运行以下命令安装GDM:
mkdir build &&
cd build &&
meson --prefix=/usr \
--buildtype=release \
-Dgdm-xsession=true \
-Drun-dir=/run/gdm ..
ninja
这个包没有提供可用的测试套件。
现在,作为root用户:
ninja install
命令解释
--buildtype=release: 指定适合于包的稳定版本的构建类型,因为默认值可能会产生未优化的二进制文件。
-Dinitial-vt=7: 使用此开关使GDM从VT7开始,而不是第一个空闲的VT。
-Ddefault-pam-config=lfs: 如果没有创建/etc/lfs-release文件,请使用此开关,否则发行版自动检测将失败,您将无法使用GDM。
-Dgdm-xsession=true: 这将启用GDM Xsession文件的安装。
配置 GDM
配置文件
/etc/gdm/custom.conf
配置信息
GDM守护进程是通过/etc/gdm/custom.conf文件配置的。默认值存储在GSettings中的gdm.schemas文件中。建议最终用户修改/etc/gdm/custom.conf文件,因为当用户更新他们的系统以使用新版本的GDM时,schema文件可能会被覆盖。
Systemd单元
要在引导时启动gdm守护进程,以root用户运行以下命令启用之前安装的systemd单元:
systemctl enable gdm
内容
安装程序: gdm, gdmflexiserver, 和 gdm-screenshot
安装库: libgdm.so 和 pam_gdm.so (PAM模块)
安装目录: /etc/gdm, /usr/include/gdm, /usr/share/gdm, 和 /usr/share/help/*/gdm
简短描述
gdm 是GNOME的登录提示符。
gdm-screenshot 是GDM的截图工具。
26.2 lightdm-1.32.0
简介Lightdm
lightdm包包含一个基于GTK的轻量级显示管理器。
已知此包可以使用LFS 11.3平台进行构建并正常工作。
Lightdm 包信息
-
下载 (HTTP): https://github.com/CanonicalLtd/lightdm/releases/download/1.32.0/lightdm-1.32.0.tar.xz
-
下载MD5校验和: e62a5da6c35f612e4d9575eda5c8d467
-
下载大小: 508 KB
-
预计所需的磁盘空间: 20 MB
-
预计构建时间: 0.2 SBU
额外下载
注意
欢迎程序是一个显示图形登录屏幕的程序。有几个可选的问候器,但是gtk+包是参考实现。有关其他迎宾人员的名单,请参阅 https://en.wikipedia.org/wiki/LightDM.
-
下载MD5校验和: 373c73c67367df511eb544e09a2da281
-
下载大小: 569.7 KB
-
预计所需的磁盘空间: 5.5 MB
-
预计构建时间: 小于0.1 SBU
Lightdm 依赖
必要
Exo-4.18.0 (用于greeter), libgcrypt-1.10.1, itstool-2.0.7, Linux-PAM-1.5.2, 和 Xorg-Server-21.1.7 (运行时)
推荐
gobject-introspection-1.74.0, libxklavier-5.4, 和 Vala-0.56.4
可选
AccountsService-22.08.8 (运行时), at-spi2-core-2.46.0, GTK-Doc-1.33.2, Qt-5.15.8, libido, 和 libindicator
用户笔记: https://wiki.linuxfromscratch.org/blfs/wiki/lightdm
安装Lightdm
首先,创建一个专用的用户和组,以便在lightdm守护进程启动后控制它。以root用户发出以下命令:
groupadd -g 65 lightdm &&
useradd -c "Lightdm Daemon" \
-d /var/lib/lightdm \
-u 65 -g lightdm \
-s /bin/false lightdm
运行以下命令安装lightdm:
./configure --prefix=/usr \
--libexecdir=/usr/lib/lightdm \
--localstatedir=/var \
--sbindir=/usr/bin \
--sysconfdir=/etc \
--disable-static \
--disable-tests \
--with-greeter-user=lightdm \
--with-greeter-session=lightdm-gtk-greeter \
--docdir=/usr/share/doc/lightdm-1.32.0 &&
make
这个包没有附带测试套件。
现在,作为root用户:
make install &&
cp tests/src/lightdm-session /usr/bin &&
sed -i '1 s/sh/bash --login/' /usr/bin/lightdm-session &&
rm -rf /etc/init &&
install -v -dm755 -o lightdm -g lightdm /var/lib/lightdm &&
install -v -dm755 -o lightdm -g lightdm /var/lib/lightdm-data &&
install -v -dm755 -o lightdm -g lightdm /var/cache/lightdm &&
install -v -dm770 -o lightdm -g lightdm /var/log/lightdm
现在构建greeter:
tar -xf ../lightdm-gtk-greeter-2.0.8.tar.gz &&
cd lightdm-gtk-greeter-2.0.8 &&
./configure --prefix=/usr \
--libexecdir=/usr/lib/lightdm \
--sbindir=/usr/bin \
--sysconfdir=/etc \
--with-libxklavier \
--enable-kill-on-sigterm \
--disable-libido \
--disable-libindicator \
--disable-static \
--disable-maintainer-mode \
--docdir=/usr/share/doc/lightdm-gtk-greeter-2.0.8 &&
make
现在,作为root用户:
make install
注意
如果在/opt中安装了Xorg,则需要创建一个符号链接,以便lightdm能够找到Xorg服务器。作为root用户:
ln -sf /opt/xorg/bin/Xorg /usr/bin/X
命令解释
sed … /usr/bin/lightdm-session: 该命令确保通过问候源/etc/profile和~/.bash_profile进行初始登录。如果没有这个,依赖于不同环境变量的命令可能无法按预期工作。
配置 lightdm
配置文件
/etc/lightdm/{lightdm,users,keys}.conf
Systemd单元
安装blfs-systemd-units-20220720包中包含的lightdm.service单元:
make install-lightdm
有效 Sessions
根据所安装的窗口管理器和桌面环境,提示符提供了一个可用会话列表。该列表包括在/usr/share/xsessions下安装了相应的.desktop文件的会话。大多数窗口管理器和桌面环境都会自动提供这些文件,但如果有必要,您也可以包含自定义文件。
内容
安装程序: dm-tool, lightdm, 和 lightdm-gtk-greeter
安装库: liblightdm-gobject-1.so
安装目录: /etc/lightdm, /etc/apparmor.d, /usr/lib/lightdm, /usr/include/lightdm-gobject-1, /usr/share/help/C/lightdm /usr/share/gtk-doc/html/lightdm-gobject-1, /usr/share/doc/lightdm-gtk-greeter-2.0.8, /var/lib/lightdm, /var/lib/lightdm-data, /var/cache/lightdm, 和 /var/log/lightdm
简短描述
lightdm 是一个显示和登录管理器。
lightdm-gtk-greeter 是显示问候语的辅助进程,问候语是执行用户身份验证并启动所选窗口管理器或显示环境的图形用户界面。
26.3 lxdm-0.5.3
简介LXDM
LXDM是用于LXDE桌面的轻量级显示管理器。它还可以作为其他显示管理器(如GNOME的GDM或LightDM)的替代品。
已知此包可以使用LFS 11.3平台进行构建并正常工作。
注意
lxdm显示管理器不支持基于wayland的窗口管理器,如plasma-wayland或gnome-wayland。
包信息
-
下载 (HTTP): https://downloads.sourceforge.net/lxdm/lxdm-0.5.3.tar.xz
-
下载MD5校验和: 061caae432634e6db38bbdc84bc6ffa0
-
下载大小: 236 KB
-
预计所需的磁盘空间: 5.6 MB
-
预计构建时间: 小于0.1 SBU
LXDM 依赖
必要
GTK+-2.24.33, ISO Codes-4.12.0, 和 librsvg-2.54.5 (运行时,用于默认主题背景)
推荐
LXSession-0.5.5 (用于lxpolkit) 或 polkit-gnome-0.105
可选
用户笔记: https://wiki.linuxfromscratch.org/blfs/wiki/lxdm
安装LXDM
首先是一些修正。
cat > pam/lxdm << "EOF"
# Begin /etc/pam.d/lxdm
auth requisite pam_nologin.so
auth required pam_env.so
auth required pam_succeed_if.so uid >= 1000 quiet
auth include system-auth
account include system-account
password include system-password
session required pam_limits.so
session include system-session
# End /etc/pam.d/lxdm
EOF
sed -i 's:sysconfig/i18n:profile.d/i18n.sh:g' data/lxdm.in &&
sed -i 's:/etc/xprofile:/etc/profile:g' data/Xsession &&
sed -e 's/^bg/#&/' \
-e '/reset=1/ s/# //' \
-e 's/logou$/logout/' \
-e "/arg=/a arg=$XORG_PREFIX/bin/X" \
-i data/lxdm.conf.in
运行以下命令安装LXDM:
./configure --prefix=/usr \
--sysconfdir=/etc \
--with-pam \
--with-systemdsystemunitdir=/lib/systemd/system &&
make
这个包没有附带测试套件。
现在,作为root用户:
make install
命令解释
cat > pam/lxdm « “EOF” …: 将默认的/etc/pam.d/lxdm替换为适合BLFS的另一个。
sed -i … data/lxdm.conf.in: 对默认配置的修改:(1)将背景固定为默认背景;(2)在会话关闭时重启X;(3)输入错误;(4)包含XORG_PREFIX,它可能不同于/usr。
sed -i … data/Xsession: 根据BLFS标准,源文件为/etc/profile,而不是其他文件。
sed -i … data/lxdm.in: 为BLFS规范修复了greeter的区域设置。
--with-pam: 此参数启用pam身份验证。
配置 LXDM
配置文件
/etc/lxdm/lxdm.conf
Systemd单元
要在引导时启动LXDM,以root用户执行以下命令:
systemctl enable lxdm
配置信息
LXDM守护进程配置文件(/etc/lxdm/lxdm.conf)指定的选项包括numlock开/关、背景图像(bg)、会话等。您可以通过取消注释:session=/usr/bin/startlxde并将startlxde替换为您选择的会话来设置默认会话。对于GNOME, session=/usr/bin/gnome-session。对于OPENBOX, session=/usr/bin/openbox-session,对于XFCE, session=/usr/bin/startxfce4。
也可以通过为每个用户编辑~/.dmrc文件并添加以下内容来设置每个用户的首选会话:
[Desktop]
Session=xfce
您可以用代表您的用户的另一个图像替换问候屏幕中的默认虚拟脸。为此,复制或符号链接所需的图像到您的主目录,名称为.face。
Contents
安装程序: lxdm, lxdm-binary 和 lxdm-config
安装库: None
安装目录: /etc/lxdm 和 /usr/share/lxdm
简短描述
lxdm 是执行lxdm-binary的脚本。
lxdm-binary 是实际的显示管理器;需要使用选项-d来执行守护进程。
lxdm-config 是一个图形化自定义程序。