我正在尝试在我的 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