Basic Tools
We will install a flurry of basic tools.
Refresh Mirror List
Here's a script to refresh the mirror list. Save it to ~/bin/updatemirrors
#!/usr/bin/bash
which rankmirrors
rm /etc/pacman.d/mirrorlist
curl -s "https://archlinux.org/mirrorlist/?country=US&protocol=https&ip_version=4&ip_version=6&use_mirror_status=on" | sed -e 's/^#Server/Server/' -e '/^#/d' | rankmirrors -n 10 - > /etc/pacman.d/mirrorlist
#!/usr/bin/bash
which rankmirrors
rm /etc/pacman.d/mirrorlist
curl -s "https://archlinux.org/mirrorlist/?country=US&protocol=https&ip_version=4&ip_version=6&use_mirror_status=on" | sed -e 's/^#Server/Server/' -e '/^#/d' | rankmirrors -n 10 - > /etc/pacman.d/mirrorlist
Then make it executable
chmod +x ~/bin/updatemirrors
chmod +x ~/bin/updatemirrors
Run sudo updatemirrors
to update the mirrors when needed
yay
yay
is an AUR helper that helps with installing stuff from AUR. Since yay
is itself an AUR package, we will need to install it from source.
cd ~
git clone https://aur.archlinux.org/yay.git
cd yay
makepkg -si # Run yay --version after this to confirm successful install
cd ..
rm -rf yay
cd ~
git clone https://aur.archlinux.org/yay.git
cd yay
makepkg -si # Run yay --version after this to confirm successful install
cd ..
rm -rf yay
TIP
Unlike pacman
, when using yay
to install, you do not need to run it with sudo
Rust
We will install Rust as the first thing, so we can install some additional tools with cargo
.
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
Enter 1
and hit Enter to install to the default locations
After install, load the environment with
source ~/.cargo/env
source ~/.cargo/env
Oxidize
Time to install more stuff with cargo
. I will provide the configuration files later, so for now we can just install them.
cargo install exa bat cargo-info cargo-watch just du-dust ripgrep fd-find starship zoxide websocat
cargo install exa bat cargo-info cargo-watch just du-dust ripgrep fd-find starship zoxide websocat
Explanation of each package:
Package | Description | Link |
---|---|---|
eza | ls but better | https://github.com/eza-community/eza |
bat | cat with wings | https://github.com/sharkdp/bat |
cargo-info | Cargo command for getting info about crates, and most usefully, feature flags | https://gitlab.com/imp/cargo-info |
cargo-watch | Cargo command for running command in watch mode | https://github.com/watchexec/cargo-watch |
just | Simple command runner | https://github.com/casey/just |
du-dust | Replacement for du | https://github.com/bootandy/dust |
starship | Shell prompt | https://starship.rs/ |
zoxide | Directory jumper | https://github.com/ajeetdsouza/zoxide |
ripgrep | Search tool (telescope.nvim requires it) | https://github.com/BurntSushi/ripgrep |
fd-find | File find tool (telescope.nvim requires it) | https://github.com/sharkdp/fd |
websocat | Websocket client CLI | https://github.com/vi/websocat |
Next Steps
Next we will install tools that require change to .bashrc
, so we can install them all first and copy the .bashrc
directly afterward.