Prelude#
This article is mainly to record the stuff to do post Ubuntu Desktop 18.04 Installation.
Purpose#
All actions post installation is to make the Ubuntu Desktop a wonderful toolkit for developer.
Prerequisite#
- Install all essentials
sudo apt install -y git curl
sudo apt-get install -y apt-transport-https ca-certificates gnupg-agent
sudo apt install -y software-properties-common Install & Setup Zsh#
- Install Zsh
sudo apt install -y zsh- Setup Zsh
I prefer Prezto Zsh, which is the minimal version of Oh-My-Zsh. In my opinion, Oh-My-Zsh is kind of slow and sort of overblown.
- Create a script
setup_prezto.zsh - Save the code below to the scirpt and run
zsh ./setup_prezto.sh && source ~/.zshrc
git clone --recursive https://github.com/sorin-ionescu/prezto.git \
"${ZDOTDIR:-$HOME}/.zprezto"
setopt EXTENDED_GLOB
for rcfile in "${ZDOTDIR:-$HOME}"/.zprezto/runcoms/^README.md(.N); do
ln -s "$rcfile" "${ZDOTDIR:-$HOME}/.${rcfile:t}"
done
if [ -d ~/.zprezto ];then
cp ubt18/z* ~/.zprezto/runcoms/
fi
[[ ! -d ~/.zprezto-contrib ]] && mkdir -p ~/.zprezto-contrib;
sudo -R $UsER:$USER .zprezto
sudo -R $UsER:$USER .zprezto-contrib
chsh -s /bin/zsh
echo "Setup finished."
echo "Please reboot or restart terminal."Install & Setup Vim with useful plugins#
- Install Vim
sudo apt install -y vim- Setup Vim with some amazing plugins
There are many different vim plugins available online. There is a plance callded Vim Awesome, which you can find anything you want.
My favorite option is the Junegunn’s Vim plugins. I like the simplicity of this solution.
- Prepare the vimrc as below
set nu
colorscheme delek
:imap jj <Esc>
:imap jk <Esc>
:imap kj <Esc>
:imap ii <Esc>
" Specify a directory for plugins
" - For Neovim: ~/.local/share/nvim/plugged
" - Avoid using standard Vim directory names like 'plugin'
call plug#begin('~/.vim/plugged')
" Make sure you use single quotes
" Shorthand notation; fetches https://github.com/junegunn/vim-easy-align
Plug 'junegunn/vim-easy-align'
" Any valid git URL is allowed
Plug 'https://github.com/junegunn/vim-github-dashboard.git'
" Multiple Plug commands can be written in a single line using | separators
Plug 'SirVer/ultisnips' | Plug 'honza/vim-snippets'
" On-demand loading
Plug 'scrooloose/nerdtree', { 'on': 'NERDTreeToggle' }
Plug 'tpope/vim-fireplace', { 'for': 'clojure' }
" Using a non-master branch
Plug 'rdnetto/YCM-Generator', { 'branch': 'stable' }
" Using a tagged release; wildcard allowed (requires git 1.9.2 or above)
Plug 'fatih/vim-go', { 'tag': '*' }
" Plugin options
Plug 'nsf/gocode', { 'tag': 'v.20150303', 'rtp': 'vim' }
" Plugin outside ~/.vim/plugged with post-update hook
Plug 'junegunn/fzf', { 'dir': '~/.fzf', 'do': './install --all' }
Plug 'Shougo/vimproc.vim', { 'do': 'make' }
function! BuildYCM(info)
" info is a dictionary with 3 fields
" - name: name of the plugin
" - status: 'installed', 'updated', or 'unchanged'
" - force: set on PlugInstall! or PlugUpdate!
if a:info.status == 'installed' || a:info.force
!./install.py
endif
endfunction
Plug 'Valloric/YouCompleteMe', { 'do': function('BuildYCM') }
" Plug 'Valloric/YouCompleteMe', { 'do': './install.py' }
Plug 'fatih/vim-go', { 'do': ':GoInstallBinaries' }
" Unmanaged plugin (manually installed and updated)
Plug '~/my-prototype-plugin'
" Initialize plugin system
call plug#end()Install MySql#
- Here I just install the default MySql 5.7. If you want to install the new version or MariaDB, please check out the official website.
# Install MySql server and client
sudo apt install mysql-server mysql-client
# Check if the MySql service active and running
sudo systemctl status mysql.service
# Enable or Restart MySql service
sudo systemctl enable mysql.service
sudo systemctl restart mysql.service
# Create root account
sudo mysql_secure_installation
# After the password for root has been created
sudo mysql -u root -p
# Update the password via mysql comomand pompt
mysql>ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'your_strong_password';
# Create another admin is highly recommended in production env
mysql>GRANT ALL PRIVILEGES ON *.* TO 'admin'@'localhost' IDENTIFIED BY 'your_strong_password';Install Java#
Install AdoptOpenJDK for Linux
# Download tarball you need # Unzip the tarball tar xzf OpenJDK11U-jdk_x64_linux_hotspot_x.y.z.tar.gz sudo mv OpenJDK11U-jdk_x64_linux_hotspot_x.y.z.tar.gz \ /usr/lib/jvm/OpenJDK11U-jdk_x64_linux_hotspot_x.y.z sudo apt install update-java-alternatives # Check alternative JDK install update-java-alternatives -l adoptopenjdk-11-hotspot-amd64 1111 /usr/lib/jvm/adoptopenjdk-11-hotspot-amd64 adoptopenjdk-14-hotspot-amd64 1141 /usr/lib/jvm/adoptopenjdk-14-hotspot-amd64 adoptopenjdk-8-hotspot-amd64 1081 /usr/lib/jvm/adoptopenjdk-8-hotspot-amd64 # Switch JDK update-java-alternatives -s adoptopenjdk-xx-hotspot-amd64
Other useful tools#
Office
- I prefer WPS Office. Rename the template files, because the template names contain Chinese characters and it may cause problem later.
Dictionary
- Offline Dictionary
## Install dict client & server (dictd) sudo apt install -y dict sudo apt install -y dictd ## Install dictionary libraries sudo apt-get install dict-gcide sudo apt-get install dict-wn sudo apt-get install dict-devil sudo apt-get install dict-moby-thesaurusMeida
- VLC
sudo apt install vlc- Spotify
sudo snap install spotify