Hi all,
I am about to do a bit of a distro hop, and I am looking at Fedora and its spins, after years on Debian / POP.
I am not looking forward to setting it all up again, it's a drag.
I wonder, is there a tool that lets me script installs?
I'll want to check if application exists, and if so, update, otherwise, install. That kind of thing.
Things like:
- Telegram
- Joplin
- Docker
- Firefox
- Ungoogle Chromium
- Sublime Text
- VSCodium
- Keepass
- Thunderbird
- DBeaver
- Gimp
- Inkscape
- KDENLive
- Syncthing
- Steam
- VLC
- Localsend
- Flameshot
- Element
- Cherrytree
- Calibre
- Anydesk
I show the list, only to give an idea of what might be involved.
I'm new to Fedora, so not sure how it differs beyond the package manager. But, thought I'd ask.
Does such a tool exist, and is it worth my time? I can practice on a VM before trying on the final install/s.
Thank you
Some distros allow this. Nix for example allows you to save config files that describe your entire system (apps, settings, etc) and then load them in one go. Other distros are following suit with their own tailored solutions too (I think Ubuntu might have something? Manjaro?).
I did more than 5 installs this weekend (for ... reasons) and the "trick" IMHO is ...
Do NOT install things ahead of actually needing them. (of course this assume things take minutes to install and thus you will have connectivity)
For me it meant Firefox was top of the list, VLC or Steam (thus NVIDIA driver) second, vim as I had to edit crontab, etc.
Quite a few are important to me but NOT urgent, e.g Cura (for 3D printer) and OpenSCAD (for parametric design) or Blender. So I didn't event install them yet.
So IMHO as other suggested docker/docker-compose but only for backend.
Now... if you really want a reproducible desktop install : NixOS. You declare your setup rather than
apt install -y
and "hope" it will work out. Honestly I was tempted but as install a fresh Debian takes me 1h and I do it maybe once a year, at most, no need for me (yet).Another "trick" I use is having an ~/Apps directory in which I have AppImage, binaries, etc that I can bring from an old /home to a new one. It's not ideal, bypassing the package manager, and makes quite a few assumption, first architecture, but in practice, it works.
I do use docker, and compose a lot. But can it be used for desktop apps? Telegram, gimp, Thunderbird, etc?
It should be possible. Although probably very complicated. Have a look at https://distrobox.it/. It allows you to tightly integrate containers into your desktop, including accelerated graphics, some devices, your homedir, etc. It can even automatically install desktop shortcuts. (You can disable the integrations of course) Even tho it uses Podman instead of docker, AFAIK it should be 1:1 compatible with docker for your usecase.
I didn't find any script that would install the apps you wanted, but I did find a script that will help you build your own (it's pretty easy). You can take inspiration from this one and modify it, so that whenever you reinstall your system, you'll run your script.
https://gist.github.com/engineervix/ed53aa410a22620013e04baca437abb3
Research what commands are used in Fedora to install what application and add them to your script. Then, give your .sh file execute permissions and run it. You can do this in a virtual machine first if you want.
...aaaand DONE and tested. That was amazingly simple, when there's a framework like that to work, and learn from. Thanks again.
oh that is VERY nice, I even have a lenovo laptop. I think that will get me started for sure. Thank you
Using ansible will help you on your 2nd, 3rd , nth install.
But getting ansible to do what you want (plus testing) for the first time would takes 10x longer than manual install.
I think there's xkcd about that.
Have you tried SaveDesktop? Thought It is limited in the flatpak softwares, but cloud synchronization feature is recently added.
I use yadm's post-checkout script feature to accomplish this on my machines.