Creé un usuario desde consola en mi Ubuntu Destkop 14.04 LTS, haciendo esto:
sudo addgroup hadoop
sudo adduser --ingroup hadoop hduser
Utilicé ese usuario para hacer todo tipo de cosas, porque lo estoy usando para hacer algunas cosas de programación relacionadas con hadoop, así que sé que funciona bien,siempre usándolo desde la consola y ejecutando cosas sin una GUI. Y quiero abrir, con este usuario, un Eclipse (Luna), entonces hago esto:
su hduser
cd /opt/eclipse
./eclipse
Pero me tira un error:
!MESSAGE Application error
!STACK 1
org.eclipse.swt.SWTError: No more handles [gtk_init_check() failed]
at org.eclipse.swt.SWT.error(SWT.java:4467)
at org.eclipse.swt.widgets.Display.createDisplay(Display.java:934)
at org.eclipse.swt.widgets.Display.create(Display.java:918)
at org.eclipse.swt.graphics.Device.<init>(Device.java:157)
at org.eclipse.swt.widgets.Display.<init>(Display.java:514)
at org.eclipse.swt.widgets.Display.<init>(Display.java:505)
at org.eclipse.ui.internal.Workbench.createDisplay(Workbench.java:732)
at org.eclipse.ui.PlatformUI.createDisplay(PlatformUI.java:162)
at org.eclipse.ui.internal.ide.application.IDEApplication.createDisplay$
at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEAppl$
at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHand$
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runAppl$
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(E$
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.j$
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.j$
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl$
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcce$
at java.lang.reflect.Method.invoke(Method.java:606)
at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:648)
at org.eclipse.equinox.launcher.Main.basicRun(Main.java:603)
at org.eclipse.equinox.launcher.Main.run(Main.java:1465)
at org.eclipse.equinox.launcher.Main.main(Main.java:1438)
Pero, si abro eclipse desde la consola usando mi "usuario principal" (el mismo que usé para iniciar sesión en mi escritorio de ubuntu), el eclipse se abre perfectamente bien.
Por eso sospecho que la diferencia que existe entre ambos usuarios no me deja hacer esto, y sospecho que el problema es queusuario hdno tiene las configuraciones adecuadas para ser utilizado en un entorno gráfico. ¿Tengo razón? ¿Se puede modificar hduser de manera que me permita abrir eclipse?
Respuesta1
Intente ejecutar este comando:
export DISPLAY=:0
Se asegura de saber qué pantalla X usar antes de ejecutar Eclipse.
Si eso no funciona, es posible que este usuario también necesite tener archivos de configuración para un administrador de ventanas. Así que simplemente siga la ruta GUI para agregar un nuevo usuario (creo que está enPreferencias → Usuarios y grupos) para que se carguen todas las configuraciones predeterminadas.
Respuesta2
Me encontré con un problema similar al instalar IBM Installation Manager (IBMIM) en CentOS 6.x y solucioné el problema instalando varios paquetes que fueron la causa de este error idéntico:
$ sudo /opt/IBM/InstallationManager/eclipse/IBMIM \
-record /root/was8nd_v85_install.xml \
-skipInstall /tmp/was8nd
00:00.46 ERROR [main] org.eclipse.equinox.log.internal.ExtendedLogReaderServiceFactory safeLogged
Application error
org.eclipse.swt.SWTError: No more handles [gtk_init_check() failed]
org.eclipse.swt.SWTError: No more handles [gtk_init_check() failed]
at org.eclipse.swt.SWT.error(SWT.java:4387)
at org.eclipse.swt.widgets.Display.createDisplay(Display.java:913)
at org.eclipse.swt.widgets.Display.create(Display.java:899)
at org.eclipse.swt.graphics.Device.<init>(Device.java:156)
...
IBMIM:
An error has occurred. See the log file
/opt/IBM/InstallationManager/eclipse/configuration/1457978953529.log.
Solución parte 1: paquetes faltantes
$ sudo yum install \
gtk2 \
libXtst \
gnome-desktop \
xorg-x11-xauth \
dejavu-lgc-sans-fonts
También se podría haber hecho algo similar a esto en Ubuntu.
Solución parte 2 - xauth
El otro problema que surgirá es que está intentando ejecutar el instalador IBMIM (basado en Eclipse) como usuario root a través de sudo. Cuando hagas esto, obtendrás el error de aplicación anterior del instalador:
00:00.46 ERROR [main] org.eclipse.equinox.log.internal.ExtendedLogReaderServiceFactory safeLogged
Application error
org.eclipse.swt.SWTError: No more handles [gtk_init_check() failed]
org.eclipse.swt.SWTError: No more handles [gtk_init_check() failed]
Para solucionar este problema, deberá xauth add
agregar el usuario inicial con el que inició sesión al $HOME/.Xauthority
archivo de root.
Como usuario1:
$ xauth list
ip-10-10-10-10.us-west-1.compute.internal/unix:10 MIT-MAGIC-COOKIE-1 6902e8c245a01ca50XXXXXXXXXXXXXXXX
Luego como raíz:
$ xauth add ip-10-10-10-10.us-west-1.compute.internal/unix:10 MIT-MAGIC-COOKIE-1 6902e8c245a01ca50XXXXXXXXXXXXXXXX
xauth: creating new authority file /root/.Xauthority
$ xauth list
ip-10-10-10-10.us-west-1.compute.internal/unix:10 MIT-MAGIC-COOKIE-1 6902e8c245a01ca50XXXXXXXXXXXXXXXX