尝试在x虚拟帧缓冲区上运行racket程序

时间:2016-09-02 18:51:16

标签: linux graphics racket xvfb universe

我试图打一个球拍"宇宙"在x虚拟帧缓冲区上编程,我不断收到此错误:

ffi-lib: couldn't open "libfontconfig.so.1" (libfontconfig.so.1: cannot open shared object file: No such file or directory)
  context...:
   /usr/share/racket/pkgs/draw-lib/racket/draw/unsafe/cairo-lib.rkt: [running body]
   /usr/share/racket/pkgs/draw-lib/racket/draw/unsafe/cairo.rkt: [traversing imports]
   /usr/share/racket/pkgs/draw-lib/racket/draw/unsafe/pango.rkt: [traversing imports]
   /usr/share/racket/pkgs/draw-lib/racket/draw/private/font.rkt: [traversing imports]
   /usr/share/racket/pkgs/draw-lib/racket/draw/private/contract.rkt: [traversing imports]
   /usr/share/racket/pkgs/draw-lib/racket/draw.rkt: [traversing imports]

我正在运行的命令是xvfb-run racket myprogram.rkt

知道为什么会这样吗?

1 个答案:

答案 0 :(得分:0)

这里的问题是你没有安装libfontconfig,而且Racket依赖它来运行gui程序。 1

如果你想在Racket中使用图形,那么Racket的Linux版本依赖于一堆库,但如果不打算在程序中使用任何gui组件,则不一定如此。如果你正在运行桌面Linux,你几乎肯定已经安装了库,但如果你在服务器上它可能不太可能。

安装所有库所需的最简单方法可能就是安装Gnome桌面。你这样做的方式因你的发行版而异,但对于ubuntu,它将是:

sudo apt-get install ubuntu-gnome-desktop

对于CentOS,它将是:

yum -y groups install "GNOME Desktop" 

(如果您不想安装完整的桌面环境,也可以一次安装所有库。)

1 我认为你的程序使用图形库。鉴于您在Xvfb中运行程序。