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

Aby*_*mes 6 linux arch-linux xorg libraries

我正在尝试在我的 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
Run Code Online (Sandbox Code Playgroud)

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

Bru*_*ger 7

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

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

libz.so.1 => /usr/lib/libz.so.1 (0xb7357000)
Run Code Online (Sandbox Code Playgroud)

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

pacman -R -f zlib 
pacman -S zlib
Run Code Online (Sandbox Code Playgroud)

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

ls -l /usr/lib/libz.so.1
Run Code Online (Sandbox Code Playgroud)

(或任何ldd告诉你的libz.so.1解决方案)。

在我的 Arch 盒子上,/usr/lib/libz.so.1libz.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
Run Code Online (Sandbox Code Playgroud)

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