Files
tooling/wsl-setup.org
2019-09-01 18:20:04 +12:00

119 lines
3.2 KiB
Org Mode

#+TITLE: Windows Subsystem for Linux Setup
#+AUTHOR: James Blair
#+EMAIL: mail@jamesblair.net
#+DATE: 1st September 2019
* Update and install packages
To get started we ensure the package manager is up to date.
#+NAME: Update system packages
#+BEGIN_SRC tmate
sudo apt-get update && sudo apt-get upgrade
#+END_SRC
Next we install a series of standard packages that form part of our workflow or
are dependencies for other tools in our environment.
#+NAME: Install standard packages
#+BEGIN_SRC tmate
sudo apt-get install -y git curl wget tmate locales xclip tmux net-tools less
\ software-properties-common htop wget
#+END_SRC
We use [[https://pandoc.org/][pandoc]] for documentation export from spacemacs.
#+NAME: Install pandoc
#+BEGIN_SRC tmate
curl -L -O https://github.com/jgm/pandoc/releases/download/2.7.3/pandoc-2.7.3-1-amd64.deb
sudo dpkg -i /tmp/pandoc-2.7.3-1-amd64.deb
#+END_SRC
For additional package management we use node. The code below installs node ~12~.
#+NAME: Install node
#+BEGIN_SRC tmate
sudo curl -sL https://deb.nodesource.com/setup_12.x | bash -
sudo apt-get install -y nodejs
#+END_SRC
For managing secrets we use [[https://bitwarden.com/][bitwarden]] which provides a great [[https://github.com/bitwarden/cli][cli utility]].
#+NAME: Install bitwarden and login
#+BEGIN_SRC tmate
export account=[BITWARDEN_ACCOUNT]
sudo npm install -g @bitwarden/cli
bw login $account
#+END_SRC
* Install spacemacs
A key component in our environment is spacemacs. The section below will setup
version ~27.0.50~ of emacs and then spacemacs on top.
#+NAME: Clone the emacs repository
#+BEGIN_SRC tmate
git clone -b stable --depth=1 https://github.com/ii/emacs
#+END_SRC
#+NAME: Install dependencies
#+BEGIN_SRC tmate
sudo apt-get install autoconf make gcc texinfo libgtk-3-dev libxpm-dev libjpeg-dev libgif-dev libtiff5-dev libgnutls28-dev libncurses5-dev
#+END_SRC
#+NAME: Compile and install emacs
#+BEGIN_SRC tmate
cd /emacs/
./autogen.sh
./configure.sh
make
sudo make install
#+END_SRC
After compiling and installing emacs we should verify that version ~27.0.50~ is
installed.
#+BEGIN_SRC tmate
emacs --version
#+END_SRC
* Setup a local emacs pacakge mirror
To save time we will setup a local mirror for all the LISP files that we need as part of spacemacs.
Depending on your machine and internet connection it may take some time to download, configure and compile.
#+NAME: Setup local emacs elpa mirror
#+BEGIN_SRC tmate
sudo git clone --depth 1 -b stable https:/github.com/ii/elpa-mirror /usr/local/elpa-mirror
#+END_SRC
Setup spacemacs within our home folder.
#+BEGIN_SRC tmate
git clone --depth 1 -b stable --recurse-submodules https://github.com/ii/spacemacs.git ~/.emacs.d
ln -sf ~/.emacs.d/private/local/dot-spacemacs/.spacemacs ~/.spacemacs
emacs --batch -l ~/.emacs.d/init.el
#+END_SRC
* Setup environment dotfiles
Within wsl we can use .dotfiles to further customise our environment. The script
below restores my versions of key dotfiles automatically.
#+NAME: Clone and restore the dotfiles
#+BEGIN_SRC tmate
git clone ssh://git@gitlab.jamma.life:2224/jmhbnz/tooling.git
cd /tooling/
mv * ~/
#+END_SRC