Não é possível executar o Sugar no Arch Linux devido ao PyGIWarning

1

Instalando o ambiente Sugar no Arch

Acabei de instalar um novo Arch Linux apenas para executar o Sugar .

Após fazer o download de sugar de AUR usando yaourt -S sugar , eu queria executar o Sugar usando sugar-runner , que era baixado com yaourt também.

Tudo deve ficar bem de acordo com o tutorial do wiki.archlinux.org .

Note que eu faço tudo a partir de um terminal, pois ainda não tenho nenhum ambiente gráfico.

Os logs

Estes são os registros que recebi depois de executar sugar-runner :

/usr/bin/sugar-runner:28: PyGIWarning: SugarRunner was imported without specifying a version first. Use gi.require_version('SugarRunner', '1.0') before import to ensure that the right version gets loaded.
  from gi.repository import SugarRunner

# The terminal wasn't printing for a few seconds here.

/usr/lib/xorg-server/Xorg.wrap: Only console users are allowed to run the X server
xinit: giving up
xinit: unable to connect to X server: Connection refused
xinit: server error

Eu tentei resolver isso ...

Pensei que poderia resolvê-lo fornecendo uma linha adicional para o /usr/bin/sugar-runner de acordo com a solução deste site .

Eu não consegui resolvê-lo dessa maneira.

Se eu escrever

gi.require_version('SugarRunner', '1.0')
from gi.repository import SugarRunner

Eu recebo NameError: name 'gi' is not defined

e se eu escrever

require_version('SugarRunner', '1.0')
from gi.repository import SugarRunner

Eu recebo NameError: name 'require_version' is not defined .

Você pode ver o código-fonte de sugar-runner em este repo .

Além disso, não sei o que está acontecendo com o X server e por que o xinit está desistindo .

Executando sugar-runner como raiz

Porque Xorg.wrap gritou comigo que

Only console users are allowed to run the X server

Eu decidi fazer o login como raiz e, em seguida, executar sugar-runner . Como resultado, recebi estas mensagens de log:

/usr/bin/sugar-runner:28: PyGIWarning: SugarRunner was imported without specifying a version first. Use gi.require_version('SugarRunner', '1.0') before import to ensure that the right version gets loaded.
  from gi.repository import SugarRunner


X.Org X Server 1.18.0
Release Date: 2015-11-09
X Protocol Version 11, Revision 0
Build Operating System: Linux 4.2.3-1-ARCH i686 
Current Operating System: Linux haejzer 4.2.5-1-ARCH #1 SMP PREEMPT Tue Oct 27 08:28:41 CET 2015 i686
Kernel command line: BOOT_IMAGE=/boot/vmlinuz-linux root=UUID=c296b0f7-dc8b-426d-9bc6-fc72db4c4673 rw quiet
Build Date: 18 November 2015  08:09:07AM

Current version of pixman: 0.32.8
    Before reporting problems, check http://wiki.x.org
    to make sure that you have the latest version.
Markers: (--) probed, (**) from config file, (==) default setting,
    (++) from command line, (!!) notice, (II) informational,
    (WW) warning, (EE) error, (NI) not implemented, (??) unknown.
(==) Log file: "/var/log/Xorg.99.log", Time: Sat Nov 28 20:01:34 2015
(==) Using system config directory "/usr/share/X11/xorg.conf.d"
/usr/libexec/sugar-runner/xinitrc:25: PyGIWarning: SugarRunner was imported without specifying a version first. Use gi.require_version('SugarRunner', '1.0') before import to ensure that the right version gets loaded.
  from gi.repository import SugarRunner
Traceback (most recent call last):
  File "/usr/libexec/sugar-runner/xinitrc", line 81, in <module>
    _setup_xdg_user_dirs()
  File "/usr/libexec/sugar-runner/xinitrc", line 77, in _setup_xdg_user_dirs
    subprocess.check_call("xdg-user-dirs-update")
  File "/usr/lib/python2.7/subprocess.py", line 535, in check_call
    retcode = call(*popenargs, **kwargs)
  File "/usr/lib/python2.7/subprocess.py", line 522, in call
    return Popen(*popenargs, **kwargs).wait()
  File "/usr/lib/python2.7/subprocess.py", line 710, in __init__
    errread, errwrite)
  File "/usr/lib/python2.7/subprocess.py", line 1335, in _execute_child
    raise child_exception
OSError: [Errno 2] No such file or directory
xinit: connection to X server lost

waiting for X server to shut down (II) Server terminated successfully (0). Closing log file.

Aqui está um link para o meu arquivo /var/log/Xorg.99.log : link .

Depois de instalar o xdg-user-dirs

Graças a sugestão da Wieland eu instalei o pacote xdg-user-dirs .

Posteriormente, os registros escritos por sugar-runner foram alterados:

/usr/libexec/sugar-runner/xinitrc:25: PyGIWarning: SugarRunner was imported without specifying a version first. Use gi.require_version('SugarRunner', '1.0') before import to ensure that the right version gets loaded.
  from gi.repository import SugarRunner
Traceback (most recent call last):
  File "/usr/libexec/sugar-runner/xinitrc", line 89, in <module>
    os.kill(int(os.environ["GNOME_KEYRING_PID"]), signal.SIGTERM)
  File "/usr/lib/python2.7/UserDict.py", line 23, in __getitem__
    raise KeyError(key)
KeyError: 'GNOME_KEYRING_PID'
xinit: connection to X server lost

Todo o arquivo de log: link
O vídeo que apresenta o bug: link

Você tem alguma ideia de como posso resolvê-lo?

Ou talvez você saiba como implantar o Sugar no Arch da maneira mais fácil?

    
por Mateusz Piotrowski 28.11.2015 / 21:50

1 resposta

1

Sugar tenta executar xdg-user-dirs-update :

File "/usr/libexec/sugar-runner/xinitrc", line 77, in _setup_xdg_user_dirs
  subprocess.check_call("xdg-user-dirs-update")

que você não tem. Instale o pacote xdg-user-dirs que o inclui.

/ edit: Para a sua nova mensagem de erro, você terá que esperar até que os caras do Sugar consertem isso, eles já têm um aberto puxe o pedido para ele.

    
por 28.11.2015 / 23:27