2020-11-09 VSCode在Ubuntu+Snap下无法启动的解决

在Ubuntu的Snap下安装了VS Code无法启动

sudo apt install snapd
sudo snap install code --classic
mkdir ($id -u)
sudo mv ($id -u) /run/user/
code &
[1] 18060

安装snap和code以后,运行code毫无反应结束。

执行code verbose

执行code verbose如下,以后发现是X-Window打不开。详细内容请见附录。

code --verbose
...
Xlib:  extension "XInputExtension" missing on display ":1".
Xlib:  extension "XInputExtension" missing on display ":1".
[12192:1109/190657.768585:ERROR:electron_browser_main_parts.cc(200)] X IO error received (X server probably went away)

解决

参考这个帖子
Unable to open VS Code on Ubuntu VM instance on Google Cloud
https://github.com/microsoft/vscode/issues/86372

create the modified lib
mkdir ~/lib
cp /usr/lib/x86_64-linux-gnu/libxcb.so.1 ~/lib
sed -i 's/BIG-REQUESTS/_IG-REQUESTS/' ~/lib/libxcb.so.1
export LD_LIBRARY_PATH=$HOME/lib code #don't know if that's still necessary

unmount the snap so it can be modified and copy the modified lib into /usr/share/code/ --> then rebuild the snap and copy it back to its original location
sudo umount /snap/code/21
sudo unsquashfs /var/lib/snapd/snaps/code_21.snap
sudo cp '/home/ubuntu/lib/libxcb.so.1' /home/ubuntu/squashfs-root/usr/share/code/
sudo mksquashfs squashfs-root code_21.snap
sudo cp code_21.snap /var/lib/snapd/snaps/code_21.snap
sudo mount -t squashfs -o ro,nodev,relatime,x-gdu.hide /var/lib/snapd/snaps/code_21.snap /snap/code/21

附录:日志

$ code --verbose
[12192:1109/190657.487889:ERROR:appcenter_api.cc(52)] expecting appcenter url prefix
Xlib:  extension "XInputExtension" missing on display ":1".
Xlib:  extension "XInputExtension" missing on display ":1".
[12223:1109/190657.567112:ERROR:gl_surface_glx.cc(459)] GLX 1.3 or later is required.
[12223:1109/190657.567267:ERROR:gl_initializer_x11.cc(148)] GLSurfaceGLX::InitializeOneOff failed.
[12223:1109/190657.569496:ERROR:viz_main_impl.cc(152)] Exiting GPU process due to errors during initialization
Xlib:  extension "XInputExtension" missing on display ":1".
[90m[main 2020-11-09T11:06:57.687Z][0m Starting VS Code
[90m[main 2020-11-09T11:06:57.689Z][0m from: /snap/code/49/usr/share/code/resources/app
[90m[main 2020-11-09T11:06:57.689Z][0m args: {
  _: [],
  diff: false,
  add: false,
  goto: false,
  'new-window': false,
  'reuse-window': false,
  wait: false,
  help: false,
  'list-extensions': false,
  'show-versions': false,
  version: false,
  verbose: true,
  status: false,
  'prof-startup': false,
  'disable-extensions': false,
  'disable-gpu': false,
  telemetry: false,
  debugRenderer: false,
  logExtensionHostCommunication: false,
  'skip-release-notes': false,
  'disable-telemetry': false,
  'disable-updates': false,
  'disable-crash-reporter': false,
  'disable-user-env-probe': false,
  'skip-add-to-recently-opened': false,
  'unity-launch': false,
  'open-url': false,
  'file-write': false,
  'file-chmod': false,
  'driver-verbose': false,
  force: false,
  'do-not-sync': false,
  trace: false,
  'force-user-env': false,
  'open-devtools': false,
  'no-proxy-server': false,
  nolazy: false,
  'force-renderer-accessibility': false,
  'ignore-certificate-errors': false,
  'allow-insecure-localhost': false
}
[90m[main 2020-11-09T11:06:57.691Z][0m Resolving machine identifier...
[90m[main 2020-11-09T11:06:57.691Z][0m Resolved machine identifier: 35b2ebcf92f39956a12f824572a63b1f76ae328ca90809d444b861cb84f9cfbb
[90m[main 2020-11-09T11:06:57.711Z][0m update#setState idle
[90m[main 2020-11-09T11:06:57.717Z][0m [storage state.vscdb] open(/home/caros/.config/Code/User/globalStorage/state.vscdb, retryOnBusy: true)
[90m[main 2020-11-09T11:06:57.718Z][0m lifecycle (main): phase changed (value: 2)
[90m[main 2020-11-09T11:06:57.719Z][0m windowsManager#open
[90m[main 2020-11-09T11:06:57.720Z][0m windowsManager#open pathsToOpen [ [Object: null prototype] {} ]
[90m[main 2020-11-09T11:06:57.722Z][0m window#validateWindowState: validating window state on 1 display(s) {
  width: 1024,
  height: 768,
  mode: 1,
  x: 138,
  y: -34,
  hasDefaultState: true
}
[90m[main 2020-11-09T11:06:57.722Z][0m window#validateWindowState: 1 monitor working area { x: 0, y: 0, width: 1300, height: 674 }
[90m[main 2020-11-09T11:06:57.722Z][0m window#ctor: using window state {
  width: 1024,
  height: 674,
  mode: 1,
  x: 138,
  y: 0,
  hasDefaultState: true
}
Xlib:  extension "XInputExtension" missing on display ":1".
Xlib:  extension "XInputExtension" missing on display ":1".
[12192:1109/190657.768585:ERROR:electron_browser_main_parts.cc(200)] X IO error received (X server probably went away)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值