#arch-linux #linux #installer #utility

app arch

A archlinux installer and manager

8 releases (4 breaking)

0.5.0 Apr 7, 2024
0.4.0 Apr 7, 2024
0.3.0 Apr 6, 2024
0.1.2 Apr 1, 2024
0.0.2 Mar 30, 2024

#545 in Command line utilities

GPL-2.0-or-later

320KB
1.5K SLoC

sha512sum arch.pdf

269036e9752ef3edb89d8ec0b351bc745d25499b45a0c3f9038ed97b8c6b3caa9f9b7af4d08ef71cab74148b67199e73d221f5dffa6ed6aab50ca0010940f703 arch.pdf

sha512sum arch.epub

8ddf24144aeb1abfe16d3500ccefa72ab46c9a513dbdc76c3b34d387bc76d66640d54f77a5ce26facde6012110ef9fb257bed04ec87edf087416acfceb9bcb46 arch.epub

Set keymap

loadkeys <keymap>

Partitioning

  1. 1024MB EFI partition # ef00      /boot/efi    
  2. 4096MB Linux partition # 8300 /boot
  3. 100% Linux partition # 8300 /
cgdisk /dev/sda

Formatting

/boot/efi

mkfs.vfat -F 32 /dev/sda1

/boot

mkfs.ext2 /dev/sda2

/

mkfs.ext4 /dev/sda3

Mounting

The root partition

mount /dev/sda3 /mnt

Create the boot mount point

mkdir /mnt/boot

Mounting the boot partition

mount /dev/sda2 /mnt/boot

Create the EFI mount point

mkdir /mnt/boot/efi

Mounting the EFI partition

mount /dev/sda1 /mnt/boot/efi

Update mirrorlist

reflector -c <country> --sort delay --save /etc/pacman.d/mirrorlist -p https

Init pacman

pacman-key --init && pacman-key --populate archlinux

Installation

The base system

pacstrap /mnt base base-devel wget git linux linux-firmware vim efibootmgr rustup sudo grub networkmanager w3m archiso reflector <shell> <ucode> <graphics_driver>

Generate fstab

genfstab -U /mnt >> /mnt/etc/fstab

Enter in the new system

arch-chroot /mnt && cd ~

Manage accounts

Create your account

useradd -m -U -c 'YOUR REAL NAME' -s <shell> <username>

Generate root password

passwd root

Generate your password

passwd <username>

Add your account to sudoers file

echo '<username> ALL=(ALL) ALL' > /etc/sudoers.d/<username>

Sign in

su - <username>

Configure rust

rustup default stable

Modify pacman.conf

sudo vim /etc/pacman.conf

Refresh repositories

sudo pacman -Sy

Installation of yay

git clone https://aur.archlinux.org/yay 
cd yay
makepkg -si 
cd ..
rm -rf yay

Install arch

From GitHub

git clone https://github.com/otechdo/arch 
cd arch 
make 
sudo make install

From Crates.io

cargo install arch 
install -m 755 "$HOME/.cargo/bin/arch" /usr/bin/arch

From Aur

paru -Syu manager

Setup a new arch

arch --setup

Desktop

Install all selected packages on arch

arch --install
arch -S <pkg> <pkg>

Quit the fresh new system

exit

Umount all mounted partitions

umount -R /mnt

Reboot

reboot

Arch commands

Setup a new arch

arch -i
arch --setup

Remove packages

arch -R <pkg> <pkg>
arch --uninstall

Install new packages

arch -S <pkg> <pkg>
arch --install

Update mirrorlist

arch -M
arch --mirrors

Check updates

arch -C
arch --check

Install packages as dependencies

arch -d
arch --deps

Update archlinux

arch
arch -u
arch --update

Search a package

arch -s <pkg>
arch --search <pkg>

Show arch current version

arch -v
arch --version

Download updates

arch -d
arch --download-updates

Show help message

arch -h
arch --help

Cancel the upgrade reboot

arch -x
arch --cancel

Upgrade the system and reboot

arch -U
arch --upgrade

Generate arch packages cache

arch -c
arch --cache

Navigate on news

arch -n
arch --news

Navigate on the Aur

arch -a
arch --aur

Navigate on the forum

