I switched from Ubuntu to Manjaro for my primary Linux system, a Dell XPS laptop. I’ll cover briefly why, but the change is not nearly that big because I still use GNOME desktop which is more or less the same for both. I also use a Windows 10 desktop 😲 for games and other things that might require a beefy video card.
Why switch to Manjaro
I’ve been a user of Ubuntu for many years. It is a wonderful desktop platform. I’ve used Linux for around 20 years, I appreciate the simplicity of Ubuntu. I futzed enough with drivers and conflicts years ago, now I just want my system to be stable and work. If you want stable, Ubuntu LTS is it. Hardware vendors, such as Dell and System76, adopt Ubuntu for its stability. The LTS versions are supported for five years, even longer if you pay.
So why did I switch?
I’ve run into minor problems with Ubuntu, annoyances with snap packaging, that I find run slower especially to launch. The LTS is great for stability but the versions get outdated and I end up installing numerous PPAs to get the latest, two examples are git and OBS.
There is a new crop of basic command-line tools rewritten in Rust and modernized, on Ubuntu most of these are not available in the base repository, on Manjaro almost all of them are. These include:
- starship – fancy prompt done easy
- exa – an ls replacement
- bat – a cat replacement
- fd – a find replacement
All this is relatively minor annoyances, but they add up. I finally switched over again when the Nautilus file manager consistently took 5-10 seconds to launch, requiring a restart to fix, to only slow down again after awhile.
I didn’t want to go full Arch, so settled on Manjaro. Manjaro is to Arch, as Ubuntu is to Debian.
The majority of differences between Ubuntu and Manjaro is in the packaging system, since it’s still just Linux, and using the same desktop environment not a big deal. If you are happy with Ubuntu, it’s probably not worth switching, but if looking for something new give Manjaro a shot.
Manjaro has a different default theme and icons for GNOME, that make it a nice experience, but might be just a change of pace that I like. Manjaro also includes a few extras, default installs Tweaks, fonts, and a few other niceties mostly through the gnome-extensions system borrowing from pop and arc.
You can see what it installs using:
> gnome-extensions list firstname.lastname@example.org email@example.com firstname.lastname@example.org email@example.com firstname.lastname@example.org email@example.com firstname.lastname@example.org email@example.com firstname.lastname@example.org email@example.com firstname.lastname@example.org email@example.com material-shell@papyelgringo firstname.lastname@example.org email@example.com firstname.lastname@example.org email@example.com firstname.lastname@example.org email@example.com firstname.lastname@example.org email@example.com firstname.lastname@example.org windowsNavigator@gnome-shell-extensions.gcampax.github.com email@example.com
The biggest difference between the two operating systems is the package management. Manjaro uses the Arch tool
pacman that pulls from a set of frequently updated repositories.
pacman -Ss query
pacman -S pkgname
--needed to prevent pacman from reinstalling an already installed package.
--noconfirm to bypass the confirmation message.
pacman -R pkgname
If you noticed package operations are slow, you may want to check what mirror you are using. You can see the mirror list at:
To set the mirrors, I used the following the command which will ping each mirror in the United State and add them sorted to the list based on response time. Also, configured to use https protocol and stable branch.
sudo pacman-mirrors --api --protocols https --set-branch stable --country United_States
If you don’t live in the United States, you can get a list of countries with available mirrors using:
If you don’t want to pick the country, the script can randomly pick 10 mirrors from the list and save them sorted based on response times:
sudo pacman-mirrors --api --protocols https --set-branch stable --fasttrack 10
After updating the mirror list, run
pacman -Syyu to force a refresh sync for the package database.
The Manjaro package equivalent to Ubuntu’s
build-essential meta package is the
base-devel package group. This installs the common gcc, make, sed, awk, and similar tools, see the base-devel package group for details.
pacman -Syu --needed base-devel
Arch User Repository (AUR)
AUR is a vast repository of user created packages, it can be though of as all the Ubuntu PPA’s rolled into one repository. There are various tools to work with the AUR.
I use yay – yet another yogurt. It is a popular one and written in Go so it must be good. You can install using
pacman -S yay
yay --help for full usage, but the commands mirror pacman.
Use caution when installing anything from AUR, see the wiki for details.
Here are a few miscellaneous items I’ve run into which are minor differences between Manjaro and Ubuntu.
Crontab on Manjaro
Manjaro does not have the cron service running by default. It is installed, and you can add a crontab entry, but it will not run without the service. You can enable and start cron using:
systemctl enable cronie
systemctl start cronie
For more info about coron, see my guide for using crontab.
Printer Setup on Manjaro
I use a Brother HL-3170CDW series wireless printer. Brother does distribute a driver for Linux, but in an .rpm or .deb format.
I won’t send you down the rabbit holes I ventured in, the solution ended up being to simply to use the AUR driver.
yay -S brother-hl3170cdw
If you use a Brother printer, use
yay -Ss brother to search for other available printer drivers in the AUR, or search for your manufacturer or model.
Additionally, the auto-registration of the network printer name did not get setup properly. I read a few things about dynamic and multicast dns (mdns) but the simplest solution was adding an entry to my hosts file using the IP address for the printer. For me I added the following to
/etc/hosts, your network settings and printer name will likely be different:
Setting up WordPress on Manjaro
Here’s what I did to setup WordPress, or more specifically a LAMP stack o Manjaro.
pacman -Syu --needed apache
pacman -Syu --needed php php-gd php-imagick php-intl php-apache
To support PHP in Apache, edit
- Comment out the
mpm_eventmodule and enable
- Add the following config
LoadModule php_module modules/libphp.so AddHandler php-script php Include conf/extra/php_module.conf
pacman -Syu --needed mariadb
You need to create the initial empty database
sudo mysql_install_db --user=mysql --basedir=/usr --datadir=/var/lib/mysql
Installing WordPress is all the same, simply download and extract, though I typically use the command-line utility. You’ll need to create the database and create
The the first time accessing the WordPress site I did get the following PHP error
PHP Fatal error: Uncaught Error: Call to undefined function mysql_connect()
This required enabling the mysql extension in PHP, edit
/etc/php/php.ini and uncomment the line:
Set Apache and MySQL to start using sytemd
sudo systemctl enable httpd sudo systemctl enable mysql
I switched from Ubuntu to Manjaro, overall not a big change, but it’s nice.
Ubuntu, don’t worry you’ll still be in my life on my servers and WSL.