This page is obsolete, use the migration guide of the official site instead.
Existing OpenRC systems (whether arch-openrc or manjaro-openrc) can be converted to the new scheme with minimal effort. Older eudev-openrc ones might need some more tweaking, especially with concern to the desktop: consolekit2 is replaced by elogind. In any case, the procedure outlined below is meant for OpenRC systems only. Those with vanilla Arch or Manjaro must first migrate as described on systemd-free.org.
Summary
In brief, the new repos must be placed before the official Arch or Manjaro ones. Then, sysvinit (provided now by openrc itself) and systemd-sysusers must be removed, as well as consolekit which is replaced by elogind. Next, the base and base devel group must be installed from the new repos and a full-system upgrade must be run. All -nosystemd and consolekit packages have to be replaced by their equivalent too. Finally udev, dbus and elogind services must be enabled and mkinitcpio has to be run for your kernel.
The procedure is roughly the following, it widely depends on individual setups and it’s still in beta. PROCEED WITH CAUTION! You must be fairly confortable with Linux and keep an extra kernel in /boot and a bootable medium nearby. Fresh install ISOs will be available soon are already available!
The guide is work-in-progress, updated with each report we receive. If something needs correction for your setup, report it!
Let’s begin
Setup Repositories
Put these repos in /etc/pacman.conf before the official Arch/Manjaro ones and disable [core] of the latter:
# Artix repos
[system]
Include = /etc/pacman.d/mirrorlist
[world]
Include = /etc/pacman.d/mirrorlist
[galaxy]
Include = /etc/pacman.d/mirrorlist
# Arch repos, overriden and [core] disabled
# [core]
# Include = /etc/pacman.d/mirrorlist-arch
[extra]
Include = /etc/pacman.d/mirrorlist-arch
[community]
Include = /etc/pacman.d/mirrorlist-arch
The [arch-openrc] and [arch-nosystemd] repos (or [openrc-eudev] if you’re still on it) must be disabled.
The [multilib] repo will eventually be available too.
Setup mirrors
Rename /etc/pacman.d/mirrorlist to /etc/pacman.d/mirrorlist-arch
mv /etc/pacman.d/mirrorlist /etc/pacman.d/mirrorlist-arch
Create a new /etc/pacman.d/mirrorlist, refresh the database and install the new keyring. The new keyring can be installed either by lowering the security levels in pacman.conf or by ignoring pacman, see below.
# cat > /etc/pacman.d/mirrorlist <<\EOF
# Worldwide mirrors
Server = https://netcologne.dl.sourceforge.net/project/artix-linux/repos/$repo/os/$arch
Server = https://artix.mief.nl/repos/$repo/os/$arch
Server = https://freefr.dl.sourceforge.net/project/artix-linux/repos/$repo/os/$arch
Server = https://10gbps-io.dl.sourceforge.net/project/artix-linux/repos/$repo/os/$arch
Server = https://netix.dl.sourceforge.net/project/artix-linux/repos/$repo/os/$arch
Server = https://kent.dl.sourceforge.net/project/artix-linux/repos/$repo/os/$arch
Server = https://superb-dca2.dl.sourceforge.net/project/artix-linux/repos/$repo/os/$arch
Server = https://pilotfiber.dl.sourceforge.net/project/artix-linux/repos/$repo/os/$arch
Server = https://iweb.dl.sourceforge.net/project/artix-linux/repos/$repo/os/$arch
Server = https://managedway.dl.sourceforge.net/project/artix-linux/repos/$repo/os/$arch
Server = https://cfhcable.dl.sourceforge.net/project/artix-linux/repos/$repo/os/$arch
Server = https://svwh.dl.sourceforge.net/project/artix-linux/repos/$repo/os/$arch
Server = https://versaweb.dl.sourceforge.net/project/artix-linux/repos/$repo/os/$arch
Server = https://cytranet.dl.sourceforge.net/project/artix-linux/repos/$repo/os/$arch
Server = https://gigenet.dl.sourceforge.net/project/artix-linux/repos/$repo/os/$arch
Server = https://excellmedia.dl.sourceforge.net/project/artix-linux/repos/$repo/os/$arch
Server = https://liquidtelecom.dl.sourceforge.net/project/artix-linux/repos/$repo/os/$arch
Server = https://phoenixnap.dl.sourceforge.net/project/artix-linux/repos/$repo/os/$arch
Server = https://superb-sea2.dl.sourceforge.net/project/artix-linux/repos/$repo/os/$arch
Server = https://ayera.dl.sourceforge.net/project/artix-linux/repos/$repo/os/$arch
Server = https://ufpr.dl.sourceforge.net/project/artix-linux/repos/$repo/os/$arch
Server = https://razaoinfo.dl.sourceforge.net/project/artix-linux/repos/$repo/os/$arch
Server = https://jaist.dl.sourceforge.net/project/artix-linux/repos/$repo/os/$arch
Server = https://ncu.dl.sourceforge.net/project/artix-linux/repos/$repo/os/$arch
Server = https://nchc.dl.sourceforge.net/project/artix-linux/repos/$repo/os/$arch
Server = https://vorboss.dl.sourceforge.net/project/artix-linux/repos/$repo/os/$arch
EOF
Clean all cache and force sync:
pacman -Scc && pacman -Syy
Install keyring
To allow installation of our keyring, change pacman.conf directives:
SigLevel = Never #Required DatabaseOptional
LocalFileSigLevel = Never #Optional
Now run:
pacman -S artix-keyring
pacman-key --populate artix
And restore pacman.conf security. Alternatively, don’t touch pacman.conf, but ignore pacman’s warnings and leave artix-keyring in the package cache:
pacman -Sw artix-keyring
Say “y” to signature imports and “n” to deleting corrupted packages.
pacman -U /var/cache/pacman/pkg/artix-keyring-[PRESS TAB]
pacman-key --populate artix
Migrating from Manjaro
People coming from Manjaro OpenRC, will additionally need to run:
pacman -Rdd manjaro-system
pacman -Rsc manjaro-tools-base \
manjaro-system \
mhwd \
mhwd-db \
manjaro-firmware \
manjaro-settings-manager \
intel-ucode \
lsb-release \
rpcbind-openrc
mv /etc/conf.d/rpcbind /etc/conf.d/rpcbindmanj
Setup base
First off, some packages must be removed manually (sysvinit is provided by openrc and consolekit is replaced by elogind).
pacman -Rdd sysvinit udev-openrc consolekit consolekit-openrc
Install the dummy systemd packages
pacman -S --asdeps systemd-dummy libsystemd-dummy
All your packages from base and base-devel groups must be replaced from the ones in [system]. Artix uses linux-lts as its default kernel, so it must be installed too, along with openrc-system.
pacman -Su base base-devel openrc-system grub linux-lts linux-lts-headers
Otherwise you must find only the installed ones and replace them.
pacman -Qg base base-devel | awk '{print $2}' | sort | uniq > installed
Assemble the entire list
pacman -Sg base base-devel | awk '{print $2}' | sort | uniq >| groups
And compare them against it
pacman -S `comm -2 installed groups`
All -nosystemd packages must be replaced with their equivalent from the new repos. If pacman refuses to uninstall one due to dependencies remove it with -Rdd and then install its equivalent. Do the same for -elogind, -consolekit and -upower packages.
# for p in `pacman -Qq|grep nosystemd`; do pacman -S `sed s/-nosystemd// <<<$p`; done
# for p in `pacman -Qq|grep elogind`; do pacman -S `sed s/-elogind// <<<$p`; done
...
Remove more systemd cruft and then run a full system upgrade:
pacman -Rsdd systemd-sysusers
pacman -Su
pacman -S --needed opensysusers
Make sure udev, dbus and elogind services are enabled
(they should already be, but it won’t hurt to re-add them)
rc-update add udev boot
rc-update del elogind default
rc-update add elogind boot
rc-update add dbus default
Reinstall GRUB
Check if your mkinitcpio.conf has been renamed to .pacsave and recreate your kernel’s initramfs with mkinitcpio. I also had to re-install grub in one laptop because it couldn’t boot and dropped into a shell. Also check if your grub.cfg is still in place or pacsaved.
mkinitcpio -p linux (or whatever kernel you're using)
update-grub
# grub-install /dev/sda (your boot disk or partition, for BIOS systems)
# grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=grub (for UEFI systems)
# grub-install --target=x86_64-efi --efi-directory=esp_mount --bootloader-id=grub (ditto, a user reported success with this one)
Check configuration files
Go to /etc/conf.d and merge those .pacnew, .pacorig or whatever config files. I use extra/meld for very quick, visual representation and merging of the differences. Check whether your /etc/{passwd,shadow,groups} have been renamed to .pacsaves!
Verify /sbin/init
Check if /sbin/init exists! If not, you missed something or hit a bug. Simply re-install openrc:
pacman -S openrc
AUR Packages
Find packages not in repos (i.e. from the AUR). Some might need updating/rebuilding or removal, if they’re show-stoppers (unlikely):
pacman -Qm
Graphics drivers
This mostly concerns closed source binary drivers like NVidia’s. You can either use nvidia-lts with our linux-lts or the nvidia-dkms package which builds the module for all installed kernels.
Reboot
Your normal menu or command line reboot action won’t be present or work, just sync and umount your partitions manually, remount / read-only, hit the power button and profit!
Use some common sense when executing these instructions. I repeat, the project is still beta, do expect minor problems. Then, report glitches, errors, success stories to the systemd-free.org’s comments section.