I used Antergos, a distribution based on Arch Linux, from 2017 to 2019 when it was discontinued. The advantage of Antergos was that it bundled a desktop with a lot of default software.
Arch Linux is refreshingly simple and fast to install, but leaves you with a base system that may need a fair amount of extra work to be useful, especially if you want a full GUI desktop. Much like Gentoo, once you get everything installed and configured, updating is as quick and simple as any Linux distribution.
The reason to choose Arch is when you want more control over what gets installed than the mainstream distributions, or if you want to run Linux on less powerful equipment such as old computer, VMs, or a Raspberry Pi.
Conflict errors with pacman + pamac, libdmx, libxxf86dga, and libxxf86misc.
Only remove packages that are causing conflicts for you.
The example below shows three libraries that two of my machines needed to have removed, but on another one I did not need to remove libxxf86misc.
Also note that pacman -R
is typically what you want to use, but when dependencies prevent removal of something that you know you need to remove, such as this situation, then using pacman -Rdd
forces removal ignoring dependencies.
$ sudo pacman -Rdd libdmx libxxf86dga libxxf86misc [pamac] $ sudo pacman -Syu
Unfortunately, the pamac tool from Antergos depends on an old version of pacman and there does not seem to be an updated version, so it cannot be updated using the antiquated Antergos repositories. See below for changing to Arch.
If you want to leave pamac in-place just don't remove it and continue to not update pacman.
See https://www.archlinux.org/news/xorg-cleanup-requires-manual-intervention/ for more.
If you get errors like this:
error: hook /usr/share/libalpm/hooks/20-systemd-sysusers.hook line 2: invalid value Path error: hook /usr/share/libalpm/hooks/update-mime-database.hook line 2: invalid value Path error: hook /usr/share/libalpm/hooks/30-systemd-tmpfiles.hook line 2: invalid value Path error: hook /usr/share/libalpm/hooks/fontconfig.hook line 2: invalid value Path error: hook /usr/share/libalpm/hooks/30-systemd-binfmt.hook line 2: invalid value Path error: hook /usr/share/libalpm/hooks/30-systemd-daemon-reload.hook line 2: invalid value Path error: hook /usr/share/libalpm/hooks/update-appstream-cache.hook line 2: invalid value Path error: hook /usr/share/libalpm/hooks/30-systemd-hwdb.hook line 2: invalid value Path error: hook /usr/share/libalpm/hooks/30-systemd-catalog.hook line 2: invalid value Path error: hook /usr/share/libalpm/hooks/30-systemd-sysctl.hook line 2: invalid value Path error: hook /usr/share/libalpm/hooks/xorg-mkfontscale.hook line 2: invalid value Path error: hook /usr/share/libalpm/hooks/30-systemd-update.hook line 2: invalid value Path error: hook /usr/share/libalpm/hooks/30-systemd-udev-reload.hook line 2: invalid value Path error: failed to commit transaction (failed to run transaction hooks)
This means that the ALPM library is outdated, which is part of the pacman package. This happens when you have Pacman 5.1 and the repositories are expecting 5.2. It can happen from an Antergos or Manjaro installation.
To fix this you need to manually download a version 5.2 package and install it, e.g.:
cd /tmp wget https://manjaro.moson.eu/stable/core/x86_64/pacman-5.2.1-4-x86_64.pkg.tar.zst sudo tar -C / -I zstd -xvf /tmp/pacman-5.2.1-4-x86_64.pkg.tar.zst
After that do:
pacman -Syu --ignore pacman
This will update your system ignoring pacman because pacman does not know it was updated (since it was done manually) and will complain of file conflicts.
Once the system is updated, then you can deal with aligning the Pacman version.
pacman -Su --overwrite '*libalpm.so*,*pacman*,/usr*makepkg*'
Now that Antergos is completely gone, as well as its mirrors, and since they did not swap their mirrors for Arch as had at one time been promised, this needs to be done manually.
For myself, it seems a shameful waste of time to throw away a Linux installation and install another one that is 95% identical. How long did I spend customising my current Linux installation? Hundreds of hours, certainly, and I am not anxious to begin that process again if I don't have to. If up-time was critical I might; but I don't mind tinkering.
To simply switch from Antergos to basing your system on Arch first edit /etc/pacman.conf and comment-out or delete the lines for Antergos:
#[antergos] #SigLevel = PackageRequired #Include = /etc/pacman.d/antergos-mirrorlist
Get rid of the Antergos mirror list:
sudo pacman -R antergos-alpm-hooks antergos-mirrorlist
Then get the mirror list for your country from https://www.archlinux.org/mirrorlist/
Then sudo vim /etc/pacman.d/mirrorlist
and insert the URLs obtained from the above, then uncomment the one(s) you want to use, e.g.:
## Canada #Server = http://mirror.cedille.club/archlinux/$repo/os/$arch #Server = http://archlinux.mirror.colo-serv.net/$repo/os/$arch Server = http://mirror.csclub.uwaterloo.ca/archlinux/$repo/os/$arch #Server = https://mirror.csclub.uwaterloo.ca/archlinux/$repo/os/$arch Server = http://mirror.its.dal.ca/archlinux/$repo/os/$arch ...
Finally, sudo pacman -Syyuu
.
When I had an issue with their Raspbian build that was taking way too long to figure out because they hide too much from the user's view by default, then I switched to installing Arch for ARM. This is faster than Gentoo to get a desktop going since there are tons of binaries readily available, yet gives similar fine-grained control as Gentoo offers.