Hi everyone, I have been getting back into photography lately and switched to using linux full time about a year ago.
I ended up deciding to use digikam as my photo library management tool and then edit in darktable. both applications I decided to use the appimage for easier use and to have the necessary dependencies to get things like opencl to work, (I had a hard time getting it to work with the .deb)
now I also use multiple machines and recently learned that you can create .home and .config folders for each appimage to have all their settings etc save there, and it seems that this would make it pretty portable.
would it be a bad idea to for example keep the appimages and their folders in a synchronized folder like with nextcloud to use the same* appimage across machines. I never have the same machine on at a time but it would be nice to have all the settings sync’d but im not sure it would then break something since two machines use nvidia gpus and the other uses an amd gpu
You wouldn’t be able to reliably map the XDG config folders you’re mentioning to a network share. You won’t have any issues running the appimage from a network share though. Just take a finalized config and drop it in the same location as the appimage and copy it where you need it.
An alternative would be to have a network mount with a portable user config for your entire profile, but it’ll be quite a bit of work and require some pam finagling.
ok so a network share wouldnt be a good idea but what about a sync tool like nextcloud where it will just make a new copy to any machine I sync the nextcloud folder too?
I wasn’t aware Nextcloud had a feature like that, but if it can sync the single flat file to where it needs to be, go for it.
If you want to get more detailed about it, have a look here: https://docs.redhat.com/en/documentation/red_hat_enterprise_linux/6/html/deployment_guide/sssd-ldap-autofs
So I tried running dsrktable from the syncd nextcloud folder, first on one machine then when I got home on my desktop and everything seemed to run fine. After a while I was importing more and more photos then nextcloud started to complain about the database being too large to sync so that is a bit of a issue. Really the only thing I wanted was to sync settings so I just copied it out of my nextcloud folder and put it in my documents so I won’t sync anymore
That’s…odd. Sure sounds like it wasn’t storing the DB locally, which shouldn’t the default at all.
I was under the impression that appimage saved all configs inside its image and did not need anything exteranl configured??? I hope to use it to make it easier to upgrade and change my machines and distros.
Appimage is an immutable exe. Like a CD ISO It stores config in a home folder variable location.
oh to bad. I thought it was more akin to an apple program.
macOS applications are folders and that will never stop being weird to me. They basically use the same setup as windows but instead of making the application the executable in the folder they turn the whole folder into the executable
thats what makes them so portable. im not sure about nowadays but you could just move the app to another machine and you where all set.
I wonder how that works on multi-user systems. How do they structure that so that settings are per-user?
Im not sure. I do know I have had to go into the image and change files in the tree before but I don’t really remember why.
Oh, you’re thinking of applmages
yeah thats what this is about. appimage portability.
No. App_l_mages.
I thought so too but then I noticed after I created the .home and .config folders next to the appimage and launched digikam it was like a first time setup, so i went looking for digikam files in my own .home folder and copied it over to the new digikam.appimage.home folder and launched it it was like it was before with all my settings etc configured so I guess appimages do save things to your user home folder
I know i have taken a firefox and launched it on another host and it seemed to have kept the settings I changed on the first machine. Im still way early in testing.
it probably depends on the software and what it is set to use, digikam stores stuff it downloads for facial recognition and stuff in a home folder so now that I create the digikam.appimage.home folder it uses that which is nice
Theoretically yes
In practice no
I would strongly recommend that you avoid Appimages. They are very dated and depend on legacy stuff that often was dropped by the distro. They are also terrible for security since there is no way of pushing out updates.
They are very dated and depend on legacy stuff that often was dropped by the distro
Is it libfuse2? This has no longer been a dependency with the static appimage runtime, which released in 2022!
Although most notable, electron apps still by default use the old runtime, because electron-builder hasn’t updated the appimage runtime.
Besides that AppImage do not depend on legacy stuff.
They are also terrible for security since there is no way of pushing out updates.
This was never true lmao.
they seem to be updateable. are you sure about that?
Hmm digikams site recommends the appimage
Don’t take this the wrong way I personally would be cautious of trusting developers to package there own software.
I personally would use the flatpak https://flathub.org/apps/org.kde.digikam
Second best would be to use a container with a native package.
I tried the flatpak version but was unable to get it started since it couldnt connect to my database even though I copied over all my config files to the flatpak directory
edit: looks like there is an issue with it missing a driver https://github.com/flathub/org.kde.digikam/issues/17
Thank you ill look into flatpaks more, I use the flatpak for firefox as I noticed it looked much newer than the popos shop deb
Do not use flatpak for firefox based browsers because it breaks it namespaces sandbox.
Firefox releases a portable binary that self updates.
Processes are still isolated through nested seccomp filters.
Would highly recommend against anything that “updates itself.” That is just ripe for supply chain attacks and unwanted features. You want someone in the stream to do some sort of validation.
I also don’t want every app trying to check for updates. There is a reason we use centralized management.
Processes are still isolated through nested seccomp filters.
You don’t have namespaces still…
For reference, chromium will not launch without that, you have to pass the
--no-sandbox
flag and brave iirc disabled that all together.Not really an issue with chromium because you do have working namespaces sandbox thru zypack, although some disagree that this is safe
Would highly recommend against anything that “updates itself.”
Disable the self updates in that case… before you were saying that AppImages had no way to self update and now are saying that you don’t recommend it?
You want someone in the stream to do some sort of validation.
Also what validation are we talking about? the one that flathub does? The most you will get is recognizing that the application comes from upstream, you can even ship pre-compiled binaries thru flathub.
There is a reason we use centralized management.
Such as?
EDIT:
I also don’t want every app trying to check for updates.
With AppImage you have this outside the application thru the zsync delta updates, the info is embedded in the appimage and it is checked by appimageupdatetool, appimagelauncher, and similar and let you know when there is an update available without the application itself doing the check.
Thank you, it seems every way I go i make the wrong choice lol
Thank you, it seems every way I go i make the wrong choice lol
Welcome to linux.
What you were told about appimage depending on legacy stuff is also not true, it is the libfuse2 dependency, which hasn’t been a dependency of AppImage for 3 years (though some projects haven’t updated yet).
It also isn’t a big deal if you run into an appimage that still depends on it, archlinux which is a rolling release distro, some of its packages like mtpfs and ntfs-3g still depend on libfuse2 as well. And you can still run the AppImage by setting the env variable
APPIMAGE_EXTRACT_AND_RUN=1
to avoid having to install libfuse2 in those cases.maybe you can help guide me, I borked my video drivers on my desktop trying to get opencl to run on darktable with my 7900xtx gpu on popOS
I guess popOS just has older drivers or something and following guides on how to update led me to getting videos to stutter all the time now so Im planning to do a fresh install, would you recommend another distro that might have its drivers more up to date? I am thinking of trying out fedora as I heard that updates much faster than popOS