Running Easy Installer on Linux

Hey, I’m running into a problem when trying to start Easy Installer.
I installed it using snap. When I start the program I get the following error:

    Exception in thread "main" java.lang.reflect.InvocationTargetException
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
	at java.base/java.lang.reflect.Method.invoke(Unknown Source)
	at java.base/sun.launcher.LauncherHelper$FXHelper.main(Unknown Source)
Caused by: java.lang.UnsupportedOperationException: Unable to open DISPLAY
	at javafx.graphics/com.sun.glass.ui.gtk.GtkApplication.lambda$new$6(Unknown Source)
	at java.base/java.security.AccessController.doPrivileged(Native Method)
	at javafx.graphics/com.sun.glass.ui.gtk.GtkApplication.<init>(Unknown Source)
	at javafx.graphics/com.sun.glass.ui.gtk.GtkPlatformFactory.createApplication(Unknown Source)
	at javafx.graphics/com.sun.glass.ui.Application.run(Unknown Source)
	at javafx.graphics/com.sun.javafx.tk.quantum.QuantumToolkit.startup(Unknown Source)
	at javafx.graphics/com.sun.javafx.application.PlatformImpl.startup(Unknown Source)
	at javafx.graphics/com.sun.javafx.application.PlatformImpl.startup(Unknown Source)
	at javafx.graphics/com.sun.javafx.application.LauncherImpl.startToolkit(Unknown Source)
	at javafx.graphics/com.sun.javafx.application.LauncherImpl.launchApplicationWithArgs(Unknown Source)
	at javafx.graphics/com.sun.javafx.application.LauncherImpl.launchApplication(Unknown Source)
	... 5 more

I’m running a manjaro-machine. Can someone help me please?

Unable to open DISPLAY

Under normal circumstances I’d interpret this error that you tried to run the command over ssh or with su but I don’t think that’s the case, right?

I have to admit I’ve never used Manjaro Linux, nor do I have experience with snap packages.
How did you start the installer?

I tried to run it over su but that didn’t help. I first started it via the standard gnome menu. And then with the terminal to see what’s wrong. Is there another way, other than snap?

Ha! It’s wayland. I tried running it in a xorg session and it worked. Thanks!

2 Likes

Hello @horsti, would you help me out please? How do I start xorg session in manjaro (XFCE)?

Bonjour.
moi aussi j’ai la même chose et je ne m’en sors pas.
quelqu’un ici pour m’aider ? Merci par avance.

easy-installer
Exception in thread “main” java.lang.reflect.InvocationTargetException
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.base/java.lang.reflect.Method.invoke(Unknown Source)
at java.base/sun.launcher.LauncherHelper$FXHelper.main(Unknown Source)
Caused by: java.lang.UnsupportedOperationException: Internal Error
at javafx.graphics/com.sun.glass.ui.gtk.GtkApplication.lambda$new$6(Unknown Source)
at java.base/java.security.AccessController.doPrivileged(Native Method)
at javafx.graphics/com.sun.glass.ui.gtk.GtkApplication.(Unknown Source)
at javafx.graphics/com.sun.glass.ui.gtk.GtkPlatformFactory.createApplication(Unknown Source)
at javafx.graphics/com.sun.glass.ui.Application.run(Unknown Source)
at javafx.graphics/com.sun.javafx.tk.quantum.QuantumToolkit.startup(Unknown Source)
at javafx.graphics/com.sun.javafx.application.PlatformImpl.startup(Unknown Source)
at javafx.graphics/com.sun.javafx.application.PlatformImpl.startup(Unknown Source)
at javafx.graphics/com.sun.javafx.application.LauncherImpl.startToolkit(Unknown Source)
at javafx.graphics/com.sun.javafx.application.LauncherImpl.launchApplicationWithArgs(Unknown Source)
at javafx.graphics/com.sun.javafx.application.LauncherImpl.launchApplication(Unknown Source)
… 5 more

Blockquote

As far as I know Manjaro XFCE already uses xorg, doesn’t it? I don’t know. In Gnome you can switch between them on login.

1 Like

What distro are you using? Search for your distro and how to change from wayland to xorg.

