Switching Branches
Overview
One of the many features that sets Manjaro apart from other Arch-based distributions is that it uses its own dedicated software branches, rather than relying on those provided by Arch itself. In fact, to ensure continued stability and reliability, Manjaro actually uses three distinct branches:
- Stable branch: the packages that come to stable have gone through roughly a couple of weeks testing by the users of the Unstable/Testing repos, before they get the packages. These packages are usually free of any problems.
- Testing branch: These users are the next line of defense. Being a larger number of users than those using Unstable, they refine the work done prior to them installing the packages with their feedback.
- Unstable branch: which usually runs inside of 3 days behind Arch package releases & are modified as necessary to suit Manjaro. Those that use Unstable need to have the skills to get themselves out of trouble when they upgrade into it. They are the Manjaro users who are most likely to need to use such skills. Due to the feedback from the users of the Unstable repo, most bugs are found & fixed for the rest of Manjaro's users. Although the very latest software will be located here, using the unstable branch may consequently break your system!
Summing up, unstable packages are tested in the unstable branch. Once they are a bit stable, they are moved to the testing branch, where more tests will be realized to ensure the package is ready to be submitted to the stable branch.
Accessing the Testing Branches
In order to access the testing branches, there are two methods available. The first one is a temporary solution, in which if the mirrorlist is recompiled after switching the branch, the selected branch will be reverted to stable. The second one is a permanent solution, where checking for updates using the Update Manager GUI will check for updates from the selected branch.
Temporary Method
Changing the selected branch is fairly simple. We make use of the pacman-mirrors command to update the selected branch. Run the following command in a terminal note that you can add a number after -f to limit the number of mirrors:
sudo pacman-mirrors -f -b <branch> && sudo pacman -Syyu
- pacman-mirrors -f will generate a new mirrorlist, sorting the available servers according to their access time.
- -b <branch> tells pacman-mirrors to use the specified branch. Valid values are: stable, testing, unstable
- pacman -S will synchronize the local package databases with the remote package databases.
- -yy will force a refresh on the local package databases, even if they are up to date.
- -u performs an upgrade to the installed packages.
Permanent Method
You should substitute the value colored in green (for illustrative purposes only) to one of the following: stable, testing, unstable.
sudo pacman-mirrors -aB $branch
After you changed the branch, rebuild the mirrorlist and update your packages:
sudo pacman-mirrors -f5 && sudo pacman -Syyu
Questions
How do I go back to the stable branch after permanently changing to one of the testing branches?
Going back to the stable branch is easy. All you have to do is follow the Permanent Method steps, and use stable as the branch value.