The Library Phantasmagoria

Arch Linux Migration Checklist

Added: - Modified:
Category: tech
Tags: tech

Introduction

This is a checklist for me to reference when setting up new (Arch) Linux devices.

Guide

Pacman Configuration

Make a package list

pacman -Qqen > pkglist.txt
pacman -Qqem > pkglist_aur.txt

Backup /var/cache/pacman/pkg Backup ~/.config Backup /etc

List modified config files from packages pacman -Qii | grep '^MODIFIED'

Install from pkglist.txt pacman -S --needed - < pkglist.txt

Example pkglist.txt

base
base-devel
linux
linux-firmware
nano
sudo
adobe-source-code-pro-fonts
adobe-source-han-sans-jp-fonts
adobe-source-han-serif-jp-fonts
adobe-source-sans-fonts
adobe-source-serif-fonts
alsa-utils
biber
bluedevil
breeze
breeze-gtk
calibre
chromium
clamav
clamtk
cmatrix
cups
deluge-gtk
discord
kdenlive
ark
kate
konsole
kwalletmanager
kde-system
plasma
texlive-most
xorg
xorg-apps
xorg-drivers
xorg-fonts
firefox
firefox-decentraleyes
firefox-stylus
firefox-ublock-origin
sddm
etc-update
exfat-utils
cronie
firewalld
gimp
gnome-keyring
htop
hunspell-en_gb
hunspell-en_us
inkscape
keepassxc
krita
libreoffice-fresh
libvirt
linux-headers
lutris
networkmanager
nmap
nvidia
obs-studio
pavucontrol
pulseaudio-bluetooth
sddm-kcm
steam-native-runtime
texstudio
unzip
virt-manager
v4l2loopback-dkms
vlc
wget
wpa_supplicant
zsh-autosuggestions
zsh-completions
zsh-history-substring-search
zsh-syntax-highlighting
youtube-dl
kcm-wacomtablet
networkmanager-openvpn
onboard
pulseaudio
telegram-qt
thunderbird
tree
traceroute
vkd3d
xdiskusage
xf86-input-wacom

Example pkglist_aur.txt

chromium-widevine
ebtables
epson-inkjet-printer-escpr2
libreoffice-impress-templates
obs-v4l2sink
ocs-url
openrgb-git
pagraphcontrol-git
pandoc-bin
qownnotes
telegram-desktop-bin
ttf-ms-fonts

Configuration Scripts/Commands

# Hostnames
HOSTNAME="linuxhost"
echo "127.0.0.1 localhost $HOSTNAME" >> /etc/hosts
echo "::1 localhost $HOSTNAME" >> /etc/hosts
echo "$HOSTNAME" > /etc/hostname

# Allow users to mount filesystems
echo "user_allow_other" >> /etc/fuse.conf

# Set preferred encodings
echo "en_US.UTF-8 UTF-8" >> /etc/locale.gen
echo "ja_JP.UTF-8 UTF-8" >> /etc/locale.gen
echo "ru_RU.UTF-8 UTF-8" >> /etc/locale.gen
locale-gen

# Set 4-space tabs and add syntax highlighting to nano
sed -i.bak 's/\# set tabsize 4/set tabsize 4/' /etc/nanorc
sed -i.bak 's/# include "\/usr\/share\/nano\/\*.nanorc"/include "\/usr\/share\/nano\/\*.nanorc"/' /etc/nanorc

# Install yay
pacman -S --needed git base-devel
git clone https://aur.archlinux.org/yay-bin.git
cd yay-bin
makepkg -si

# Set up etc-keeper
pacman -S --needed etckeeper
etckeeper init
etckeeper commit "first commit"
systemctl enable etckeeper.timer

# Clean pacman cache weekly
pacman -S --needed pacman-contrib
systemctl enable paccache.timer