在 archlinux 上设置 X 服务器时 startx 错误

在 archlinux 上设置 X 服务器时 startx 错误

我正在尝试在我的 archlinux 家庭桌面上安装 X。尝试启动它时出现此错误(startx/xinit):

[root@computer ~]# startx
xauth: file /root/.Xauthority does not exist
xauth: file /root/.Xauthority does not exist

/usr/bin/X: /usr/lib/libz.so.1: version 'ZLIB_1.2.5.2' not found (required by /usr/lib/libfontenc.so.1)
xinit: giving up
xinit: unable to connect to X server: Connection refused
xinit: server error

我用谷歌搜索并在 #archlinux irc 中询问,但无法解决问题。

答案1

这就是我要做的:运行ldd /usr/bin/Xorg

您应该得到如下所示的一行:

libz.so.1 => /usr/lib/libz.so.1 (0xb7357000)

如果ldd声称无法解析文件libz.so.1所在内容,请卸载并重新安装zlib

pacman -R -f zlib 
pacman -S zlib

如果ldd可以找到特定的libz.so.1,则检查该文件是否构成损坏的符号链接:

ls -l /usr/lib/libz.so.1

(或者任何ldd告诉你libz.so.1解决的事情)。

在我的 Arch 盒子上,/usr/lib/libz.so.1有一个符号链接libz.so.1.2.6。如果/usr/lib/libz.so.1链接到一些奇怪的地方,例如主目录,请找出原因 - 这不应该发生。

确保ldd解析的任何文件libz.so.1实际存在并且具有内容。我明白了:

% file libz.so.1.2.6
libz.so.1.2.6: ELF 32-bit LSB shared object, Intel 80386, version 1 (SYSV), dynamically linked, BuildID[sha1]=0xb32fb568a025a99ed67220243b487b93ae8ef948, stripped

如果链接存在,但链接到的内容libz.so.1.2.6不存在,也许您可​​以执行pacman上面的两个命令序列并恢复所有内容。我想我建议不要只执行这两个pacman命令,直到您明白发生了什么。肯定有什么东西发生了变化,除非这是一个新的安装,并且不知何故该zlib软件包没有安装。

答案2

startx在终端中执行后,我收到了相同的错误消息。我通过pacman -Sy zlib更新了 zlib 包修复了它。这为我解决了。然而,我对 arch 很陌生,所以这可能不是最好的解决方案。

答案3

如果这zlib不是问题,那就是我的问题(根据 user14039 的评论进行扩展)。另外出于安全原因,最好以普通用户而不是 root 身份运行 X:

作为 sudo 或 root 用户,运行以下命令(用用户名替换您的用户名):

usermod -a -G audio,lp,optical,storage,video,wheel,games,power,scanner <username>

现在作为非 root 用户:

将骨架.xinitrc文件复制到您的主目录:

cp /etc/skel/.xinitrc ~/.xinitrc

取消注释或添加您要使用的窗口管理器的启动(我使用 Gnome):

echo "exec gnome-session" >> ~/.xinitrc

答案4

尝试这个

yum -y groups install "KDE Plasma Workspaces"

echo "exec startkde" >> ~/.xinitrc

最后

startx

相关内容