Debian 10 not running after install

OS: Debian 10 Buster
Joplin V. 1.0.193

I’ve installed Joplin following Linux terminal command: " wget -O - https://raw.githubusercontent.com/laurent22/joplin/master/Joplin_install_and_update.sh | bash"

It installed it successfully and I see the icon in the applications launcher but when I click on the icon nothing happens, no error message, no application launching or anything.

Then I downloaded the appImage file and click in “Allow executing file as program” clicked on it and nothing happen. The only way I made it work was by going to the terminal and typing “sudo ./Joplin-1.0.193.AppImage --no-sandbox”.

I really don’t understand why, I just want to click on the icon and make it run. I’m using Debian 10 buster. Is there something I’m missing or is my OS missing something since I looked in other forums and nothing.

Thanks,

Unfortunately I don't know much about the issue, but you should be able to find more information in this thread.

Seems to be an issue between recent electron versus and recent kernel updates in debian (something like that).

3 Likes

Simple answer: Debian chose to enable a security feature in its kernel that most distros left turned off; it’s an edge case feature that exclusively only affects specific frameworks and Electron is one of them.

2 Likes

I thought so. I read the threads that @CalebJohn mentioned and everything points to not an actual solution for now. No one to blame but Debian kernel update. I really like Debian and I relay a lot in my Joplin-Nextcloud set up for my day-to-day usage. I will stick now with sudo ./Joplin-1.0.193.AppImage --no-sandbox command.

For future references, please refer thread where the issue is discussed.

What worked for me is running the following command: sudo sysctl kernel.unprivileged_userns_clone=1 you will need to do it every time you restart your computer.

For avoid doing it every time you restart the computer you may added it to your sysctl.conf file by doing the follow: in the terminal sudo nano /etc/sysctl.conf and in any empty line just add kernel.unprivileged_userns_clone=1 then Ctrl + O > Enter > Ctrl + X and you will have save the file.

As per other people said, there are some security concerns which they couldn’t exactly determine how or why. It seems like the majority of OS have the feature disable without any trouble, but for some reason Debian enable it and it creates a conflict with Electron.

Thanks everyone.

3 Likes

That works perfect

1 If installed uninstall
rm -rf ~/.joplin &&
rm -rf ~/.config/Joplin/ &&
rm -rf ~/.config/joplin-desktop &&
rm -rf ~/.local/share/applications/appimagekit-joplin.desktop
2
su
sudo apt install wget
wget -O - https://raw.githubusercontent.com/laurent22/joplin/master/Joplin_install_and_update.sh | bash

3 Find app and change one line

Programs > Office>Joplin PPM "Edit Application" > Application and than change line "Command::" At the end add line --no-sandbox (example:/home/Kowalski/.joplin/Joplin.AppImage --no-sandbox)

4 Additional settings

Create shortcut on desktop

a)Office>Joplin PPM "Add to Desktop"
If doesn't work
b) PPM on dektop icon >Properties and than change line "Points to:" At the end add line --no-sandbox (example:/home/Kowalski/.joplin/Joplin.AppImage --no-sandbox)

3 IF No image on dektop shortcut?
a)There is no icon image on the desktop shortcut? Download here
joplin/JoplinIcon.svg at master · laurent22/joplin · GitHub

