Ubuntu First Start
Similar to my python post, I like to keep track of the essential installations on a new Ubuntu system.
The Script
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 gcc
and python
but if not run sudo apt-get install gcc g++ python python3
LaTeX Install:
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
Details
What does each command do? Why include that software?
Line 1
apt-get update
- Update the list of packages that Ubuntu can installapt-get upgrade
- Update to newer installed packagesapt-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
Line 2
Here is where all the non-default programs get installed
build-essential
- compiler tools to create programsopenmpi-bin openmpi-doc libopenmpi-dev
- message passing code that allows for massively parallel code on a supercomputergit
- version control systemstow
- automatically create symlinks; used in conjunction with my dotfiles (see below)tmux
- terminal multiplexer to have multiple terminals in one window. See this tutorialpython3-pip python-pip
- “apt-get” for python; see my python postcmake
- I tend to use cmake in order to maximize cross-plaform compatibilityvim
- my preferred text editorliblapack* libblas*
- BLAS and LAPACK, effecient matrix and linear algebra toolscaffeine
- program to disable the screensaver for those long builds where you want to track progresssilversearcher-ag
- a ‘search and highlight’ program that is incredibly fast; indispensable to find references
Line 3
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.