119 lines
3.2 KiB
Org Mode
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
|
|
|
|
|