Arch Linux Migration Checklist
Added: - Modified:
Category: 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