Hence, Manjaro uses its official repository to get the latest updates. Another main reason for a separate repository is that Manjaro maintains its own system packages like hardware detection memory, among many others.
However, users can access new software packages via an unofficial repository. To get started, we will learn about Manjaro’s official and unofficial repositories, how they are maintained, and how to install, update, and remove required packages via these repositories.
Official Repositories
Manjaro’s official repositories contain essential software accessible via a package manager. The primary repository contains packages required for booting Arch Linux, setting system process, web browsers, tools for languages like Python, and some community repositories accepted by package maintainers from unofficial repositories, etc.
The packages inside this repository are built and accepted based on high-quality requirements that are accessible via Manjaro Mirrors.
Pacman
The main distinction among Arch-based and other major Linux distributions is the package manager Pacman. Pacman allows the user to update, install, or remove packages along with all the required dependencies.
During installation, pacman lists optional dependencies which are not available in the pacman.log file; the local database is queried via the -Q flag to list dependencies.
The additional quality assurance feature diminishes the need to download or wait for a new Manjaro version release. New package update from the official repository only requires instructions for the packet manager to retrieve the latest software versions.
Manjaro Update Via Pacman CLI
Once installed, it’s important to update the distro to retrieve the latest Manjaro release. Manjaro update from a software program (Pamac GUI of Pacman) mostly suffices the entire installation process. However, updates via a command-line interface grant more control over resolving issues, if any.
Open the CLI to type the following command:
The above command only upgrades the configured packages. The -S option synchronizes the system packages with the official’s database, -y refreshes the packages or downloads the latest packages from the database. Lastly, the -u option upgrades the packages.
The use of the -Syyu option enforces Pacman to update all database repositories. Besides, it helps upgrade the system if the above command fails to retrieve the latest software releases. However, it only provides efficient package management from Manjaro official repository system.
Arch User Repository (AUR)
Even though Manjaro is a derivative of Arch Linux, it’s impossible to access its repository for use in Manjaro. However, we can access packages from an unofficial community-driven storage space known as Arch User Repository (AUR).
AUR contains package build information in a shell script PKGBUILD searched by the makepkg utility to follow the instructions to compile or build packages archive. The package is composed of instructions and binary files that are installable by the packet manager.
The Potential Risk Involved
The AUR allows regular users to create and share new software packages. Hence, if the AUR package gets votes from the community and has a compatible license with a good package build, it can become part of the official repository.
However, the additional software packages come with potential risks and issues. To overcome the problems, the Trusted User plays an intermediary role between unofficial package collection and Arch Linux to establish clean AUR operations. Besides, they have the authority to maintain, manage, and remove packages as well.
Ways to Use AUR in Manjaro
The installation process of AUR packages is not as simple as it seems. The official documentation recommends manually inspecting PKGBUILDS and installation files before building packages. Hence, there are various ways to access AUR; we will discuss each of them here:
Access via Pacman GUI (Pamac)
Go to the Add/Remove Software, go to the preferences. Select the AUR tab in the open dialogue box, enable AUR by moving the slider, and check for updates. Now, each package from the AUR is identified via an AUR tag.
Access via Pamac CLI
Before Accessing AUR packages via command-line, it’s recommended to visit the AUR website to gain information about the warnings and solutions provided by the users and developers.
Search for the required <pakagename> and install the package using the build command:
manjaro@manjaro:~$ pamac build <pakage_name>
Above commands results in a series of question that includes:
- Query to edit files for verification as a precaution to identify malicious scripts.
- Query to download dependencies, scripts, builds, and installation.
- Password authentication.
AUR Helper
Another simplest way to access PKGBUILDS from AUR is through AUR helpers. It’s a command-line tool that simplifies the task of package search and installation process.
The most recommended AUR Helper for new users is Yay, as it is closest to the Pacman in terms of commands and options. Moreover, its also upgrade and backups the system with little to no prompts.
Install git using Pacman, clone the PKGBUILD, and cd into the yay directory to build the package using makepkg.
manjaro@manjaro:~$ git clone https://aur.archlinux.org/yay.git
manjaro@manjaro:~$ cd yay
manjaro@manjaro:~$ makepkg -si
Now, use the following command to install the required software.
Manual Installation of AUR Packages
Again the manual installation of AUR packages requires necessary files. Use Pacman to install git, clone the script files and build the package using makepkg.
manjaro@manjaro:~$ git clone https://aur.archlinux.org/google-chrome.git
manjaro@manjaro:~$ cd google-chrome
manjaro@manjaro:~$ makepkg -s
The above command handles dependencies. Hence, once the package builds successfully, a file package_name-pkgver.pkg.tar.zst is created in the working directory.
Install the package using the following command:
This command is equivalent to
Or combine the last two steps into one:
Conclusion
In this article, we learn about Manjaro’s official and unofficial repositories, ways to access and upgrade the Manjaro system and build packages using AUR through various means.