3. Base Installation
Table of Contents
Install base packages
Install using the script
If you’re new to Linux and unsure what packages to install, download this script:
Arch Linux Base Packages Installation Script
Using “lynx”, highlight this link and press <Enter> followed by <d> to download the file. Choose “Save to disk” and press <Enter>. When prompted for a filename, leave it as is and press <Enter> again to save.
Or use curl:
curl -o base-install.sh -k https://archguide.vercel.app/base-install.sh
Then type:
chmod +x base-install.sh
./base-install.sh
All the packages being installed are the same as in the “Install manually” section.
Install manually
First install indirect dependencies of the “base” package:
pacstrap /mnt cryptsetup device-mapper e2fsprogs less
- cryptsetup - allows access and management of encrypted devices
- device-mapper - a kernel component for logical volume management
- e2fsprogs - utilities for handling the “ext2”, “ext3” and “ext4” file systems
- less - a terminal based program for viewing text files
Then proceed with installing everything else:
pacstrap /mnt ...
Here is a list of packages to install next:
Base:
- base - Minimal package set to define a basic Arch Linux installation
- s-nail - Environment for sending and receiving mail, required by “base”
Microcode:
Choose the CPU firmware according to your manufacturer.
- intel-ucode
- amd-ucode
Kernel:
Installing a kernel you have to pick one of the two options:
- linux - The latest stable release of Linux kernel and its modules
- linux-lts - The Long-term support Linux kernel and its modules
For new users a suggestion is to choose “linux-lts”. You can always switch to “linux” or vise-versa later. Both kernels updating on a regular basis.
Firmware:
- linux-firmware
File system utilities:
- jfsutils
- reiserfsprogs
- sysfsutils
- xfsprogs
Administrative utilities:
- htop - Interactive process viewer
- logrotate - Utility for automatic rotation of system logs
- mdadm - A tool for managing md service arrays
- which - A utility to show full path of commands
Permission elevation:
- sudo - Gives users the ability to run commands as root
- doas - Simplified and lightweight alternative to “sudo”
For new users a suggestion is to choose “sudo”.
Security:
- ufw - A dead-simple firewall
Storage management:
- lvm2 - Logical Volume Manager 2 utilities
- udisks2 - Disk management service
External devices management:
- bluez* - Daemons for the Bluetooth protocol stack
- bluez-utils* - Bluetooth management utilities
- usbutils - A collection of USB tools to query connected USB devices
\* - Optional.
Web Browser:
- links - Text and graphics WWW browser
- lynx - A text browser for the World Wide Web
Terminal multiplexer:
- screen - Full-screen window manager that multiplexes a physical terminal
Text Editors:
- nano - A small and simple text editor
- vi - Required by the “visudo” which helps to safely edit “/etc/sudoers”
- vim - An improved Vi text editor
Documentation:
- man-db
- man-pages
- texinfo
Network utilities:
- connman - Command-line network manager
- dhcpcd - DHCP client daemon
- inetutils - A collection of common network programs
- iproute2 - Programms for basic and advanced IPv4 and IPv6 networking
- iw - Configuration utility for wireless devices
- openssh - A tool for remote login with the SSH protocol
- openvpn - An easy and configurable VPN
- wpa_supplicant - A utility providing key negotiation for WPA networks
System utilities:
- diffutils - Utility programs for creating patch files
- gcc - The GNU Compiler Collection
- make - The GNU make utility for maintaining groups of programs
- pkgconf - Package compiler and linker metadata toolkit
Sound server:
- pulseaudio
- pulseaudio-alsa
- pulseaudio-bluetooth*
\* - Optional.
Languages:
- perl
- python
- python-pip
The process of the installation will take a little while. If “pacstrap” warns you about some package it didn’t found, check the last command for a typo.
Generate the fstab
genfstab -U /mnt >> /mnt/etc/fstab
Chroot
arch-chroot /mnt
Set time zone
ln -sf /usr/share/zoneinfo/Region/City /etc/localtime
hwclock --systohc
To list available regions and cities, press <Tab> at appropriate positions while entering the command.
Set localization
vim /etc/locale.gen
Uncomment needed locales:
NOTE: Non-English speaking users should uncomment respective locales for their language.
en_US.UTF-8 UTF8
en_US ISO-8859-1
Save the file and run:
locale-gen
Lastly, execute the following command:
echo LANG=en_US.UTF-8 > /etc/locale.conf
---