Running Easy Installer on Linux

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.

Hi, I’m having same issue Ingo_FP_Angel and a few others.

Using Ubuntu 16.04.7.

I install using easy-installer:
sudo snap install easy-installer --channel=latest/beta

Run snap from command line and get “Internal Error”:
snap run easy-installer

/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
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

TO get more log info:
sudo journalctl -xe | grep DENIED

Feb 18 15:20:17 18-1161-LAP audit[26069]: AVC apparmor=“DENIED” operation=“open” profile=“snap.easy-installer.easy-installer” name=“/proc/26069/mountinfo” pid=26069 comm=“java” requested_mask=“r” denied_mask=“r” fsuid=1001 ouid=1001
Feb 18 15:20:17 18-1161-LAP audit[26069]: AVC apparmor=“DENIED” operation=“open” profile=“snap.easy-installer.easy-installer” name=“/home/myname/” pid=26069 comm=“java” requested_mask=“r” denied_mask=“r” fsuid=1001 ouid=1001

I follow instructions to revert to Revision 14:
snap revert easy-installer --revision 14

But get error:

error: cannot revert “easy-installer”: cannot find revision 14 for snap “easy-installer”

Is there a way to specify v0.11.2-beta in the install command?

Thanks :slight_smile:

I don’t usually use snap but I guess any snap documentation/tutorial will contain that info.

The revert happened to work for me because I had installed v0.11.2-beta before and it was still sitting on my hard drive.

I had version 0.12 beta installed:

:~$ snap info easy-installer
name:      easy-installer
summary:   Easy installation of /e/ OS - the Google-free Android-based mobile operating system
publisher: ECORP SAS (ecorpsas)
store-url: https://snapcraft.io/easy-installer
contact:   contact@e.email
license:   unset
description: |
  The /e/ OS Installer has been created to make the installation of /e/ OS - the Google-free
  Android-based mobile operating system - easier for users.
commands:
  - easy-installer
snap-id:      sGhqYkDpI20v6JJgCiJqvg29s25yKFFg
tracking:     latest/beta
refresh-date: 2 days ago, at 16:56 CET
channels:
  latest/stable:    –                                  
  latest/candidate: –                                  
  latest/beta:      v0.11.2-beta 2021-02-19 (14) 104MB -
  latest/edge:      ↑                                  
installed:          v0.12.0-beta            (15) 105MB -

I removed it with sudo snap remove easy-installer.
Then I installed it again with :

~$ sudo snap install easy-installer --channel=latest/beta
easy-installer (beta) v0.11.2-beta from ECORP SAS (ecorpsas) installed

and now I have:

~$ snap info easy-installer
name:      easy-installer
summary:   Easy installation of /e/ OS - the Google-free Android-based mobile operating system
publisher: ECORP SAS (ecorpsas)
store-url: https://snapcraft.io/easy-installer
contact:   contact@e.email
license:   unset
description: |
  The /e/ OS Installer has been created to make the installation of /e/ OS - the Google-free
  Android-based mobile operating system - easier for users.
commands:
  - easy-installer
snap-id:      sGhqYkDpI20v6JJgCiJqvg29s25yKFFg
tracking:     latest/beta
refresh-date: today at 13:46 CET
channels:
  latest/stable:    –                                  
  latest/candidate: –                                  
  latest/beta:      v0.11.2-beta 2021-02-19 (14) 104MB -
  latest/edge:      ↑                                  
installed:          v0.11.2-beta            (14) 104MB -

and it starts! Not sure why the 12.0 beta was installed as I used the same command earlier. Was the channel updated to go back to 11.2 ?

Anyway, I can try to use it now :slight_smile:

3 Likes

Seems so. I assume it’s Vicent who did it as he commented in Gitlab https://gitlab.e.foundation/e/backlog/-/issues/2576#note_80907

I can confirm: install command brings the v0.11.2-beta up and running. :+1:

Can confirm also, this installed v0.11.2-beta and solved the INTERNAL ERROR issue on Ubuntu 16 LTR. easy-installer now opens :slight_smile:

When started from cmd line snap run easy-installer it did give two error messages, but seemed to load ok.

20:01:00,435 |-ERROR in ch.qos.logback.core.joran.spi.Interpreter@35:18 - no applicable action for [encoder], current ElementPath is [[configuration][appender][encoder]]
20:01:00,435 |-ERROR in ch.qos.logback.core.joran.spi.Interpreter@36:22 - no applicable action for [pattern], current ElementPath is [[configuration][appender][encoder][pattern]]

Hello i’m happy !
On my ubuntu Version 20.04.2 LTS (Focal Fossa) 64-bit
Noyau Linux 5.8.0-43-generic x86_64

  • MATE 1.24.0
    after snap …
    Easy Installer - v0.11.2-beta is … OK Yes !!

Next step : My FP3+ go to degooglization !

It’s ok for me ! :heart_eyes_cat:

1 Like

A solution to the “Unknown error” problem in version v.0.12.0 (which had been withdrawn because of it) was found yesterday and it seems a corrected version v.0.12.1 is up now :slight_smile:

P.S.: I think it’s also the first version to contain the German translations :slight_smile:

5 Likes

Great, thanks @Nytt. Forgive the intrusion, but would you please consider validating your devices on this new page List of devices working with the Easy Installer :smile:

1 Like

@aibd
my work is ok for you ?

1 Like