-
-
Notifications
You must be signed in to change notification settings - Fork 5
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
gimp won't run at all when installed with appman #25
Comments
also, I noticed something strange in the symlink that appman puts in .local/bin it links to:/home/sz/.local/share/AppImages//google-chrome/google-chrome, there are 2 slashes after AppImages, the same thing with gimp, it works anyway, just strange... |
Update: I manually downloaded and renamed the appimage to gimp without any extension and it ran just fine. As soon as I put a symlink for it named gimp in .local/bin it wouldn't run anymore even when in the appimage directory with ./gimp I don't understand what could be happening |
I don't know why, but someone else have faced this problem with my JuNest-based AppImages (MPV, GIMP...) on a minimal system ivan-hc/MPV-appimage#12 Sometime the ArchImages have issues in running on some systems using aliases, an it is still a mistery for me. |
Have you tried if the issue is also with VLC, OBS or MPV? |
Also try to create a script instead of the symlink:
if you say that by downloading it and rename as gimp it works and not aliased, maybe we can try to trick the alias using a script instead. |
is the content of ~/.config/appman/appman-config like this?
for example, mine is
in ~/.cache because my main CLI is AM, I only do tests with AppMan |
Yes I just tried MPV, same problem . It seems that my Debian 12 system is having this issue with Archimages. |
It didn't work! I tried reinstalling gimp using appman , then deleting the symlink and replacing it with a script, it still wouldn't work! I then deleted the script and ran it directly (~/.local/share/AppImages/gimp/gimp) and it works. Very strange... My script calls the exact same command as I ran in the terminal, but somehow the presence of a file named gimp in .local/bin prevents it from running... |
cat .config/appman/appman-config I will try to remove the last slash and see. That's probably the issue. |
I just tried the following in .local/bin |
Normally AppMan uses the command In AppMan, change the function at line 766
like this
I have added the command Now to install an archimage, maybe gimp itself. |
Just tried. Does not help. The symlink is fine just seems to be the same issue... (This what the symlink looks like in 'lsd' gimp ⇒ ../share/AppImages/gimp/gimp) |
I just tried moving the AppImage itself named 'gimp' into .local/bin and it wouldn't run, even though there was no other file named 'gimp' anywhere else, I renamed it to 'Gimp' and it runs. So the problem is the AppImage having the same name as the executable that's in the AppImage being in .local/bin |
This should not be the way that they must work, they should be readi to use out of the box. I have tested them on Debian, Arch Linux and Fedora and they work. @kenderipa from the issue above have a minimal Debian system with JWM, I don't know what is your configuration, but I'm sure that there is some basic stuff that is missing on the host system. Something about a different configuration of aliases and $PATH managing. It is not related to the AppImages themself. A missing system requirement that we have not. Maybe the .bashrc file or something. I don't know what is managing that. I have also wrote a post on Reddit looking for an answer. |
For example, this is my ~/.profile file:
and this is my ~/.bashrc:
Apart the last lines, they are the defaoult ones of my Debian Testing installation with XFCE4 and lightdm. @shlozm @kenderipa you can compare them using https://www.diffchecker.com I don't know if that would help to understand what is happens on your systems. |
Additional detail, I've opened three of my Appimages, Chromium and Ocenaudio (deb-based) and GIMP (archimage), the latter is the only one that mounts the internal JuNest (the Arch Linux container that runs GIMP, MPV and other archimages), if installed normally, rely on the following isolation systems, depending on the mode you run it:
Normally, both of the above are builtin, but proot is the only one I included in my archimages. To made tha Archimage really portable I hade to bundle them with their own "proot-x86_64" binary file in AppDir/.junest/usr/bin (this is the structure of the Appimage based on Arch Linux). Now, the ArchImages are AppImages that "think" to run in PROOT mode, but they are into an environment that works with namespaces. My system have not PROOT installed, but I have "bubblewrab" by default. @kenderipa , from the list you gave me in the previous issue, I have seen that on your system you have not "bubblewrap" installed. It is higly used to run third party programs "isolated" (also Flatpak depends on it). @shlozm Have you got bubblewrap installed on your system? If not, what happens if you two install it and try to run the AppImage using an alias? May be this an issue with namespaces then? Let me know. EDIT: https://en.wikipedia.org/wiki/Linux_namespaces In fact, as @shlozm said, to made the AppImage run normally, it have to use a different alias, not "gimp", and Namespaces are ment to use different processes in parallel. The AppRun into the AppImage is calling the internal /·junest/usr/bin/gimp binary, so tthe process "gimp" is called for the first time, having "gimp" called twice made the app not work. Bubblewrap is made to solve this process and made them work in parallel. It should be packaged for all the GNU/Linux distribution (being Flatpak available for all them). EDIT2: about the Virtual Machine I used to create the same desktopt of @kenderipa, Virtualbox needs hardware vitualization enabled on the host. Namespaces of the kernel were used from bubblewrap installed on the host, so my Appimages were working on the VM, this is why I was unable to reproduce the issue. |
I did not have bubblewrap installed, unfortunately even after installing bubblewrap the problem persists. I even rebooted. Is there any environment variable that needs to be set? I attached a copy of my bashrc and profile, also a list of all installed packages. Thank you so much for all the time and effort! |
It is in my $PATH because it gets set in .profile but I will add it to .bashrc and see if it helps update: it did not help and now it's in my $PATH twice! Maybe appman should check .profile as well, or maybe it makes no difference if it's there twice? |
|
Does the order matter? I'll test it |
That worked!!! and now and ... it works! Thank you! But please note: that when Update: I removed bubblewrap just to test and it still works |
I see. Then I don't understand why adding export PATH=$PATH:$(xdg-user-dir USER)/.local/bin to my .bashrc resulted in a different order of $PATH then yours. The result by me was having .local/bin in my $PATH at the beginning and at the end (twice!). By editing .profile and removing the line from .bashrc my $PATH is now like yours, AND everything works! Very strange that the order makes a difference but it seems that it does. |
I'd like to keep the default .profile file as is and investigate on why our output is different. I'm looking around on the forums and seems that more of this is related to the login shell. |
I just tested it again, I changed .profile back to default, added export PATH=$PATH:$(xdg-user-dir USER)/.local/bin to my .bashrc, and rebooted, now: |
About PS1 https://www.cyberciti.biz/tips/howto-linux-unix-bash-shell-setup-prompt.html May be this change related to the WM you have installed? |
No just personal preference, and the rest are just some extra aliases, I doubt any of that makes a difference, if you want I can test. Update I commented all those lines out and I placed the export PATH=$PATH:$(xdg-user-dir USER)/.local/bin line at the end exactly as you have it, but it made no difference AND gimp won't run |
I wrote the question on Reddit right now https://www.reddit.com/r/bash/comments/18q8r4q/the_order_of_the_paths_matters_depends_on_what/ |
I'm tempted to edit the new function in AppMan from:
to
but first I'd like to know the reason because our output is different. |
According to this https://stackoverflow.com/questions/13830594/when-i-execute-bash-the-path-keeps-repeating-itself |
According to this: https://superuser.com/questions/1716235/debian-linux-path-variable-repeats-path |
when I tried the proposed edit (with the default Debian .profile) this is the result: As you can see .local/bin is still first, and .local/bin is at the end twice. And, of course gimp won't run. |
Do you have a .bash_profile or .bash_login in your home directory? On top of .profile it says: ~/.profile: executed by the command interpreter for login shells. I don't, but if you do that could be the reason for the difference. |
Nope, I have not them. |
I wont to use sed or similar commands to edit the correct order, nor I'd like to edit ~/.profile using sed, AppMan may seem to be too much "editor" on the defaults and may give problems. |
This should be the solution for all our evils
what do you think about it? |
Worked perfectly! I ran
And now my $PATH Thank you very much! |
Some systems make local binaries appear as the first selection, giving ~/.local/bin less priority than other $PATHs. With this AppMan modification, the `echo $PATH` command will give the following output: /usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games:/home/USER/.local/bin With this order, symlinks and executables in ~/.local/bin will have due priority, especially in minimal systems.
Changed the "_patch_bashrc_and_profile" function to only modify the ~/.profile file if the output of `echo $PATH` places $HOME/.local/bin first in the $PATH list. Only systems that need it will be affected by this patch, while all systems will only have two lines added to the bottom of the ~/.bashrc file. See the previous commits listed at ivan-hc/AppMan#25 and ivan-hc/AppMan#26
Changed the "_patch_bashrc_and_profile" function to only modify the ~/.profile file if the output of `echo $PATH` places $HOME/.local/bin first in the $PATH list. Only systems that need it will be affected by this patch, while all systems will only have two lines added to the bottom of the ~/.bashrc file. See the previous commits listed at #25 and #26
I installed gimp using appman, it won't open at all! No feedback from the terminal just immediately returns to the prompt. The appimage itself works well. I tried running it from the directory appman installs to (.local/share/AppImages/gimp) using ./gimp still nothing,
I also installed google-chrome using appman, that runs just fine.
What can be the problem?
The text was updated successfully, but these errors were encountered: