They can all be automated with installation scripts , but I have the most experience with 47 . I ' m sure somebody with more experience can guide you more with 13 . 4 Most package names between distros should be roughly the same , although there might be different names for some basedevel vs buildessential . You could write a script that will install all the packages you want . As for the distrospecific names of packages , you could try to detect which distro you ' re on , or provide the name of your distro as argument to the script and it will take a different action based on the argument . 5 Same as above , just make sure the script adds the repositories you want before trying to install the packages from them . 6 Same as above . 7 Applicationspecific settings can be configured using dotfiles , usually placed in your home directory . I manage these by keeping all of them in a directory somewhere ~ dotfiles , for example and then I symlink everything . For example , ~. vimrc is symlinked from ~ dotfilesvimvimrc . This can be easily done with a script . I would recommend you manage your scripts and dotfiles using some version control software , like Git or Mercurial , and put them somewhere remote e . g . Github or on external media so you can easily just download it when you get your new distro up and running so you can save time downloadingconfiguring everything and just jump right into using your computer . If you ' ve never used version control before One advantage of using version control is that if you make some breaking change , you can revert to an older version of your files quickly and easily . Hope this helps . 9