arch -f
arch --forum

Navigate on the man pages

arch -m
arch --man
arch --woman

Navigate on the wiki

arch -w
arch --wiki

Toolbox support

GitHub - toolbx-images/images: Community maintained container images to use with toolbx and distrobox

List all toolbox

os --list

Create a new toolbox

os --add fedora 39 workstation
os --add fedora 39

Create a new toolbox from an image

os --add-from quay.io/toolbx-images/debian-toolbox:12

Enter in toolbox

os --use workstation
os --use fedora-toolbox-39

Run a command in toolbox

os --run workstation ls
os --run fedora-toolbox-39 ls

Stop a toolbox

os --stop workstation
os --stop fedora-toolbox-39

Remove a toolbox

os --rm workstation
os --rm fedora-toolbox-39

Key Bindings

This file lists all of the key bindings currently registered by prompts.

All prompts

These key bindings may be used with all prompts.

command description
enter Submit answer.
esc Cancel the prompt*.
ctrl + c Interrupt the prompt*.

* Canceling and interrupting a prompt have two different meanings. Canceling is defined specially for when the end user is allowed to skip a prompt, the library user can then use prompt_skippable which wraps the return type into an Option and catches the CanceledOperation error transforming it into a Ok(None) result. Interrupted operations are closer to "stop-the-world" operations, where the library user should treat them as termination commands.

Text Input

These key bindings may be used with all prompts that ask the user for text input: Text, Select, MultiSelect, Confirm, CustomType and Password. The Editor prompt is not included because it opens a separate text editor for text input.

command description
character Insert the character into the input.
left Move the cursor back one character.
right Move the cursor forward one character.
ctrl + left Move one word to the left of the cursor.
ctrl + right Move one word to the right of the cursor.
home Move cursor to the start of the line*.
end Move cursor to the end of the line*.
backspace Delete one character to the left of the cursor.
delete Delete the character at the cursor.
ctrl + delete Delete one word to the right of the cursor.

* Key bindings not supported on Select and MultiSelect prompts.

Text Prompts

These key bindings may be used in Text prompts.

command description
enter Submit the current current text input.
up When suggestions are displayed, move cursor one row up.
down When suggestions are displayed, move cursor one row down.
page up When suggestions are displayed, move cursor one page up.
page down When suggestions are displayed, move cursor one page down.
tab Replace current input with the resulting suggestion if any.
others See Text Input and All Prompts

Select Prompts

These key bindings may be used in Select prompts.

command description
enter Submit the current highlighted option.
up Move cursor one row up.
down Move cursor one row down.
k Move cursor one row up when vim mode is enabled.
j Move cursor one row down when vim mode is enabled.
page up Move cursor one page up.
page down Move cursor one page down.
home Move cursor to the first option.
end Move cursor to the last option.
others See Text Input and All Prompts

MultiSelect Prompts

These key bindings may be used in MultiSelect prompts.

command description
enter Submit the options currently selected.
space Toggle the selection of the current highlighted option.
up Move cursor one row up.
down Move cursor one row down.
k Move cursor one row up when vim mode is enabled.
j Move cursor one row down when vim mode is enabled.
page up Move cursor one page up.
page down Move cursor one page down.
home Move cursor to the first option.
end Move cursor to the last option.
left Unselect all options.
right Select all options.
others See Text Input and All Prompts

DateSelect Prompts

These key bindings may be used in the interactive calendar of the DateSelect prompt.

command description
space bar or enter Submit the current highlighted date.
up Move cursor one row up.
down Move cursor one row down.
left Move cursor one column to the left.
right Move cursor one column to the right.
k Move cursor one row up when vim mode is enabled.
j Move cursor one row down when vim mode is enabled.
h Move cursor one column to the left when vim mode is enabled.
l Move cursor one column to the right when vim mode is enabled.
ctrl + up Move calendar back by one year.
ctrl + down Move calendar forward by one year.
ctrl + left Move calendar back by one month.
ctrl + right Move calendar forward by one month.

Editor Prompts

These key bindings may be used in Editor prompts.

command description
e Open the editor.
enter Submit the current content of the temporary file being edited.

Dependencies

~8–22MB
~255K SLoC