It is strongly recommended the administrator read the following articles in order to become familiar with Archlinux updating conventions:
System Maintenance - Upgrading the System
In the rare instance that updates require manual intervention, this will be noted in the news section of archlinux.org
It is important to understand that there are essentially two types of packages on archlinux.
- Packages which are provided, already built, by a package repository (officially maintained software)
- Packages which are built locally (AUR packages)
Pacman works as the package manager on archlinux. It handles built packages. It can download, install, uninstall, etc. but it does not create them.
A script called makepkg
is provided with the pacman package for creating packages. The required argument for this script to work is a PKGBUILD, which must contain the details needed to create the package. Examples of PKGBUILDS can be found in the Arch User Repos
Makepkg standardizes the procedure for creating packages on archlinux and works with pacman to handle dependancies
a typical invocation of makepkg
would be something like this:
git clone https://aur.archlinux.org/yay-git
cd yay-git
makepkg -si
-s
install the needed dependencies
-i
install the created package
The above used makepkg
to build and install the yay-git
package from the Arch User Repos (AUR).
Yay is a wrapper for pacman
and makepkg
, elegantly written in go. Yay automates the creation and installation and updating of AUR packages, as well as being able to install any regular package because it's a wrapper for pacman.
As stated above, but repeated here for explicit clarity, updating with pacman
alone will not update any AUR packages, and pacman cannot build packages from the AUR.
Tip: To update software on a multinode setup, first pass a full system update on the board hosting it's package cache
Full system update with pacman:
sudo pacman -Syy
sudo pacman -Syu
Full system update with yay:
yay -Syy
yay -Syu
Because the mechanics of AUR packages are different from officially maintained packages, yay may fail to update certain AUR packages based on their version, if the version is 'autogenerated' or reflects the date of creation or a certain commit to the sources. It's best to update these packages explicitly from time to time, if you want to have the latest available software.
Updating an AUR package is the same as installing it:
yay -S yay-git
Updating skywire
yay -S skywire
Tip: traditional versioned releases or binary packages (i.e. skywire-bin) are generally not in need of explicit reinstallation. Their updates should be picked up by yay in the previous step
The systemd-resolved.service
is to blame for this. You need to turn it off and on until it works.
sudo systemctl stop systemd-resolved.service
sudo pacman -Syy && sudo pacman -Syu
The update will fail if DNS isn't available. Try again with
sudo systemctl start systemd-resolved.service
sudo pacman -Syy && sudo pacman -Syu
Stop / start it until DNS becomes responsive. This is an upstream bug.