Hello Horsti,
thank you.
my distribution is Ubuntu : Version 20.04.2 LTS (Focal Fossa) 64-bit.
Noyau Linux 5.4.0-65-generic x86_64
Option : MATE 1.24.0

I think there should be an option for that on the login screen after reboot. But I’m not sure.

Thank you, I think you’re right - XFCE is running xorg. To be honest, my error message is slightly different. Maybe the problem is located somewhere else.

1 Like

I don’t know how I did it! …
But now I can display a logo that allows me to choose :
Mate, Gnome or Gnome + Xorg.
and still the problem with Mate, Gnome or Gnome + Xorg…

Same thing for me on Ubuntu 20.04.
easy-installer don’t launch, and I get exactly the same error message. The result is identical whether I am on Xorg or on Wayland, thus that’s not the problem.

When I do “sudo easy-installer”, I get the following message before the “Exception in thread “main” java.lang.reflect.InvocationTargetException …” :

mkdir: cannot create directory ‘/run/user/0’: Permission denied
/snap/easy-installer/15/gnome-platform/usr/lib/x86_64-linux-gnu/libgtk-3-0/gtk-query-immodules-3.0: symbol lookup error: /snap/easy-installer/15/gnome-platform/usr/lib/x86_64-linux-gnu/libpango-1.0.so.0: undefined symbol: hb_buffer_set_invisible_glyph
g_module_open() failed for /snap/easy-installer/15/gnome-platform/usr/lib/x86_64-linux-gnu/gdk-pixbuf-2.0/2.10.0/loaders/libpixbufloader-svg.so: /snap/easy-installer/15/gnome-platform/usr/lib/x86_64-linux-gnu/libpango-1.0.so.0: undefined symbol: hb_buffer_set_invisible_glyph
ERROR: /snap/easy-installer/15/gnome-platform/usr/lib/x86_64-linux-gnu/libgtk-3-0/gtk-query-immodules-3.0 exited abnormally with status 127
No protocol specified
No protocol specified

I looked at /run/user/0 : it doesn’t exist, and at : /snap/easy-installer/15/gnome-platform/, and it’s empty.
Do someone know what it means ?

I have a Ubuntu 18.04 virtual machine and installed the easy-installer. Then I get the same Caused by: java.lang.UnsupportedOperationException: Internal Error problem.

It seems to be related to AppArmor that is blocking something, at least there are several entries for the easy-installer

$ sudo journalctl --since=yesterday | grep audit | grep installer

Mostly this gives

Feb 17 18:31:47 ubuntu1804 kernel: audit: type=1400 audit(1613583107.346:154): apparmor="DENIED" operation="open" profile="snap.easy-installer.easy-installer" name="/snap/core/10823/usr/share/locale/de/LC_MESSAGES/snappy.mo" pid=3331 comm="snap-exec" requested_mask="r" denied_mask="r" fsuid=1000 ouid=0
Feb 17 18:31:47 ubuntu1804 audit[3518]: AVC apparmor="DENIED" operation="open" profile="snap.easy-installer.easy-installer" name="/proc/3518/mountinfo" pid=3518 comm="java" requested_mask="r" denied_mask="r" fsuid=1000 ouid=1000

Edit: I tried editing the AppArmor config via

$ sudo nano /var/lib/snapd/apparmor/profiles/snap.easy-installer.easy-installer

I’ve added three lines at the end before the closing “}”

