Xlib:在显示“:1”上缺少扩展名“XInputExtension”。Atom Ubuntu。

20

我有一个运行Ubuntu 16.04服务器的Amazon EC2实例。我安装了Atom,但由于某种原因无法启动Atom。每次我用命令行启动Atom时,都会看到以下内容:

Xlib:  extension "XInputExtension" missing on display ":1".

我使用 VNC 设置了 Ubuntu 桌面,现在使用 VNCviewer 访问桌面并启动 Atom。

我不确定我哪里做错了。我的 vncconfig 文件如下:

#!/bin/sh

# Uncomment the following two lines for normal desktop:
# unset SESSION_MANAGER
# exec /etc/X11/xinit/xinitrc

gnome-session &
gnome-panel &
gnome-settings-daemon &
metacity &
nautilus &
gnome-terminal &
[ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup
[ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources
xsetroot -solid grey
vncconfig -iconic &
x-terminal-emulator -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desktop" &
x-window-manager &
2个回答

20

如果您使用无界面虚拟机,这通常是一个不错的选择;

cd /usr/lib/x86_64-linux-gnu/
cp libxcb.so.1 libxcb.so.1.bak
sudo sed -i 's/BIG-REQUESTS/_IG-REQUESTS/' libxcb.so.1

它将修复所有出现相同错误的应用程序

原因:

引用此链接https://github.com/atom/atom/issues/4360#issuecomment-189942757 :

我看到了同样的错误消息,并将其调试到一个名为“BIG-REQUESTS”的X扩展中。您可以使用xtrace跟踪所有X流量,然后在崩溃之前看到8MB的消息。 我首先使用(xtrace -e)禁用了所有扩展程序,这起作用了。 我的最终黑客是将libxcb.so.1复制到 /usr/share/atom 中,在编辑器中打开,并将“BIG-REQUESTS”更改为“_IG-REQUESTS”。我认为当客户端库询问是否支持此扩展时,它将回答否,没有更多的大消息了。 希望这可以帮助到你


2
你能解释一下这些命令的作用吗?它执行查找/替换操作,将"BIG-REQUESTS"替换为"_IG-REQUESTS",但这意味着什么?libxcb.so.1的功能是什么? - craq
2
在没有任何解释的情况下对二进制文件进行打补丁是不好的。 - Ulrich Eckhardt
首先通过运行命令 strings /usr/lib/x86_64-linux-gnu/libxcb.so.1 | grep REQUEST 测试是否存在问题。 - JamesThomasMoon
在树莓派上,VS Code 1.15 版本完美运行。 - Sun Junwen
检查您的系统中是否存在符号链接文件。在Debian 16上,此修复导致在进行do-release-upgrade时出现后续投诉: /sbin/ldconfig.real: /usr/lib/x86_64-linux-gnu/libxcb.so.1不是符号链接。 - user1240935

3

尽管在命令提示符中仍然出现错误,但我能够启动atom。

感谢这位网友

这是我所做的。

sudo cp /usr/lib/x86_64-linux-gnu/libxcb.so.1 /opt/atom/

sudo sed -i 's/BIG-REQUESTS/_IG-REQUESTS/' libxcb.so.1

然后。
cd /opt/atom
./atom

这将输出为:

...

Xlib:  extension "XInputExtension" missing on display ":1".
Xlib:  extension "XInputExtension" missing on display ":1".
Xlib:  extension "XInputExtension" missing on display ":1".
bash: cannot set terminal process group (-1): Inappropriate ioctl for device
bash: no job control in this shell

但是 Atom 正常启动了!这正是我想要的。

也适用于我!谢谢。 - Cedric

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接