this post was submitted on 16 Jul 2023
71 points (97.3% liked)

Linux

48052 readers
1044 users here now

From Wikipedia, the free encyclopedia

Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).

Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word "Linux" in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.

Rules

Related Communities

Community icon by Alpár-Etele Méder, licensed under CC BY 3.0

founded 5 years ago
MODERATORS
 

I am currently trying to keep track of my config files in a repo to be able to get the configa back together easily if/when I change distro, but I am not sure if that's the best way or if I should be using some tool to help me since I some programs keep preferences in other directories other then $HOME (at least I think so). Can you guys share with me your must used/trusted simple process for this?

Thank you and specially thanks to everyone who is being helpful in this community for the past few weeks, I've learned much and got some very useful tips from the comments in my posts and in other people posts too.

top 31 comments
sorted by: hot top controversial new old
[–] [email protected] 34 points 1 year ago (1 children)

I manage them by not. My configs are gone when I wipe my drive and I simply recreate them from memory. Things get forgotten, new things get changed. Holding on to the past too tightly will make you unable to leave it.

[–] flubba86 12 points 1 year ago* (last edited 1 year ago)

I've struggled to put in words my stance on this, but you said it well. If I backed up my configs, I would get stuck doing things the exact same way for ever. If I backed up my configs I'd be still using Vim with Vungle plugins, now I use Neovim with Packer plugins. I would be still using urxvt with powerline-status bar, now I use Alacritty with starship status. I'd be still using my old favourite Inconsolata font, now I use Fantasque for everything.

There are always newer (and sometimes better) and certainly different ways of tweaking your PC to suit your needs. If you hold on too tight to your old configs, you might miss out on discovering the next cool thing to enhance your experience.

Note: there are of course some home dir things I definitely keep backed up that are irreplaceable, like SSH private keys, GPG keyrings and private keystores, and even my Firefox profile directory.

[–] [email protected] 20 points 1 year ago (3 children)

I manage them using git and stow.

Stow is very useful, but a bit unknown. Hard to explain in a Lemmy post, but basically it helps you manage symlinks between your git repo directory and your $HOME.

You can "install" and "uninstall" configs by managing the symlinks with stow.

[–] flyhunter 5 points 1 year ago

I do the same plus a python script to automate the stowing. This plus konsave plus a script to install packages and it is a breeze to reinstall the OS

[–] [email protected] 1 points 1 year ago

+1 for stow, it's so simple yet powerful.

[–] [email protected] 1 points 1 year ago* (last edited 1 year ago)

Same but with the addition of a Brewfile to manage installed apps/CLIs (supports both Mac and Linux)

[–] [email protected] 12 points 1 year ago

I'm not as fancy as using git. I have a folder with all my config files, and it's not a lot, in Nextcloud. When I'm on a new install, I sync my Nextcloud account then create symlinks to the files in the folder. So far no issues. I just keep track of where each simlink needs to go.

[–] [email protected] 7 points 1 year ago

separate nvmes for the root-fs and for my users home folder.

configure /etc/fstab to point nvme to /home/username.

Done! I can wipe and hop as much as I like, and everything's just there.

Tbh, i only hopped once, from Arch to Fedora and it was painless.

[–] [email protected] 7 points 1 year ago

not distro-hopping, but i use nix, which can be used on anydistro.

[–] mundane 7 points 1 year ago

I keep my files in a repo on gitlab and use yadm to sync them.

Yadm is a wrapper around git, so you have all the standard git commands plus some extra to work with templating and encryption etc.

[–] [email protected] 6 points 1 year ago

I'm not a distrohopper, but GNU stow is delightfully simple. See my dotfiles as an example.

[–] [email protected] 5 points 1 year ago

Home manager fan here. Every install I tweak something if I feel like it.

[–] [email protected] 5 points 1 year ago

I use usb stick with Ventoy. I copy it into .config and add a line for aliassrc into .bashrc and I'm all set.

[–] [email protected] 4 points 1 year ago (1 children)

Ansible... Ansible... ansible...

Write a ansible playbook that contain any of the config...

Or Timeshift everything... and restore on new distro

