UP | HOME

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

---

NEXT 4. Network configuration

Author: Pipe

Created: 2023-02-24 Fri 22:02