1. This site uses cookies. By continuing to use this site, you are agreeing to our use of cookies. Learn More.

My Take on Arch Linux

Discussion in 'Installing Linux' started by booman, Jun 14, 2021.

  1. booman

    booman Grand High Exalted Mystic Emperor of Linux Gaming Staff Member

    Joined:
    Dec 17, 2012
    Messages:
    8,046
    Likes Received:
    578
    Trophy Points:
    113
    Location:
    Linux, Arizona
    Home page:
    Arch Linux is a bare-bones distro full of customizations. Install Arch for your head-less server, gaming machine or anything else you want. The installation process is not meant to be a quick setup with all the standard graphical aspects of an operating system. If you want to know what runs behind-the-scenes Ubuntu, Mint, Fedora and many other distros, Archi is the customization heaven you are looking for.

    The end product is the functionality you want for your needs. Troubleshooting issues is fairly easier as you know what you installed and configured.

    Last weekend Daerandin walked me through step-by-step installing Arch Linux on a spare computer. We spent about 3 hours attending each steps for preparing the drive, installing and booting Arch to Cinnamon Desktop environment.

    The installation and setup steps are not simple by any means, but there is a step-by-step guide on the ArchLinux.org website: https://wiki.archlinux.org/title/Installation_guide

    I began by downloading the 64-bit ISO and loading it up on my USB flash drive.

    ISO: archlinux-2021.06.01-x86_64.iso

    https://archlinux.org/download/

    One problem I had was my PC motherboard is a bit old and only supported BIOS mode, not UEFI.
    So when I booted I had to hit F12 on my keyboard, select the flash drive and boot to Arch Linux BIOS

    That was fairly simple and we were able to boot to a command prompt to begin.
    Note: There is a Boot to Live environment available on the ISO, but I was wanting to learn the hard-core way using commands.

    When we tested our internet connection we were pinging google.com and getting the output: Destination Not Found

    Turns out the network was defaulting to IPV6 instead of IPV4
    So we were able to ping with this command which forces IPV4:
    ping -4 google.com

    Then we had to update the system clock and start partitioning the drive.

    For partitioning we were able to use: cdisk
    Which had a GUI-ish interface showing us the drives and options for partitioning them.

    upload_2021-6-14_12-13-19.png

    We partitioned my 500GB hard drive:
    • 3GB SWAP
    • 1MB BIOS boot
    • 495 /
    Initially we had an issue boot because we didn't create the BIOS boot partition but were able to go back into cdisk and create it by taking some space from SWAP

    We chose to use BTRFS file system for our Arch installation.
    https://en.wikipedia.org/wiki/Btrfs

    We had to mount subvolumes next. I wasn't exactly sure why, but Daerandin showed me that we can use them later as system root and home volumes. Probably because of the way BTRFS works as it doesn't actually use separate partitions.

    Next we began the Arch installation. This required finding a mirror server near you and adding it to the /etc/pacman.d/mirrorlist

    upload_2021-6-14_12-20-2.png

    I made the mistake of not adding the $repo/os/$arch at the end of the mirror I added. Which resulted in errors.

    We installed the Linux kernel package and firmware

    FSTAB needed to be generated and each one of my partitions showed up perfectly with their path and UUID
    This isn't extremely important at this point, but I like how it was auto-generated. I've used those UUID's when adding a 2nd drive to my system, or migrating a home partition.

    Next was changing to root with CHROOT
    Then adding your time zone, localization, language and creating a hostname.

    Hostname is the computer name you can use to connect to the system over the network. You can name it whatever you want.

    After that we set a root password and create a non-admin user account.
    Now you can reboot and login

    Arch Linux is officially installed, but if you are like me, this isn't enough.

    I want a graphical user interface:
    • Login screen
    • Desktop environment
    • Windows manager
    • Systems Tray
    • Menu
    • System Settings
    • Nvidia Drivers
    • Steam
    All of this has to be added via the command line and configured.

    Here is a list of general recommendations: https://wiki.archlinux.org/title/General_recommendations

    Daerandin helped me install Cinnamon Desktop environment which comes with Nemo windows manager. Then we install the Nvidia drivers along with 32-bit libraries.

    We even had to install a login application: LightDM

    After that we were able to boot and login to a graphical login screen and see a generic Cinnamon desktop.

    Not much going on but it was a usable graphical Linux operating system.

    upload_2021-6-14_12-30-57.png

    I would still have to install Pulseaudio, Steam, PlayOnLinux, Wine-Stable, VLC and anything else I wanted to use.

    One thing about packages in Arch...
    When you install an application you will probably automatically download the newest version available. For example, the Nvidia driver available was 465 but my Mint computer only had 460. This could be an issue with some drivers, packages and dependencies. It is always good to research before installing them.
    Specially when you are updating the system.

    That's it, the power is in your hands to make it your own unique system!

    This review was only informational and does not include every steps of the installation process.
    Daerandin likes this.
  2. Daerandin

    Daerandin Well-Known Member

    Joined:
    Oct 18, 2013
    Messages:
    1,069
    Likes Received:
    219
    Trophy Points:
    63
    Location:
    Northern Norway
    Home page:
    The command line IS the Live environment for Arch Linux. It is even more fully featured than a base Arch install, as a "base" Arch install does not even include a text editor.

    btrfs can be used on normal partitions, but that kind of takes away the whole point of btrfs in my opinion. Instead of using partitions, you use btrfs subvolumes. All subvolumes are on the same partition, and share the same space. This gives you much greater freedom in creating/deleting subvolumes after installing. Creating a new subvolume does not interfere with already existing subvolumes. But if you want to create a new partition on your hard drive, you need unallocated space. And if you want to use snapshots on btrfs, you also need to use subvolumes as a snapshot is taken of a subvolume.

    Arch Linux do not package multiple versions of packages, at any time there will only exist ONE nvidia package. So when the package maintainer updates the nvidia package to the newest available, that will be the ONLY version available. Arch never keeps old versions around as the package manager, pacman, is not designed to handle multiple versions of packages. This means that whenever you update your system, and the nvidia package has been updated, you will get the newest nvidia version because that is the only version available.

    On older hardware, such as the 660 on your desktop, there will come a point where you can no longer use the "nvidia" package for Arch. At that point, you would need to switch over to a legacy version, which is only available in the AUR.

    Personally I've been on Arch for many years now, and I couldn't imagine using something else. Arch is designed as a do-it-yourself distribution, and I really appreciate that.
    booman likes this.
  3. ThunderRd

    ThunderRd Irreverent Query Chairman Staff Member

    Joined:
    Dec 17, 2012
    Messages:
    2,240
    Likes Received:
    77
    Trophy Points:
    48
    Location:
    Northern Thailand, the Land of Smiles
    Home page:
    And this is exactly the reason I prefer Gentoo to Arch ;) It is extremely easy to roll back to a prior version of a package [like Nvidia drivers] if the current one is buggy or misbehaving.

    I will add, though - the Arch Wiki is amazing, and in many ways better than Gentoo's. And for Linux users the information in it is useful in other distros, it's not always Arch-specific information.
    Daerandin likes this.
  4. Daerandin

    Daerandin Well-Known Member

    Joined:
    Oct 18, 2013
    Messages:
    1,069
    Likes Received:
    219
    Trophy Points:
    63
    Location:
    Northern Norway
    Home page:
    It is easy to downgrade a package on Arch as well, as long as you know where to look. The old package will still be in the pacman cache (/var/cache/pacman/pkg) from where it can be installed with pacman -U but this is by definition a partial upgrade on Arch, which is not officially supported.

    There is also the Arch Linux Archive (ALA), which is a daily snapshot of the official repositories. You can edit the mirrorlist to point to a specific date on the ALA, run a full system update with pacman -Syuu to make your system will roll back to that date. Two u's are required to let pacman know that you do want to perform package downgrade to older versions, otherwise it will not go down to an older version during an update.

    Personally I always have a btrfs snapshot of my root system in a known working state, for which I also have a boot entry, in case a new kernel update renders the system unbootable.

    I have wanted to give Gentoo a try, mostly because it would be fun to learn a bit more on how to compile stuff specifically for my computer with regards to performance. At the same time I want to try out Linux From Scratch, most likely I will do one of them during my vacation now.
    booman likes this.
  5. ThunderRd

    ThunderRd Irreverent Query Chairman Staff Member

    Joined:
    Dec 17, 2012
    Messages:
    2,240
    Likes Received:
    77
    Trophy Points:
    48
    Location:
    Northern Thailand, the Land of Smiles
    Home page:
    I've only ever installed Gentoo once, and that installation has lasted all these many years. I've never had a reason to re-install/tear down or otherwise start over. Everything is fixable, and I mean **everything**.

    One great thing about rolling distros is the fact that you can keep them and simply maintain them. That's not to say nothing ever breaks; it does occasionally, but there is always a way out [short of re-installing].

    Gentoo is a bear to install. I was able to do it on my first try, but I was really, really careful and followed the install guide to the letter. If you can get past the installation, you will learn a lot about Linux. You'd appreciate the additional experience you would get by building all your installed packages for your specific machine and learning how to deploy the 'USE' flags.

    If you are already familiar with how to use chroot, then half of the installation battles are over.
    Last edited: Jun 19, 2021
    Daerandin likes this.
  6. Daerandin

    Daerandin Well-Known Member

    Joined:
    Oct 18, 2013
    Messages:
    1,069
    Likes Received:
    219
    Trophy Points:
    63
    Location:
    Northern Norway
    Home page:
    That's my exprience with Arch as well, you install once and that's it. No matter what happens, you can fix it. I also really like the rolling approach, there is never a reason to reinstall as the distro is gradually updating over time without ever having a new "release".

    I am hoping that my experience with Arch should make a Gentoo install simpler, and yes I am familiar with chroot.

    The easiest way for me to do this would simply be to create a btrfs subvolume for a Gentoo, that way I would not need to worry about new partitions. My /home subvolume could be used with Gentoo as well as Arch.

    I might get started on this during the next couple of days.
  7. ThunderRd

    ThunderRd Irreverent Query Chairman Staff Member

    Joined:
    Dec 17, 2012
    Messages:
    2,240
    Likes Received:
    77
    Trophy Points:
    48
    Location:
    Northern Thailand, the Land of Smiles
    Home page:
    Make sure that you check btrfs compatibility with your bootloader if you're going to have a dual-boot situation, I don't know much about btrfs + grub or whatever you are using
  8. Daerandin

    Daerandin Well-Known Member

    Joined:
    Oct 18, 2013
    Messages:
    1,069
    Likes Received:
    219
    Trophy Points:
    63
    Location:
    Northern Norway
    Home page:
    I have a normal EFI partition that I boot from, so that's no problem. I actually use self-signed kernel+initrd images that I boot directly with no bootloader. This way I can have secure boot enabled with no hassle. Not that secure boot actually provide much in terms of security, I just did it for the educational value.
  9. booman

    booman Grand High Exalted Mystic Emperor of Linux Gaming Staff Member

    Joined:
    Dec 17, 2012
    Messages:
    8,046
    Likes Received:
    578
    Trophy Points:
    113
    Location:
    Linux, Arizona
    Home page:
    Dang, I'm not getting notifications from this thread. Sorry I missed all of your comments!
    I booted up Arch this week and installed Chrome... I had to look it up!
  10. cloasters

    cloasters Well-Known Member

    Joined:
    Jul 3, 2013
    Messages:
    6,250
    Likes Received:
    71
    Trophy Points:
    48
    I gotta tell ya, these guys know their stuff!
  11. Daerandin

    Daerandin Well-Known Member

    Joined:
    Oct 18, 2013
    Messages:
    1,069
    Likes Received:
    219
    Trophy Points:
    63
    Location:
    Northern Norway
    Home page:
    Chrome or Chromium? Chromium is in the official repos and installable with a simple pacman command. Chrome can be found in the AUR, which it a bit more involved to install. I don't remember if I mentioned this, but stay away from "AUR Helpers", most of them are poorly written, while also doing the user a disservice by hiding the install process from you. AUR (un-)helpers are also not officially supported in Arch and strongly discouraged by pretty much all the Arch veterans and devs on the forums.

    In any case, I still didn't get started on my Gentoo test. This whole week I've been doing one of two things: Playing Doom Eternal, or reading up on Rust, which is a fascinating programming language.

    Thankfully I still got three more weeks off, I definitely want to give Gentoo a proper try. Linux From Scratch seems like it might take more time than I am willing to put into it at the moment, so Gentoo is the better choice here.
    booman likes this.
  12. booman

    booman Grand High Exalted Mystic Emperor of Linux Gaming Staff Member

    Joined:
    Dec 17, 2012
    Messages:
    8,046
    Likes Received:
    578
    Trophy Points:
    113
    Location:
    Linux, Arizona
    Home page:
    Ha ha I totally forgot about Chromium... so I installed Chrome like this and it worked:
    Code:
    sudo pacman -S git
    cd ~/Downloads
    git clone https://aur.archlinux.org/google-chrome.git
    ls
    cd google-chrome/
    makepkg -s
    sudo pacman -U google-chrome-63.0.3239.108-1-x86_64.pkg.tar.xz
    
    I had to create the ~/Downloads directory because it wasn't originally there.
    But once it completed I found Chrome in the Cinnamon Menu under Internet.
    Daerandin likes this.
  13. Daerandin

    Daerandin Well-Known Member

    Joined:
    Oct 18, 2013
    Messages:
    1,069
    Likes Received:
    219
    Trophy Points:
    63
    Location:
    Northern Norway
    Home page:
    That is the official way to do it. Although you don't HAVE to use git, you can also just browse aur.archlinux.org, find what you are looking for, "Download snapshot". Unpack it it with tar, cd into the dir and run makepkg.

    If you are going to install other packages from the AUR, ensure you have the 'base-devel' package group installed. Chrome is a binary package and as such probably didn't need any build tools, but most AUR packages will require it and will simply fail to build without it. So ensure it's installed with:

    sudo pacman -Syu base-devel (always a good idea to update while installing, which is what the 'yu' does)

    One thing to note about AUR, these will never automatically update, so you need to keep track it such packages and update yourself. One convenient way to list all packages on your system that are not from the official repos (for now that would probably only be Chrome), is to run the command: pacman -Qm

    The lists all packages that are installed on your system, but don't exist in the official repos. Once in a while it is useful to check the AUR if there are updates. Updating is done in exactly the same way as you just did.

    Oh you don't have have to keep the google-chrome directory around after installing the package, it can be safely deleted.

    A few words on makepkg and what it does:

    AUR packages mostly just consist of a single file called PKGBUILD, in a few cases there will be additional files, but mostly it's just a single text file, the PKGBUILD. When you run the command "makepkg", it will look for PKGBUILD in the current directory, and download sources and build them according to the instructions in the PKGBUILD. The result will be a single file that pacman can install.

    makepkg -s : Here the -s flag will cause any dependencies to automatically be installed by pacman if they are missing from your system. On a related note, I usually always use:

    makepkg -rs : The 's' ensures any required dependencies are installed. Some dependencies are only required to build the package, and will not be needed to just run it. If you don't want those dependencies on your system after having built the package, then this command deals with that. The 'r' flag removes unneeded dependencies after the package has been built.

    The pacman -U command simply installs a package, similar to pacman -S. The primary difference here is that -S will look for the named package in the official repositories, while -U installs a from a package on your system. And when you build a package on your system with makepkg, then you need the -U flag to install it.

    There are ways to automatically track when AUR packages need updates, but it's better to set that up after you are comfortable with doing it manually.

    EDIT: Sorry for being so long-winded. I get excited and then I don't know when to stop.
    Last edited: Jun 26, 2021

Share This Page