Instalar o ubuntu-desktop não é suficiente. O problema é que, neste contexto, o programa é executado fora de um servidor X.
Você pode tentar declarar a variável DISPLAY antes de chamá-la, fazendo com que ela use seu servidor X (recém-instalado) ... mas você provavelmente terá problemas de permissão.
Isso seria parecido com: export DISPLAY=:0.0
, que é o padrão (mas não é definido quando você acessa o computador pelo console).
Você pode procurar aqui detalhes sobre o que é a variável DISPLAY e como configurá-la: O que é a variável de ambiente $ DISPLAY
EDIT: a partir de sua informação adicional na questão, parece que seu servidor está realmente usando "display 0", e então export DISPLAY=:0.0
deve funcionar. A razão pela qual isso não acontece provavelmente é devido aos direitos de acesso - você precisa logar no X para poder exibir qualquer coisa nele. Foi o que eu quis dizer ao falar sobre permissões.
Solução recomendada
Outra maneira (provavelmente melhor) de lidar com isso e que usei há muito tempo, é usar um servidor X virtual como o Xvfb ( link ) Ele age como um servidor X, mas não executa operações. Então seu aplicativo deve ficar feliz com isso. Na verdade, é um dos casos de uso listados na entrada da Wikipedia para ele.
Para usá-lo, você precisa fazer o seguinte:
sudo apt-get install xvfb
xvfb-run [your command]
Uma palavra de cautela: pode haver uma razão para seus programas quererem um servidor X. Pode precisar de algum nível de interação com o usuário e, se for esse o caso, não conseguir ver o que está acontecendo fará com que o programa seja inútil ...
Eu recomendaria procurar informações com o criador do programa ou com outros usuários deste programa, em vez da comunidade Ubuntu.