Well, after much blood, sweat, and tears, I’ve finally discovered the meaning of life. But enough about that, since I want to rant about Arch Linux. It’s taken me nearly a week, from finalizing the decision to switch, up to working out a few kinks, but overall the experience was much more positive than I expected. As opposed to the long and excessive rant that was appropriate for Ubuntu, I will attempt to keep this more to the point, and broken down.
What I mistook for a long and tedious process, ended up being more simple than I expected. As a friend in IRC put it: “It’s not gentoo”, and he was correct. The base installation (as directed by the Arch Beginner’s guide) mainly required partitioning (obviously), mounting the partition, and installing the base system on top of it. The most difficulty I had experienced was actually the networking part, which came to me as a surprise. As it was advised to use a wired network connection, since there was limited base support for wireless devices, I borrowed an Ethernet cable to get the job done. Once a connection was established (pinging google to confirm), I went ahead to start downloading the packages. I’m not sure if my connection was being throttled, or if there was some other issue, but moments after I began the downloads, my connection would cut out, and after repeated attempts I went with the alternative. To my surprise, wireless was easy to setup and connect, despite being from the terminal, and I got the necessary packages downloading (though at a much slower rate). Once the rest of the installation was completed, it was time to reboot. There were a couple of steps that I skipped, for simplicity. Instead of using the text-based partitioning tools, I went with the graphical ones with my older Ubuntu install. I also didn’t install the grub boot loader, since I already had it as well, and just refreshed the OS list to get Arch on it.
Booting into the essentially blank Arch installation, I quickly setup my normal user account (root is the initial default), and gave sudo permissions. This is one step that is very different with Ubuntu, since that one doesn’t have an explicit root account. After this, my top priority was to get the graphical interfaces working, with the proper drivers. The main motivation for migrating to Arch was the borked Nvidia Optimus support on Ubuntu, so I needed to make sure this worked above all else, otherwise the migration would be less useful. This gave me the opportunity to familiarize myself with Pacman, the package manager used by Arch. What was once apt-get install became pacman -S. While the transition was a bit of an adjustment, particularly understanding the various options, it was overall pleasant to use. Following the guides on the Arch Wiki, the installation of mesa drivers for Intel, and the Nvidia drivers along with Bumblebee was very painless. I did not have to configure anything manually. Since I use the Gnome 3 desktop environment, I went with a full installation of this (both the environment and the extras, removing unneeded packages afterwards). This too was very simple. After this, I enabled the GDM service, and rebooted. To my amazement, it all just worked. The GDM login screen came up, Gnome Shell desktop appeared, and running a primusrun command to test Optimus worked flawlessly.
Now that I have the basics, I went ahead and installed all the applications I had previously on Ubuntu. I was very impressed that almost all of them were directly on the official Arch repositories, with something like 3 of them on the Arch User Repositories. None of the applications that I had previously required any manual downloading and installation. The only trouble I had here was to initially use the AUR. While the guide seemed to explain that you needed to download the package, and it would have a package setup file with it, this wasn’t perfectly explained. Turned out all I had to do was git clone the package repository, move into the directory generated (which only contains the package make config file), and run the make package command to install it. After this it was smooth sailing. I quickly installed yaourt, which is an AUR extension for pacman, simplifying the installation experience. The final step to my migration, which made me cringe, was moving my home directory. Since Ubuntu releases packages more slowly than Arch, which uses a bleeding-edge rolling-release methodology, I knew there was the possibility of issues with the configuration files I now have. While the issues were likely to be minor, and most likely easy to correct, it still worried me. What’s worse, once I move it, there’s no going back, as the configs are now on newer versions than that of the ones with Ubuntu. After adjusting the .bashrc file (used Debian directory references), I edited the fstab, and rebooted. As with the rest of the installation, this too went quite well. I had almost no issues, save for a couple of small interface changes with Gnome that I corrected with the DConf editor.
While the installation went very well, there were a couple of bumps along the way. Using the AUR was one, but I quickly overcame this hurdle. Another problem I had was with my system fonts. I was accustomed to certain fonts with Ubuntu, and the sudden change to other system fonts bothered me. I ended up actually downloading some of the Ubuntu fonts because of this, and this was easily done since they too were in the available repositories. Despite that, there were still some font issues that I couldn’t fix, notably in my web browsers (both Chromium and Firefox). These are set to their defaults, and even after adjusting them some websites still had strange blocky text, and I couldn’t fix. Ironically, just yesterday when I did an update through pacman, the font libraries were patched, and this issue gone with it.
The other “major issue” I had was, in all honesty, quite pathetic. I’ve always preferred having the number lock enabled on the login screen, since I generally use it for number input. In the past, this had been generally simple (though not straight forward) to enable: install numlockx and add it to some init script for the display manager. Whereas I was previously using lightdm, and now using gdm, the Arch Wiki had instructions for pretty much any display manager to accomplish this. My problem: It didn’t work. The Wiki (which will have to be updated), indicates adding the changes to
/etc/gdm/Init/Default, and I quickly discovered that this was not even being executed. IRC friends indicated that because of the move to systemd, init scripts are not used anymore, and this is reflected on the GDM autostarting section. Fiddling around with various other suggestions on the web, I still had no success. It was obviously pointed out to me that numlock was one extra keypress, but I was adamant at maintaining the Linux philosophy of laziness. Why else would we have commands such as cp, saving only 2 characters from the word copy. Upon inspecting the general config file for GDM, I realized I had forgotten about recent movements with gnome: Wayland. As the eventual successor of X11 and all the “wonderful” X stuff, Wayland is being developed and pushed out, and GDM was already using it by default. Although when I initially disabled it, and rebooted without any change, some tinkering afterwards got the desired results. I’m still not entirely certain which reference to numlockx was the one needed, but I feel almost as though looking for it will suddenly make it stop working. So Quantum.
Overall, moving to Arch was a great experience, and a bit euphoric. I still feel almost as though it was too easy, and that soon my screen will be filled with various gotcha error messages. None the less, I feel it necessary to outline the elements that contribute to the awesome shift, and how this compares with Ubuntu in my opinion.
The package manager Arch uses just feels rich and complete, while maintaining simplicity for users to use. In comparison with the apt alternative from Ubuntu, it feels so much faster to use. While performing an update on Ubuntu would require running a command similar to sudo apt-get update && sudo apt-get upgrade, the Arch equivalent is simply sudo pacman -Syu. Furthermore, apt has to query many different repositories just to check for updates, and this can take a fair bit of time. With pacman, since it’s checking essentially 1 place, can tell you in a near instant that there’s nothing to do. It also gives helpful suggestions for config management, as well as recommended dependencies which are optional.
Wiki and Help Pages
While the Ubuntu forums and answers pages are helpful, they can at times be broken and outdated, or inconsistent. This is often due to the same question being asked multiple times, across various versions of Ubuntu, and depending on which you look at, the answer will vary. With Arch, since there’s only really 1 version, the Wiki has not only almost all the answers, but they are (nearly) all up to date with the current release version. I have overall found it to be a much more helpful experience, particularly since the Wiki alone is fairly global with its coverage of cases and issues.
Overall, I have much enjoyed bringing a new face to a familiar experience that is Linux, and look forward to the new challenges and experiences it will bring. I recommend to all Linux users, that if given the opportunity to experience different distributions, to do so. As this is my first time really using a different one, it’s very enriching to try something new, and find a good feel for what parts of the experience I enjoy and can improve upon.