b)PPM save image as ...
and use it as an shortcut image (PPM on shortcut > clik on square where image should be and go wehe you saved "JoplinIcon.svg"

All works fine after system restart :slight_smile:

I don't seem to make the --no-sandobox argument work everytime. Sometimes it opens, sometimes it doesn't and my computer starts to slow down and after a few seconds completely freezes my whole system! So editing a .destkop to run it with the argument, is no valid option for me.

I have found, though, that if I run the the appimage with argument from terminal, as I can tell when it is going to crash (because it starts to slow down the computer without showing the app) I can Control+C the process and run it again. Usually the first time is the one that doesn't work and the second does...

Anyway, in case someone is having the same problem, my "solution" was making a bash_alias to launch it with the --no-sandbox argument:

  1. Edit your .bash_aliases or create a new one if you don't have one. It should be on your /home/username/ directory:

$ nano ~./bash_aliases

  1. Add the line:

$ alias jo="cd ~/AppImages && ./Joplin.AppImage --no-sandbox"

  • Replace jo with whatever you want the alias to be. I like this to be very short.
  • Replace the first directory with the one where you have the appimage in (usually, if you installed using the script, it should be in ~/.joplin (I like to keep all my appimages together)).
  • Replace Joplin.AppImage with the actual appimage name, which usually includes the app version, something like Joplin-1.0.216.AppImage. I prefer instead to remame the .appimage itself to just Joplin.AppImage, so I don't have to update the bash_alias again if I download a newer version.

3- Then update the aliases source:

$ source ~/.bashrc

4- Run the alias. If you see that the system slows down, control + c and run it again. In my case if I just opened the terminal, it always takes two times. After closing the app, if I leave that terminal open, it runs again with just one intent.


I really hope this changes at some point... it is really annoying to have an .AppImage that doesn't run on a distro as big as Debian. In my case this is my main PC for work (Debian stable) where I only have a few basic apps to stay focused (mail, office apps and basic web-browsing...) and I don't really want to be worried about many updates and newer options, etc.

I found Joplin when searching for multi-OS open source encrypted note apps, tried it on a weekend on my gaming system (which is Windows 10...), fell inloved with it, then downloaded it on Debian during the week and... Man, GNU/Linux is never going to be popular like this...

I really don't want to install Ubuntu/PopOS or Manjaro just to run a note-taking app... Is there any real possibility that you will update and modify the app to run on Debian? or would the change be so "big" that you are not really willing to do that? I think many of us would like you to be honest about it, so we can decide to either change Joplin for another app or that we love it so much that we would change the distro.


P.S.: In my case, as rare as it sounds, sudo sysctl kernel.unprivileged_userns_clone=1 doesn't seem to change anything.

Can confirm. Sometimes it hangs and sometimes it doesn't on Debian.

  1. Debian version 10.6
  2. Joplin version 1.3.18

With sudo sysctl kernel.unprivileged_userns_clone=1 or with --no-sandbox .

in github Joplin issues there is an apparent new more "secure" "workaround" to this problem. So I thought it would be okay to put it here (apologies if you think I shouldn't bring up this post after this time).

This "solution" will need kernel 5.10 (which is available in Debian testing and, hopefully, will be in the next Debian Stable). It's this answer from user @weleoka in issue #2246.

It basically consists of installing a trusted and signed package with the needed sandbox binary (that has the needed permissions), like the one in the package chromium-sandbox in your default repos. It should be installed to /usr/lib/chromium/chrome-sandbox

(if you already have installed google-chromium it should be already present (or even in ungoogled-chromium, but the idea is to get it from the official repo, instead of extracting an .appimage and give it permissions to a file that you can't definitely trust, so mind if you really trust that ungoogled-chromium package)).

So, the steps, basically, are:

  1. apt install chromium-sandbox
  2. Give execute permissions (chmod +x) to the .appimage.
  3. Extract de .appimage (--appimage-extract) you have downloaded (preferably on a dedicated directory, because there will be a lot of files).
  4. cd into squashfs-root directory within.
  5. Backup the appimage included sandbox binary mv chrome-sandbox chrome-sandbox.bak
  6. Symlink to the "apt-installed" sandbox binary ln -s /usr/lib/chromium/chrome-sandbox chrome-sandbox
  7. Run the app from within that current squashfs-root directory: ./AppRun
  8. Make the .desktop file execute that edditing the line Exec=/home/your_username/directory_of_appimage/squashfs-root/AppRun

P.S.: Current kernel from backports for Debian Buster Stable 5.9.15-1~bpo10+1 is not enough.