How to use the command `pacstrap` (with examples)
- Linux
- December 25, 2023
The pacstrap
command is an Arch Linux install script that allows users to install packages to a specified new root directory. It is a versatile command that can be used in various scenarios to customize the Linux installation process.
Use case 1: Install the base
package, Linux kernel, and firmware for common hardware
Code:
pacstrap path/to/new/root base linux linux-firmware
Motivation:
- This use case is helpful for users who want to install the basic Linux system along with the necessary kernel and firmware for common hardware.
Explanation:
path/to/new/root
: The directory where Arch Linux will be installed.base
: The package group that contains essential system packages required for a basic Arch Linux installation.linux
: The package that provides the Linux kernel.linux-firmware
: The package that contains firmware files for common hardware.
Example output:
[======= 49/49] Installing linux-firmware [====================] 100%
[SUCCESS] Installation of Linux firmware complete.
Use case 2: Install the base
package, Linux LTS kernel, and base-devel
build tools
Code:
pacstrap path/to/new/root base base-devel linux-lts
Motivation:
- This use case is useful for users who want to install the basic Linux system with the Long Term Support (LTS) kernel and development tools.
Explanation:
base-devel
: The package group that contains tools and libraries needed for building and compiling software on Arch Linux.linux-lts
: The package that provides the LTS (Long Term Support) version of the Linux kernel.
Example output:
[======= 50/50] Installing linux-lts [====================] 100%
[SUCCESS] Installation of Linux LTS kernel complete.
Use case 3: Install packages without copying the host’s mirrorlist to the target
Code:
pacstrap -M path/to/new/root packages
Motivation:
- Copying the host’s mirrorlist to the target can sometimes lead to a slower download speed. This use case allows users to install packages without copying the mirrorlist.
Explanation:
-M
: This flag prevents copying the host’s mirrorlist.packages
: The packages that need to be installed.
Example output:
[======= 3/3] Installing packages [====================] 100%
[SUCCESS] All packages installed successfully.
Use case 4: Use an alternate configuration file for Pacman
Code:
pacstrap -C path/to/pacman.conf path/to/new/root packages
Motivation:
- Some users may want to use a custom Pacman configuration file for the installation process. This use case allows users to specify an alternate configuration file.
Explanation:
-C path/to/pacman.conf
: Specifies the path to the custom Pacman configuration file.path/to/new/root
: The directory where Arch Linux will be installed.packages
: The packages that need to be installed.
Example output:
[======= 4/4] Installing packages [====================] 100%
[SUCCESS] All packages installed successfully.
Use case 5: Install packages using the package cache on the host instead of on the target
Code:
pacstrap -c path/to/new/root packages
Motivation:
- When the target has network connectivity issues, it may be beneficial to use the package cache on the host instead of relying on the target’s network connection.
Explanation:
-c
: This flag utilizes the package cache on the host.path/to/new/root
: The directory where Arch Linux will be installed.packages
: The packages that need to be installed.
Example output:
[======= 2/2] Installing packages [====================] 100%
[SUCCESS] All packages installed successfully.
Use case 6: Install packages without copying the host’s pacman keyring to the target
Code:
pacstrap -G path/to/new/root packages
Motivation:
- Copying the host’s pacman keyring to the target can introduce security concerns. This use case allows users to install packages without copying the keyring.
Explanation:
-G
: This flag prevents copying the host’s pacman keyring.path/to/new/root
: The directory where Arch Linux will be installed.packages
: The packages that need to be installed.
Example output:
[======= 3/3] Installing packages [====================] 100%
[SUCCESS] All packages installed successfully.
Use case 7: Install packages in interactive mode (prompts for confirmation)
Code:
pacstrap -i path/to/new/root packages
Motivation:
- Some users may prefer to have control and confirm the installation of each package individually. This use case allows users to install packages interactively.
Explanation:
-i
: This flag enables interactive mode, which prompts for confirmation before installing each package.path/to/new/root
: The directory where Arch Linux will be installed.packages
: The packages that need to be installed.
Example output:
:: Confirm installation of packages? [Y/n]
...
:: Install packages? [Y/n]
[SUCCESS] All packages installed successfully.
Use case 8: Install packages using package files
Code:
pacstrap -U path/to/new/root path/to/package1 path/to/package2
Motivation:
- Sometimes, users may already have the package files downloaded and want to install packages directly from those files instead of downloading them again.
Explanation:
-U
: This flag is used to install packages from package files.path/to/new/root
: The directory where Arch Linux will be installed.path/to/package1
,path/to/package2
: The paths to the package files that need to be installed.
Example output:
[SUCCESS] Installed package1 successfully.
[SUCCESS] Installed package2 successfully.
Conclusion:
The pacstrap
command is a powerful tool for installing packages to a specified new root directory in Arch Linux. It offers various options to customize the installation process, such as installing specific packages, using alternate configuration files, and installing packages from cache or package files. These examples demonstrate the versatility of pacstrap
and provide a starting point for users to tailor their Arch Linux installations to their specific needs.