tested on macOS, Ubuntu, and Redhat.
# clone the repository
$ cd ~
$ git clone --recursive https://github.com/cih9088/dotfiles.git ~/dotfiles
# or pull in case you have cloned it already
$ cd ~/dotfiles
$ git pull
$ git submodule update --init --recursive
# make sure that you have following commands `make`, `git`, `sudo`
$ command -V make git sudo
# install them if not exist
# debian
$ apt update && apt install -y make git sudo
# redhat
$ dnf install -y make git sudo
The following list would be installed in your system. You need privilege (sudo
).
No need if you have them on your system.
$ cd ~/dotfiles
$ ./bin/dots test-prerequisites # Verify which commands are installed
$ ./bin/dots install prerequisites # Install prerequisites (previlege is needed)
GH_ACCESS
: give maximum of 5,000 rate limits to github REST API
ex)GH_ACCESS=client_id:client_secret dots [...]
PREFIX
: change path to install locally (default:$HOME/.local
)
ex)PREFIX=/path/to/install dots [...]
- systemwide: others could execute those commands (need privilege)
- locally: others could not (All of commands and libraries would be installed in
PREFIX
(deafult:$HOME/.local
) )
NOTE: systemwide install is preferred for macOS.
- Non-interactive install all listed in
config.yaml
- default mode is local:
dots install --mode local --config config.yaml
- default mode is system (prefer way for mac):
dots install --mode system --config config.yaml
- default mode is local:
- Non-interactive update all listed in
config.yaml
- default mode is local:
dots update --mode local --config config.yaml
- default mode is system (prefer way for mac):
dots update --mode system --config config.yaml
- default mode is local:
- Update dotfiles only:
dots update --yes configs bins
$ cd ~/dotfiles
$ ./bin/dots list
$ cd ~/dotfiles
# Install zsh interactively with dependencies (to install it locally you must install dependencies as well)
$ ./bin/dots install zsh
# Install zsh interactively without dependencies
$ ./bin/dots install --skip-dependencies zsh
# Install the latest zsh non-interactively
$ ./bin/dots install --mode local --yes zsh
# Install zsh version of 5.9 non-interactively
$ ./bin/dots install --mode local --yes --version 5.9 --skip-dependencies zsh
$ cd ~/dotfiles
# Remove zsh interactively (remove command implicitly applies `--skip-dependencies`)
$ ./bin/dots remove zsh
# Remove locally installed zsh non-interactively
$ ./bin/dots remove--mode local --yes zsh
$ cd ~/dotfiles
# Update zsh interactively with dependencies (to install it locally you must install dependencies as well)
$ ./bin/dots update zsh
# Update zsh interactively without dependencies
$ ./bin/dots update --skip-dependencies zsh
# Update the latest zsh non-interactively
$ ./bin/dots update --mode local --yes zsh
# Update zsh version of 5.9 non-interactively
$ ./bin/dots update --mode local --yes --version 5.9 --skip-dependencies zsh
$ cd ~/dotfiles
$ ./bin/dots change-shell
Setup macOS development environment with easy. Mostly copied from here.
$ cd ~/dotfiles
$ make initMac