Similar to my python post, I like to keep track of the essential installations on a new Ubuntu system.
Here is the compact version of everything:
$ sudo apt-get update && sudo apt-get upgrade && sudo apt-get dist-upgrade && sudo apt-get autoremove $ sudo apt-get install build-essential openmpi-bin openmpi-doc libopenmpi-dev git stow tmux python3-pip python-pip cmake vim liblapack* libblas* caffeine silversearcher-ag $ sudo apt-get autoremove
Extra Commands: Most systems come with
python but if not run
sudo apt-get install gcc g++ python python3
The list above is for standard development. On a more frequented machine I’ll install LaTeX and LyX
$ sudo apt-get install texlive $ sudo add-apt-repository ppa:lyx-devel/release $ sudo apt-get update $ sudo apt-get install lyx
What does each command do? Why include that software?
apt-get update- Update the list of packages that Ubuntu can install
apt-get upgrade- Update to newer installed packages
apt-get dist-upgrade- same as upgrade but can add/remove things in a ‘smart’ way This just brings the system up to date before installing the extra packages
Here is where all the non-default programs get installed
build-essential- compiler tools to create programs
openmpi-bin openmpi-doc libopenmpi-dev- message passing code that allows for massively parallel code on a supercomputer
git- version control system
stow- automatically create symlinks; used in conjunction with my dotfiles (see below)
tmux- terminal multiplexer to have multiple terminals in one window. See this tutorial
python3-pip python-pip- “apt-get” for python; see my python post
cmake- I tend to use cmake in order to maximize cross-plaform compatibility
vim- my preferred text editor
liblapack* libblas*- BLAS and LAPACK, effecient matrix and linear algebra tools
caffeine- program to disable the screensaver for those long builds where you want to track progress
silversearcher-ag- a ‘search and highlight’ program that is incredibly fast; indispensable to find references
apt-get autoremove - Finally remove anything that isn’t needed anymore due to dependency changes or otherwise.
That’s everything! Immediately after this I’ll also clone my dotfiles which contain portable preferences for bash, vim, tmux, python, and more.