Ubuntu Configuration
basic install
This are the basic packages to install depending on the need. Depending on the availability and version update this packages in Ubuntu might installable either via apt or snap.
Since the majority of the operation are gonna take place in the terminal we set that first.
Install the fundamental apt packages
1sudo apt install ca-certificates gpg wget curl git && sudo snap install synaptic
terminal
We use dropdown terminal (guake) and auxiliary terminal (alacritty) for full desktop application. As shell we opt for zsh.
1sudo apt install zsh guake && sudo snap install alacritty
For lazy people but a bit bloated oh-my-zsh
1sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
Activate Guake autostart and remove “open new tab in current directory”
monitoring & benchmark
Monitoring temperature (watch sensors
) and in/out connections (netstat -lftpu
)
1sudo apt install lm-sensors net-tools conky
Add conky to startup (Conky System Monitoring)
/usr/bin/conky
For Blender Benchmark check here
editing, notes & reading
1sudo apt install texlive-full && sudo snap install logseq zotero
Install Zotero Extensions
- ZotFile
- Better BibTeX
- zotero-actions-tags
- zotero-night
Copy your config file
user.js
into
1cp user.js ~/.zotero/zotero/<randomstring>
remote control
1sudo apt install openssh-server tmux
Move your public key from the client with
1ssh-copy-id -i ~/.ssh/id_rsa user@ip
In order to control remotely a jupyter notebook
1ssh -L 8080:localhost:8080 user@ip && \
2jupyter notebook --no-browser --port=8080 &
coding tools
Add cmake updated repository
1wget -O - https://apt.kitware.com/keys/kitware-archive-latest.asc 2>/dev/null | gpg --dearmor - | sudo tee /usr/share/keyrings/kitware-archive-keyring.gpg >/dev/null && \
2echo 'deb [signed-by=/usr/share/keyrings/kitware-archive-keyring.gpg] https://apt.kitware.com/ubuntu/ jammy main' | sudo tee /etc/apt/sources.list.d/kitware.list >/dev/null
Install coding suite
1sudo apt install cmake-curses-gui gfortran python3-pip ipython3 && sudo snap install vscode hugo #(zola)
plus some basic python packs
1pip install numpy matplotlib scipy scikit-learn notebook ipympl
1pip install web3
Add this lines to the .zshrc
to make local executable reachable plus useful shortcut for ipython
1# Local bin
2export PATH=$HOME/.local/bin:$PATH
3
4# Ipython shortcut
5alias ipy="ipython3"
social & media
1sudo snap install telegram zoom discord slack thunderbird spotify gimp
Workspace Setup
Folders Creation
Create the following folders
1mkdir ~/Developments ~/Papers ~/Repositories
Your home should look like
📂~/
┣ 📂Developments
┃ ┗ 📜projects in development
┣ 📂Documents
┃ ┗ 📜radom docs
┣ 📂Downloads
┃ ┗ 📜random downs
┣ 📂Papers
┃ ┗ 📜papers in progress
┗ 📂Repositories
┗ 📜necessary repos
SSH Configuration
Generate ssh key in order to communicate with github server
1ssh-keygen -t ed25519 -C "your_email@example.com"
Add to you github the output of
1cat ~/.ssh/id_ed25519.pub
For more info check here
Machine Learning Suite
CUDA (& NVIDIA Driver)
Reference source here
1cd ~/Downloads && \
2wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2204/x86_64/cuda-keyring_1.1-1_all.deb && \
3sudo dpkg --install cuda-keyring_1.1-1_all.deb
Check for updates here
1sudo apt update && sudo apt install cuda libcudnn8-dev
Add this line to .zshrc
to make cuda compiler visible
1# CUDA Compiler
2export PATH=$PATH:/usr/local/cuda/bin
MKL (& other stuff)
1wget -O- https://apt.repos.intel.com/intel-gpg-keys/GPG-PUB-KEY-INTEL-SW-PRODUCTS.PUB \
2| gpg --dearmor | sudo tee /usr/share/keyrings/oneapi-archive-keyring.gpg > /dev/null && \
3echo "deb [signed-by=/usr/share/keyrings/oneapi-archive-keyring.gpg] https://apt.repos.intel.com/oneapi all main" | sudo tee /etc/apt/sources.list.d/oneAPI.list && \
4sudo apt update && sudo apt install intel-basekit intel-oneapi-mkl
Add shortcut to .zshrc
to activate Intel suite
1# Intel MKL
2alias intel="source /opt/intel/oneapi/setvars.sh"
PyTorch
Download and extract in Repositories the latest version of MAGAMA library from here
1cd ~/Repositories/magma && \
2mkdir build && \
3cd build && \
4cmake .. && \
5make -j16 && \
6sudo make install
The instruction to install PyTorch can be found here. Remember to activate Intel MKL.
1pip install ninja
2cd ~/Repositories && \
3git clone --recursive https://github.com/pytorch/pytorch
4cd pytorch
5pip install -r requirements.txt
6export _GLIBCXX_USE_CXX11_ABI=1
7python setup.py build --cmake-only
8ccmake build
Check that everything is ok and install it
1MAX_JOBS=16 python3 setup.py install --user
Install
1pip install gpytorch torch_geometric
FAISS
The instruction to install FAISS can be found here
1sudo apt install swig
2cd ~/Repositories && \
3git clone git@github.com:facebookresearch/faiss.git
4mkdir build && \
5cd build && \
6cmake .. \
7-DFAISS_ENABLE_GPU=ON \
8-DFAISS_ENABLE_PYTHON=ON \
9-DCMAKE_BUILD_TYPE=Release \
10-DFAISS_OPT_LEVEL=avx512 \
11-DBLA_VENDOR=Intel10_64_dyn \
12-DCUDAToolkit_ROOT=/usr/local/cuda \
13-DCMAKE_CUDA_ARCHITECTURES="89" \
14-DBUILD_TESTING=OFF
Check that everything is ok and then install it
1sudo make install && \
2cd faiss/python && pip install .
Linear Algebra & Basic Utils
1git clone git@gitlab.com:libeigen/eigen.git
2git clone git@github.com:nash169/utils-lib.git
Graphics
1sudo apt install libgl1-mesa-dev libsdl2-dev libassimp-dev
1sudo apt install libegl1-mesa-dev libglfw3-dev libopenal-dev libdevil-dev libfaad-dev libfreetype6-dev spirv-tools glslang-dev libharfbuzz-dev libmeshoptimizer-dev libopenexr-dev libwebp-dev libglm-dev
1git clone --recursive git@github.com:mosra/corrade.git
2git clone --recursive git@github.com:mosra/magnum.git
3git clone --recursive git@github.com:mosra/magnum-plugins.git
1git clone git@github.com:nash169/graphics-lib.git
Rigid Body Physic & Control
1sudo apt install libboost-all-dev liburdfdom-dev liburdfdoom-headers-dev libyaml-cpp-dev libzmq3-dev
1sudo apt install libcppad-dev
1git clone git@github.com:bulletphysics/bullet3.git
2git clone --recursive git@github.com:mosra/magnum-integration.git
3git clone --recursive git@github.com:stack-of-tasks/eigenpy.git
4git clone --recursive git@github.com:stack-of-tasks/pinocchio.git
1git clone git@github.com:nash169/control-lib.git
2git clone git@github.com:nash169/beautiful-bullet.git
3git clone git@github.com:nash169/zmq-stream.git
Optimization
1sudo apt-get install gcc g++ gfortran git patch wget pkg-config liblapack-dev libmetis-dev
1sudo apt install linnlopt-cxx-dev coinor-libipopt-dev
2git clone git@github.com:coin-or/qpOASES.git
1git clone git@github.com:nash169/optimization-lib.git
Robotics Experiments
1git clone git@github.com:frankaemika/libfranka.git
2git clone git@github.com:nash169/optitrack-lib.git
3git clone git@github.com:nash169/franka-control.git