Hi,
I am curious what people’s recommended workflows for getting started on a new machine are, installing all the software and drivers you normally use. I am mostly interested in Linux but I am curious if better workflows exist in Windows or Mac. Do you have a fancy setup script? Do you have a custom distro? Do you use a virtual machine or container-ish hack? Do you clone your system somehow? Any tools you recommend?
I use Ubuntu. I just install the new system, copy over my home directory (rsync -avP
or something like that), and then apt install
whatever I find is missing.
Last time I installed a new machine I put all partitions but /boot
on ZFS, should make the above even easier next time.
I am assuming that the machine is a desktop/laptop. For a server, I would do a more careful migration of /var
, /etc
, and other relevant directories. But on a laptop, I pretty much never customize anything there, and just keep a backup in case I need to grep it for some stuff. In fact, I am happy to lose the cruft that accumulates in directories for each new install.
I don’t think that containers make much sense for a laptop/desktop, but these days they have almost zero overhead anyway so why not. I have a colleague who runs Ubuntu on a MacBook Pro within a container (he likes the hardware).
2 Likes
I use Arch Linux.
I re-create my user (that ends up having the same UID and GID because is the first user created). I copy the home from the old machine (preserving permissions). I execute a pacman
command in the old machine to check all packages I explicitly installed and install the same in the new machine (or a subset of them, if I perceive many of them are not necessary anymore).
Arch Linux installation process is kinda of manual, but I like it this way. I often end up improving my installation one extra step towards my ideal. One day I will test that disk encryption thingies.
1 Like
I use Debian.
I just install the new system, making use of the tasksel
step in the end to install the recommended packages for a desktop system.
I have a gitted shell-script helping re-install all other packages that I need, along the lines of:
# Base utilities
apt install -y emacs git
apt install -y htop tree gparted
apt install -y rsnapshot
...
# Desktop environment
apt install -y awesome kitty i3lock kupfer lxpolkit
...
(This list of packages is not kept updated each time I install a package. Instead, before using this script on a new system, I try and make sure it is as up-to-date as possible by looking for apt install
commands in the /root/.bash_history
files of other machines.)
I then create my user and populate the (initially empty) home directory with
- config files coming from a few git repos;
- possibly other files and documents coming from my back-up system.
2 Likes