@{PROC}/@{pid}/mountinfo r,
@{HOME} r,
/snap/core/10823/usr/share/locale/** mrkix,
}

After reloading this policy the audit log DENIED entries are gone

$ sudo apparmor_parser -r /var/lib/snapd/apparmor/profiles/snap.easy-installer.easy-installer

Unfortunately this did not change the error when running the installer.

Edit 2:

With sudo I see the same error like Borkin and maybe /snap/easy-installer/15/gnome-platform/usr/lib/x86_64-linux-gnu/libpango-1.0.so.0: undefined symbol: hb_buffer_set_invisible_glyph hints at the root cause?
Might be a missing library or a buggy “libpango-1.0”?!?

Edit 3: the missing symbol is supposed to be in libharfbuzz.

Running a shell in the easy-installer snap via

$ snap run --shell easy-installer

I then get no result from

$ strings /snap/easy-installer/15/usr/lib/x86_64-linux-gnu/libharfbuzz.so.0.10702.0 | grep invisible

If I do a similar thing on my host machine, I get

$ strings /usr/lib64/libharfbuzz.so.0 | grep invisible
hb_buffer_set_invisible_glyph
hb_buffer_get_invisible_glyph

So it looks like the libharfbuzz that the easy-installer snap package uses is broken.

Edit 4: I don’t know too much about snaps. It sort of looks like the easy-installer uses the gnome snap

$ snap connections easy-installer
Interface                 Plug                            Slot                             Notes
adb-support               easy-installer:adb-support      :adb-support                     -
content[gnome-3-34-1804]  easy-installer:gnome-3-34-1804  gnome-3-34-1804:gnome-3-34-1804  -
content[gtk-3-themes]     easy-installer:gtk-3-themes     gtk-common-themes:gtk-3-themes   -
content[icon-themes]      easy-installer:icon-themes      gtk-common-themes:icon-themes    -
content[sound-themes]     easy-installer:sound-themes     gtk-common-themes:sound-themes   -
desktop                   easy-installer:desktop          :desktop                         -
desktop-legacy            easy-installer:desktop-legacy   :desktop-legacy                  -
gsettings                 easy-installer:gsettings        :gsettings                       -
network                   easy-installer:network          :network                         -
opengl                    easy-installer:opengl           :opengl                          -
raw-usb                   easy-installer:raw-usb          :raw-usb                         -
wayland                   easy-installer:wayland          :wayland                         -
x11                       easy-installer:x11              :x11                             -

But the libharfbuzz from the snap seems ok:

$ strings /snap/gnome-3-34-1804/66/usr/lib/libharfbuzz.so.0.20600.2 | grep invisible
hb_buffer_set_invisible_glyph
hb_buffer_get_invisible_glyph
hb_buffer_get_invisible_glyph
hb_buffer_set_invisible_glyph

Looks like the system libharfbuzz is taken and it doesn’t have the required symbol:

$ strings /usr/lib/x86_64-linux-gnu/libharfbuzz.so.0.10702.0 | grep invisible

And “inside” the easy-installer snap I see that it’s really this (wrong) version that gets taken

$ ls -la /snap/easy-installer/15/usr/lib/x86_64-linux-gnu/libharfbuzz.so.0
lrwxrwxrwx 1 root root 24 Apr 13  2018 /snap/easy-installer/15/usr/lib/x86_64-linux-gnu/libharfbuzz.so.0 -> libharfbuzz.so.0.10702.0

Maybe someone with more snap knowledge can take over from here?!?

Edit 5: note to self: maybe https://forum.snapcraft.io/t/effects-of-dynamic-library-caching-on-snap-startup-performance/14454 helps understanding why the wrong libraries are taken

@Ingo_FP_Angel
i have the same on ubuntu 20.
I will save my “home” and reinstall ubuntu 20.04 LTS
then re-install easy-instaler.
Thank You ! I will be back :wink:

Why would you do that?

@ piero
@ Ingo_FP_Angel
I must have made too many changes in the packages.
there must be some inconsistencies, I am getting error messages.
the startup became slower than with a W10 …
and i have :
at java.base/sun.launcher.LauncherHelper$FXHelper.main(Unknown Source)
Caused by: java.lang.UnsupportedOperationException: Internal Error
and ‘easy-installer’ still does not start

Oh, new finding: I get the same “Internal Error” on my opensuse PC. And it seems I simply overlooked it yesterday, but the easy-installer snap package contains the wrong “libharfbuzz.so.0.10702.0”.

Edit: I’ve created an issue in Gitlab and I think v0.12.0-beta is really broken on linux

A workaround would be to use the older v0.11.2-beta version. You can switch in a terminal via

snap revert easy-installer --revision 14

Depending on your distro you might need to prefix that with sudo

3 Likes

I’m trying to revert, but can’t:

~$ sudo snap revert easy-installer --revision 14
error: cannot revert "easy-installer": cannot find revision 14 for snap "easy-installer"

I initially installed it as explained here, with command snap install easy-installer --channel=latest/beta.