4 ms·
For me it was "easy" on Linux. But you need to commit to it, no pun intended. I moved from Ubuntu to OpenSUSE Tumbleweed with almost no downtime. Only two thin
by chownchown 7y ago
For me it was "easy" on Linux. But you need to commit to it, no pun intended.
I moved from Ubuntu to OpenSUSE Tumbleweed with almost no downtime. Only two things I had to change IIRC was to create the same group as Ubuntu with GID 1000 (100 on TW) and to find out the different package names because ubuntu is a mess.
The process that lead me to my current setup
- Install OS fresh (always using the same username because there are many cases where you can't eval or access env's)
- Ignore most of the $XDG folders except Desktop and
Downloads.
- Have a centralized root folder and a scripts folder inside of it. All my scripts start with a check to see if the root is correct by checking an ENV
- Start a repo bare = false, worktree = /home/user, and use git add + excludesFile. I've tried everything there is and this is the best option by far because it's way faster, you have to be explicit about what's in your vcs. On VCS GUI .desktop I have added MimeType=inode/directory; so it's aware of the root.
- All my dotfiles are there but I use KDE and I added all the config files I care about so I can see what changes on updates, it helped me debug problems on update more than once.
- Don't customize the OS manually in any way (unless the GUI writes to a config file), create a script and only make changes through it. That includes what you install, what you remove, config changes, daemons, EVERYTHING.
- I prefer programs that are configurable by config/plain text files.
It's "reproducible", you have a script that describes your OS.
Personally use flatpak for everything that isn't on TW's repos and docker/podman for local development.
Now some examples of things in my script that also show some statistics after I run it. There's also a "first run" set of functions that I only run when it's a clean install.
sudo zypper install "${LIST_OF_PROGRAMS_TO_INSTALL[@]}"
sudo zypper remove --clean-deps "${LIST_OF_PROGRAMS_TO_REMOVE[@]}"
sudo zypper addlock "${LIST_OF_PROGRAMS_TO_REMOVE[@]}"
sudo systemctl enable "SVC"
sudo usermod -a -G "SVC" $(whoami)
sudo firewall-cmd --permanent --zone=ZONE --add-source=SRC
flatpak remote-add --user --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo https://flathub.org/repo/flathub.flatpakrepo
flatpak install --user -y flathub org.freedesktop.Platform//18.08 org.freedesktop.Sdk//18.08
flatpak install --user --noninteractive "APP"
flatpak update -y
And things like enforcing correcting permissions for .ssh, .gnupg. Set up mounts and shares.
My root partition is btrfs, home is xfs. But I keep a tab on it with sudo btrfs filesystem usage /.
I have tested a lot of tools and in the end there's no replacement to discipline (it becomes second nature) and using a script instead of relying on 3rd party tools for config/provisioning.
- chownchown 7y agoI can't edit the comment to fix the formatting, for some reason. Feel free to improve it if you care :)