[–] [email protected] 2 points 1 year ago (1 children)

It never even occurred to me that you can restore a timeshift on a different distro. I feel so stupid lol

[–] [email protected] 1 points 1 year ago (1 children)

You can lah... If not it's useless. Haha.. 😂

[–] [email protected] 2 points 1 year ago (1 children)
[–] [email protected] 3 points 1 year ago (1 children)

Lah is like a added text, in end of cov. Like bro, man, etc... It's mostly used in East and South east Asia.

Pardon, I type it unconsciously 😂

[–] [email protected] 1 points 1 year ago

Oh no worries! I've just never heard it before lol

[–] [email protected] 3 points 1 year ago

I manage my config files with RCM, this way: https://fedoramagazine.org/managing-dotfiles-rcm/

But I use it for share my dotfiles between my home and my work computer. For distro hopping only, I have my /home mounted in a secondary HD, so it's never formatted.

For the config files in other paths, I keep a log of everything I changed in Dropbox and then I redo. I admit that this may not be the best solution, but the others works good.

[–] [email protected] 3 points 1 year ago

I have a git repository in ~/dotfiles, and symbolic link the ones I want as I need them. I've only just started tracking my dotfiles and I'm not super disciplined with it yet, so I still have slightly different setups on each system.

[–] [email protected] 3 points 1 year ago

I used to have a git repo on Github for my dotfiles but I took it down when I realized that there are some config files I don't want public like my newsboat links or API keys on my ~/.bashrc. Now I just sync it encrypted to some file storage but I may put it on my private git server instead where password-store lives.

[–] [email protected] 3 points 1 year ago

Resilio Sync and symlinks. The symlinks aren't great but I never remember to update git.. Resilio is wonderful.

[–] UnfortunateShort 2 points 1 year ago

With great difficulty... And tbh mostly copy-paste to a MEGA sync

[–] cow 2 points 1 year ago

I'm not really a distro hopper but I just have my home directory as a git repository with a gitignore file. https://git.sr.ht/~cowingtonpost/dotfiles/tree/main/item/.gitignore

[–] InverseParallax 1 points 1 year ago* (last edited 1 year ago)

Git clone, cd repo, bin/makelinks.sh

install zsh tmux lsb_release

Relogin, environment works, aliases make everything distro/os agnostic again (spend a lot of time in freebsd and osx), next step is optionally adding ssh key to Auth server to make it privileged, otherwise it's just an insecure drone.

Edit: this last hop was to a much beefier machine on clean debian vs a half-broken proxmox desktop, my lxc scripts have reached the point that proxmox is a hindrance especially with fast vm gfx, but I was lazy and just copied my .mozilla directory.

Amazing, worked flawlessly, my ff configuration is complex with tons of containers and add-ons, they just magically worked and I was still logged in to my websites, I was stunned, keeping that trick from now on.

[–] Raphael 1 points 1 year ago

I don't stow or anything difficult anymore, it complicates things.

I just save everything in my gitlab account and then I manually create the links.

[–] Kekin 1 points 1 year ago

I copy everything in my home folder and paste it all in the new installation. Works well if I stick with the same desktop environment.

[–] GustavoM 1 points 1 year ago* (last edited 1 year ago)

Via a script that "automatically" copies (and installs) everything I need to its respective folder.

[–] [email protected] 1 points 1 year ago

I really like the simplicity of this workflow by StreakyCobra on HN (explained as a blog post here):

I use:

git init --bare $HOME/.myconf
alias config='/usr/bin/git --git-dir=$HOME/.myconf/ --work-tree=$HOME'
config config status.showUntrackedFiles no

where my ~/.myconf directory is a git bare repository. Then any file within the home folder can be versioned with normal commands like:

config status
config add .vimrc
config commit -m "Add vimrc"
config add .config/redshift.conf
config commit -m "Add redshift config"
config push
And so one…

No extra tooling, no symlinks, files are tracked on a version control system, you can use different branches for different computers, you can replicate you configuration easily on new installation.

[–] [email protected] 1 points 1 year ago

I just don't wipe out /home when I reinstall. Same /home partition, different distro on /

load more comments
view more: next ›