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

我试图在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)

2 years ago

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

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

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

sudo apt-get install ubuntu-gnome-desktop

对于CentOS,它将是:

yum -y groups install "GNOME Desktop"

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

1我假设您的程序使用图形库 . 鉴于您在Xvfb中运行程序 .