Попытка запустить рэкетную программу в виртуальном буфере кадров x

Я пытаюсь запустить программу ракетки "вселенная" в виртуальном буфере кадров 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

Любая идея, почему это может происходить?


person rmacnz    schedule 02.09.2016    source источник


Ответы (1)


Проблема здесь в том, что у вас не установлен libfontconfig, и Racket использует его для запуска программ с графическим интерфейсом.1

Linux-версия Racket опирается на кучу библиотек, если вы хотите использовать графику в Racket, но это не обязательно, если вы не планируете использовать какой-либо компонент графического интерфейса вашей программы. Если вы используете настольный Linux, у вас почти наверняка уже установлены библиотеки, но если вы работаете на сервере, это, вероятно, гораздо менее вероятно.

Вероятно, самый простой способ установить все необходимые библиотеки — просто установить рабочий стол Gnome. То, как вы это сделаете, будет отличаться в зависимости от вашего дистрибутива, но для Ubuntu это будет так:

sudo apt-get install ubuntu-gnome-desktop

А для CentOS это будет:

yum -y groups install "GNOME Desktop" 

(Вы также можете установить все библиотеки по одной, если не хотите устанавливать полную среду рабочего стола.)

1Я предполагаю, что ваша программа использует графические библиотеки. учитывая, что вы запускаете свою программу в Xvfb.

person Leif Andersen    schedule 02.09.2016