Oracle VM VirtualBox 5.0.10
Oracle VM VirtualBox 5.0.10
NOTE:
  • Hyperlinks to third-party resources (including Wikipedia) that I cannot guarantee the accuracy are included in this article.
  • I merely study computing and related topics in my spare time, I have no formal training in technology or the associated legalities, so while I am trying to ensure this post (especially the glossary section) is as accurate as I can, I cannot guarantee its accuracy. If you have any corrections or edit recommendations please forward them to brentonhorne77@gmail.com.

As is mentioned in the About Me section of this website, I have tried quite a few Linux distributions and BSD derivatives using Oracle VM VirtualBox, live media and my removable hard drive. Some I have only spent less than an hour using, but those I have spent over an hour with and feel fairly confident in my ability to review, include:

Glossary

Short Definitions

  • *BSDs
    • Berkeley Software Distribution derivatives.
  • *nix
    • Unix/Unix-like operating system.
  • BE
    • Bleeding edge, in the context of operating systems, means that the system has the very latest software.
  • BSDs
    • Berkeley Software Distribution derivatives.
  • Calamares
    • Calamares is a distribution-independent graphical installer framework written predominantly in C++ (82.0%) and Python (8.0%), according to GitHub.
  • CLI
    • Command-line interface. Also known as terminal, a way of interacting with one's OS by issuing a series of textual commands.
  • CLIs
    • Command-line interfaces.
  • GUIs
    • Graphical user interfaces.
  • IDEs
    • Integrated Development Environments.
  • LD
    • Linux distribution.
  • LDs
    • Linux distributions.
  • LTS
    • Long-term stable/support.
  • OS
  • OSs
    • Operating systems.
  • PMS
  • PMSs
    • Package magement systems.
  • VM
    • Virtual machine. Host operating systems run within virtualization software such as VirtualBox.
  • VMs
    • Virtual machines.

Basic Definitions

Command-Line Interface

A command-line interface (CLI) or command-line interpreter is a type of user interface that allows users to interact with their computer by issuing a series of commands. On *nix systems the most common type of CLI are Unix shells.

Fork

In the field of software development a fork is when software developers take a copy of a project’s source code and start working on it independently of its previous developers. Proprietary software licenses do not usually allow for forks except with the expressed permission of the software’s previous developer(s). In the FOSS community forks are common due to the fact that FOSS licenses permit the creation of forks without the previous developer(s)’s permission.

Graphical User Interface

A graphical user interface (GUI) is a type of interface that allows users to interact with their computer using graphical icons and visual indicators. This is as opposed to command-line interfaces (CLIs) and textual user interfaces (TUIs), in which users interact with the computer by issuing lines of commands or by writing textual responses to prompts. The most notable type of GUI found on many *nix systems is that of a desktop environment like Cinnamon, GNOME, KDE, LXDE, MATE, Xfce, etc.

Hardware

Computer hardware consists of the physical or tangible components of a computer, including its hard disk drive (HDD, or simply hard drive), central processing unit (CPU), graphics card, etc.

Integrated Development Environment

An Integrated Development Environment (IDE) is a program that provides users, supposedly comprehensive, facilities for software development. I used the word “supposedly”, to draw attention to the fact that the definition of comprehensive does vary quite substantially from IDE to IDE.

Software

Software are the non-physical or tangible components of a computer, specifically data stored on a computer’s hard drive, computer programs (e.g., the web browser you are using to view this blog post), software libraries, etc.

Licensing Definitions

Copyleft License

Copyleft, which is a play on the word “copyright”, in the context of software licensing, refers to licenses that allow people to freely distribute copies of software licensed under their terms, as well as to make any modifications of the software they see fit and redistribute these modified versions provided they distribute these modified versions under a similar copyleft license. One of the most popular examples of a copyleft license is the GNU General Public License (GPL).

Free and Open-Source Software

Free and open-source software (FOSS) refers to software that is freely licensed to be used, studied, copied, modified in anyway, and is open-source so that anyone with the skill and inclination is free to improve on the software should they choose, provided they conform to the requirements of its respective license. FOSS is licensed under either a copyleft or permissive license or licenses in between (e.g., the GNU Lesser General Public License and Mozilla Public License).

Freeware

Freeware, refers to software that is licensed under a proprietary license (hence meaning it is not open-source), but available free of charge. Notable examples include Google Chrome and Spotify, as while they are free, you are not free to access, modify and redistribute their source code.

Open-Source Software

Open-source software (OSS) refers to any piece of software that’s source code is freely shared and licensed, so that anyone with the inclination and/or the skill can look at, modify, redistribute, etc. the source code without fear of being justly called or even charged as a pirate, provided they abide by the terms of the source code’s license.

Permissive License

Permissive licenses are FOSS licenses that do not require that derivatives of the software licensed under their terms be released under similar FOSS licenses. Popular examples of permissive licenses include the various BSD licenses and the MIT License.

Operating Systems

BSD

Berkeley Software Distribution (BSD), a Unix operating system developed at the University of California, Berkeley between 1977 and 1995. The early releases of BSD were proprietary-licensed, although releases from 4.3 onwards (which was made in 1986) were licensed under the permissive BSD licenses. BSD 4.4 was forked to create several operating systems (including Apple’s OS X) that are still under active development today.

GNU

GNU, which is a recursive acronym for GNU is Not Unix, is an extensive collection of software that can be used to build *nix systems. This includes a kernel, GNU Hurd, although most commonly operating systems using GNU software will use the Linux kernel instead.

Kernel

An operating system kernel is a piece of system software that manages all communication between a computer’s software and its hardware. It essentially converts all software input/output requests into implementable instructions for the computer’s hardware. There are three major categories of kernel, although one of these categories is debatable with the creator of the Linux kernel calling it simple marketing, they are:

  • Hybrid kernels (the debatable kernel category) are, as their name suggests, kernels that are a compromise between micro- and monolithic kernels, with some (but not all) system software components running in the kernel’s virtual memory (or kernel space). Examples include the kernels of both OS X and the Windows NT family.
  • Microkernels (and more extreme members of this category like nano- and pico-kernels). These are kernels that keep as little of the system software running in the kernel’s virtual memory as possible. They are so called because they usually consist of significantly fewer lines of source code than corresponding monolithic kernels. This makes bug-fixing easier, although it may also reduce the performance of operating systems using these kernels. Examples include the GNU Hurd and MINIX kernels.
  • Monolithic kernels, which are kernels that keep all system software in the kernel’s virtual memory, and are often reported to be superior, performance-wise than their microkernel counterparts. Examples include the FreeBSD, Linux, NetBSD, OpenBSD and Solaris kernels.

Linux distribution

A Linux distribution is any operating system that is built on top of the Linux or Linux-libre kernel. Most Linux distributions can also be called GNU/Linux distributions because of the fact that most (if not all) of their userland software come from the GNU Project. This userland software includes the GNU Coreutils package that provide some of the basic POSIX utilities, including cat, chmod, cp, mv, etc.

Linux kernel

The Linux kernel is a monolithic kernel originally created by and named after Finnish computer programmer, Linus Torvalds, whom at the time of its founding in 1991 was a 21-year-old computer science student. It started off as a side project by Torvalds to create an operating system for his own personal use, but has since expanded to become one of the most widely used free (licensed primarily under GPLv2) operating system kernels worldwide.

Linux-libre kernel

The Linux-libre kernel is a kernel that is essentially the Linux kernel with its proprietary binary blobs removed. These binary blobs are licensed under non-FOSS licenses and hence do not give users the freedom to study, modify and redistribute them under FOSS licenses. The binary blobs basically improve the kernel’s compatibility with one’s hardware. The Linux-libre kernel is developed as part of the GNU Project.

NET

Usually refers to netinstall editions. These are OS editions that contain the barebones required to install an OS using one’s network (or Internet) connection.

Operating system

An operating system, is essentially the pieces of system software that manages hardware and software resources and provides common services for computer programs. The most important piece of system software of any operating system is its kernel.

Out-of-the-box

The property of an operating system of being “out-of-the-box” means that as soon as the default installer (if any) has done its job and installed the system, the system should be ready to be used by the user without any further configuration or installation of software onto the system.

POSIX

Portable Operating System Interface. A family of standards for the application programming interface (API), Unix shell, command-line utilities, etc. of *nix systems.

RRM

Rolling release model (RRM), a type of operating system development model in which the system is continually developing, this is as opposed to standard release models (SRMs) which uses distinct OS versions that must be reinstalled over the previous version.

Unix

Unix is a family of operating systems with several defining characteristics including support for multiple users and for the execution of multiple tasks simultaneously, a modular design with simple tools that perform limited, well-defined functions, a Unix shell, POSIX compliance, compliance to the Single Unix Specification (SUS), etc. Notable examples include BSD, OS X (previously called Mac OS X), Research Unix and Solaris.

Unix-like

Unix-like operating systems are a family of operating systems, that share the vast majority of the features of Unix systems, without necessarily being certified as compliant to any particular version of the SUS. This certification costs money, so many free operating systems do not have the funds or the inclination to get SUS certification. Examples include FreeBSD, Linux, NetBSD and OpenBSD.

Unix shells

A Unix shell is a program that serves as a command-line interpreter (CLI) for *nix systems including the various distributions of Linux. Unix shells are also defined by their POSIX compliance. Notable free examples include Bash, tcsh and Zsh. POSIX compliance also means that these Unix shells share some parts of their syntax. Bash and Zsh are probably the most feature-packed free widely-used Unix shells and most shell scripts written for Bash should also work without a hitch in Zsh. Although there are exceptions, for example, tests (indicated by single or double square brackets around a segment of code in Bash) in Zsh need double square brackets.

Bourne-Again Shell

The Bourne-Again Shell (or Bash) is the most popular Unix shell around today. It is free, developed as part of the GNU Project and modelled after the Bourne Shell with features from miscellaneous other shells including the KornShell. It is one of the most feature-packed Unix shells too. Any Bash script snippet shown in this post is designed to be added to one’s .bashrc file (which is found in the user’s home directory) so that after one run’s source ~/.bashrc (which will cause Bash to re-read this file) one can run the functions defined in the script from one’s favourite terminal. For example, if you add the Bash script for Debian package management to your ~/.bashrc file and run source ~/.bashrc then running update from a terminal emulator it should upgrade all packages on your system.

Bourne Shell

The Bourne Shell (sh) is the best-accepted of the original shells developed for Research Unix. Its development was discontinued many years ago, although some modern-day *nix systems still use it. For example, it is still used as the default user shell of FreeBSD.

C Shell

The C Shell is an extinct (no longer under active development) Unix shell originally developed in the late 1970s by Bill Joy (whom also developed the vi text editor) for use by the Berkeley Software Distribution. It is so named because its command-line syntax is very similar to that of the C programming language.

friendly interactive shell

The friendly interactive shell, or fish for short, is a Unix shell that is designed to be more user-friendly than other shells. It features syntax highlighting, auto-completions, etc.

KornShell

The KornShell (ksh, several descendents of the KornShell also exist, they usually have ksh somewhere in their abbreviated name) is a Unix shell that was first developed at Bell Labs in the early 1980s and while it is not the most popular of Unix shells, it is still under active development and used by a small handful of *nix systems such as OpenBSD, as their default shell.

TENEX C Shell

The TENEX C Shell (or tcsh) is a Unix shell with fewer features than the more feature-packed shells, Bash and Zsh, and is considered an improved version of the C Shell. It has been falling out of favour in recent years and it used to be the default shell of OS X (before the release of 10.3 in 2003) and is the default root shell of FreeBSD.

Z Shell

The Z Shell (or Zsh) is a less popular Unix shell than Bash and is not the official Unix shell of anymore than a couple of unpopular *nix systems. Despite this it is very feature-packed, surpassing even Bash in this regard. An example feature it has that Bash lacks is that of syntax highlighting, which is a feature it borrows from fish.

Programming Languages

A programming language is a type of computer language that is used to write computer programs. Further details can be found in the A Comparison of Programming Languages post.

Review Format

Each OS review will have the format:

  • OS Name
    • <Screenshot of the OS running>
    • Background
      • Background information on the OS, such as its history, an overview of its features that distinguish it from other operating systems and how user-friendly it is. I also mention its average DistroWatch ranking over the past year.
    • Installer
      • This section is also optional and only included if the installer is used on multiple platforms and/or is notable with regard to its features.
    • Package Management
      • Not all OSs will have this section, but if they do, here I will discuss the OS's default PMSs and their features. Including some basic usage of the PMSs. Those that lack this section likely lack it because they share the package management system of their parent distribution (that is the distribution that they are derived from). It is important also to note that I usually avoid graphical front-ends for package management systems like the plague, because I have had some nasty experiences with them on the first Linux distribution I ever tried, Ubuntu, that were absent from the command-line.
    • Derivatives
      • Not all operating systems will have this section, but if they do I will discuss any notable derivatives of the OS, in question, that I have used but have not used enough to write a separate review for them.
    • Specifications
      • A list of specifications, including OS type, its parent, its package management system (PMS), default user interface and architecture support.
      • Minimum Requirements
        • Minimum required CPU, HDD, IMS and RAM.
    • Ratings
      • Where I give approximate numerical ratings (from 1-10. 1 being terrible/non-existent and 10 being perfect) for the quality of the various features and characteristics of the OS.
        I do provide a numerical rating for system resource usage, but I cannot use ps_mem to assess this accurately and consistently across systems, as my VirtualBox VMs for the various OSs reviewed here, have widely different programs running on them, hence it is an unfair comparison.
        I also provide a numerical rating from 1-10 for the extent of my experience with the system (MEWI), 1 in this context indicates <1 hour, 2 for ~1-2 hours and 3 for 2-3 hours, 4 for 3-6 hours, …, 10 for >100 hours. Additionally I provide an overall satisfaction score for the system, from 1 to 10.

antiX

antiX 15 running in VirtualBox, with its default desktop
antiX 15 running in VirtualBox, with its default desktop

Background

antiX (DPDWFWP) is a lightweight Linux distribution based on Debian’s ‘Testing’ branch for 32-bit (i486 or better) and 64-bit systems. It is essentially designed to be a lightweight distribution as it uses the IceWM window manager as its default user interface. I have found it fairly user-friendly with a graphical installer and a fresh install takes up less than 3 GB hard disk drive (HDD) space. A fresh install can also work with as little as 128 MB RAM, although a minimum of 256 MB is recommended. Compared to more popular Linux distributions such as its parent Debian, its own documentation is fairly minimal, although as it is a Debian derivative the documentation of Debian should suffice in most cases. Since it is built on the testing branch of Debian its system software is usually bleeding edge, in terms of how up-to-date it is.

Specifications

  • Architecture support: x86 (i486 or better), x86_64.
  • Country of origin: Greece.
  • Date of establishment: 2010.
  • Default Unix shell: Bash.
  • Default user interface(s): IceWM.
  • Derived from: Debian (Unstable).
  • Installation method: Booting from live medium and then using the Debian-Installer.
  • OS type: Linux.
  • Package manager(s): APT.
  • Release model(s): Rolling.
  • Target market: Old computers and users that like to have the latest software.

Minimum Requirements

  • CPU: i486.
  • HDD: ~2.5 GB.
  • IMS: 222 MB.
  • RAM: 128 MB. ≥256 MB preferable.

Ratings

  • Beginner-friendliness: 8. Fairly beginner-friendly.
  • Customizability: 8. A core-libre version is available, which contains the bare minimum software, on it you can build your own custom system.
  • Documentation: 2. Very little original documentation exists for antiX.
  • Free support: ? I’ve never had to use their support.
  • Out-of-the-box: <6. Seems no more out-of-the-box than Debian, probably less due to its minimalism.
  • Package management: 7. Uses tools it borrows from Debian, which in my opinion are not very impressive.
  • Performance/SRU: 9. Fairly lightweight, by default.
  • Stability: 7-8. I have never had any stability issues with it myself, probably because I have not used it enough to, but it is based on the testing branch of Debian, hence it is inevitable that it will be more buggy than Debian (Stable).
  • MEWI: 2.
  • Overall: 8. It is OK, but I always feel it is like using a treehouse for your office — it is too minimalistic for it to be appropriate. Although, if I had the time and inclination to install all the software I wanted, I could make it more to my liking.

Arch Linux

Arch Linux running the Deepin Desktop Environment
Arch Linux running the Deepin Desktop Environment

Background

Arch Linux (BTDPDWFGRIRCMLWWP) is an independent Linux distribution that was first founded in 2002 and has since become one of the most popular Linux distributions that is geared towards experienced users. It aims to adhere to the “Keep It Simple, Stupid” principle. Its take on this principle is that no automation should be done and that a fresh install of Arch should have as little software on it as possible. The purpose of this minimalism is that it gives the user as much control over their system as possible. Arch uses its own package management system too, pacman. Due to its minimalism it is also often said to be a “Do It Yourself” (DIY) distribution.

The manual installation process can be a newbie-killer (mostly in the sense that it is tedious and the guide for it is not really written for Linux newcomers), although with installation scripts this can be bypassed. As I have never used Arch Linux on my PC, except through Oracle VM VirtualBox, I always use Packer to automate the installation process. Once installed, intermediate-experienced Linux users that are comfortable with the command-line should feel at home, although novice Linux users that are much more comfortable with GUIs than with CLIs will probably struggle at this stage too. I personally find software installation on Arch Linux easier than it is on Debian and Fedora, because of its command-line package managers, pacman and Yaourt.

It is the 8th most popular Linux distribution, according to the DistroWatch website.

Package Management

pacman is a PMS written in C that installs software from binary packages with the file extension .pkg.tar.xz. These binary packages are stored in the pacman repositories, which contain over 13,600 packages as of 07 January 2016.1 One can search the official repositories here. The pacman package provides a number of different commands (which are all contained in the /usr/bin directory and a complete list of the files included by the pacman package on 64-bit systems may be found here) that can be executed from the command-line, including, but not limited to: makepkg and pactree. makepkg is used to build pacman binary packages (in .pkg.tar.xz format) from instructions contained in a specialized type of Bash script called a PKGBUILD. PKGBUILDs usually describe to makepkg how to build binary packages from source code, which is, of course, a tedious and error-prone process, although similarly to Gentoo’s ebuilds PKGBUILDs sometimes describe how to build a binary package from another Linux distribution’s binary package (usually .deb or .rpm binaries).

Arch Linux also has its own git-managed online repository of PKGBUILDs, that is called the Arch User Repository (AUR). The AUR actually contains more PKGBUILDs than there are binary packages in pacman’s official repositories — as of 07 January 2016 it contains over 30,000 PKGBUILDs.2 If one wants to install software from the PKGBUILDS contained in the AUR one has two choices: either do so manually, using git, makepkg (to compile the package using PKGBUILD instructions) and pacman (to install the package build with makepkg) command-line tools or use a wrapper for pacman that is called Yaourt (yaourt from the command-line).

Yaourt is French for yogurt and is so named as it is an acronym for Yet Another User Repository Tool. Yaourt has the same syntax as pacman, but unlike pacman, which when asked to install a program will only search for the program in the Arch binary package repositories, Yaourt will look at both Arch’s binary package repositories and the AUR.

I would personally rate pacman and Yaourt as two of my favourite package managers, because of how simple, fast, yet flexible they are. Most package managers will install software from either binary packages or from source code, unlike Yaourt which can install from both. pacman and Yaourt are also fairly fast compared to equivalent package managers operating on other systems. For example, Yaourt will most of the time take less time to install a software package from source code than Portage will take to install the same package. I suspect the reason behind this is that Portage is written in Python and Bash script, while pacman is written in C and Yaourt, being a wrapper for pacman, is written in C and Bash script. pacman is actually widely considered the fastest Linux package manager available.

Arch Linux also follows a bleeding-edge rolling release model (BE-RRM), which means that users almost always have the latest software and never need to perform a standard system upgrade. Although it is worthwhile noting that not all software on Arch is bleeding-edge, some can be a few releases behind. For example, until 14 December 2015 e_dbus 1.7.9 was still in their official pacman repositories, even though version 1.7.10 was released on 6 January 2014.3 Although as a side note it may also be worthwhile mentioning that I have set up a GitHub repository containing PKGBUILDs for packages that are either not in the AUR/pacman repositories, or the versions that are there have since become out of date. At the time of writing this, these PKGBUILDs are all related to the Enlightenment desktop (and includes e_dbus 1.7.10).

pacman and Yaourt both have a very unusual syntax, see most command-line BSD/Linux package managers use the install option to install software, remove to remove software, update to update software repositories and upgrade to update all installed software. pacman (and hence also Yaourt, although for upgrades the option is -Syua for Yaourt) instead uses -S, -R, -Sy and -Syu options, respectively. Further details of its syntax can be found here.

Here is an example ~/.bashrc file one can use on Arch VMs.

pacman/Yaourt Scripts

# A less powerful replacement for Yaourt, I use when Yaourt is somehow inappropriate
function aurin {
  for i in "$@"
  do
    git clone https://aur.archlinux.org/$i.git
    pushd $i
    makepkg -si
    popd
    rm -rf $i
  done
}

# `paclin` installs software with pacman from a local package.
function paclin {
  sudo pacman -U $@*.pkg.tar.xz
}

# `pacin` installs software with pacman, without asking for confirmation
# to get this command to ask for confirmation first remove the --noconfirm
# option
function pacin {
  sudo pacman -S $@ --noconfirm
}

# `pacrm` removes software with pacman, without asking for confirmation
# -Rsc option is used to get pacman to remove reverse dependencies of the target
# package, as needed. If you use the -R option instead quite often this command
# will fail due to reverse dependencies that would be broken if the target package
# is removed
function pacrm {
  sudo pacman -Rsc $@ --noconfirm
}

# `pacup` updates software installed with pacman (not Yaourt-installed software)
# without asking for confirmation
function pacup {
  sudo pacman -Syu --noconfirm
}

# `update` updates all software, including that originally installed with Yaourt
# without asking for confirmation
function update {
  yaourt -Syua --noconfirm
}

alias yaup=update

# `yain` installs software using Yaourt, without asking for confirmation
function yain {
  yaourt -S $@ --noconfirm
}

# `yalin` installs a local software package using Yaourt, without asking for
# confirmation
function yalin {
  yaourt -U $@ --noconfirm
}

# `yarm` removes software using Yaourt
function yarm {
  yaourt -Rsc $@ --noconfirm
}

By default Arch has the following pacman repositories enabled:

core
community
extra

Derivatives

Several derivatives of Arch Linux exist, most of them are designed to be more user-friendly and less minimalistic than Arch, although some differ in other respects instead. Examples of user-friendly Arch derivatives include (all of which feature graphical installers):

  • Antergos — a Spanish distribution that used to be called Cinnarch due to its default Cinnamon desktop. Since then, extra live media has become available that feature different desktop environments. It supports both 32-bit and 64-bit processors and presently ranks 38th for popularity, according to DistroWatch. I have attempted to install this on a VirtualBox VM but failed due to bugs in the graphical installer.
  • ArchBang — a Canadian distribution that uses Openbox as its default user interface. It is currently ranked 49th according to the DistroWatch website for popularity and supports both 32-bit and 64-bit processors. I have attempted to install this on a VirtualBox VM but failed due to bugs in the graphical installer.
  • Chakra — a German distribution that uses the KDE Plasma 5 desktop by default. I have managed to install it on a VirtualBox VM, after I disabled 3D acceleration (which may have caused my inability to install Antergos and ArchBang), did not use it very long as I was more interested in Arch and Manjaro. It is presently ranked 60th according to the DistroWatch website for popularity and supports only 64-bit processors.
  • Manjaro Linux which is covered later in this post.

Another notable Arch derivative is Parabola GNU/Linux-libre which is just as challenging as Arch, if not more challenging, but unlike Arch it uses the Linux-libre kernel by default. Parabola is currently ranked 153rd for popularity according to the DistroWatch website.

Specifications

  • Architecture support: arm, i686, x86_64.
  • Country of origin: Canada.
  • Date of establishment: 2002.
  • Default Unix shell: Bash.
  • Default user interface(s): Command-line.
  • Installation method: Manual from the command-line or via unofficial shell script installers
  • OS type: Linux.
  • Package manager(s): pacman
  • Release model(s): Rolling.
  • Target market: Experienced users, especially those that value the latest software over system stability.

Minimum Requirements

  • CPU: i686.
  • HDD: <800 MB.
  • IMS: 659 MB.
  • RAM: 256 MB.

Ratings

  • Beginner-friendliness: 4.
  • Customizability: >8.
  • Documentation: 8. Has some of the best documentation out there.
  • Free support: I have found their forums only useful when you can provide truck loads of information and screenshots, otherwise, beware there be sharks in these waters!
  • Out-of-the-box: 1. It, due to its minimalism, is not very out-of-the-box.
  • Package management: >8.
  • Performance/SRU: >8.
  • Stability: 7. I have found Arch disturbingly easy to inadvertently break and make unusable, but most of the time it is stable enough to use.
  • MEWI: >5. I have a decent amount of experience with this system and its more newbie-friendly derivative, Manjaro Linux.
  • Overall: 8.

CentOS

CentOS 7 running GNOME 3
CentOS 7 running GNOME 3

Background

CentOS (BTDMDPDWFGRIRCMLWWP) , which is an acronym for Community Enterprise Operating System, is a Linux distribution that is based on Fedora and Red Hat Enterprise Linux (RHEL), that unlike Fedora, values stability over bleeding-edge software. It is essentially a free equivalent to RHEL, as it is designed for individuals or organizations that do not require commercial support (that is, paid support, the type of support that comes with RHEL), but still require the system stability of an enterprise-class operating system. Its stability comes from the fact it uses older, but more thoroughly-tested versions of the software found on Fedora. For example, its current (as of 07 January 2016) 7-1511 release uses GNOME 3.14 and the 3.10 version of the Linux kernel, which are from 15 and 30 months ago, respectively.

I, with my love of using the latest software, have not really taken a liking for CentOS. Rather, if I ever have to use a Linux distribution derived from Red Hat, I usually use the latest release of Fedora (currently Fedora 23). Unlike Fedora, CentOS is also more restricted in its architecture support as of the 7.1-1503 release, see Fedora can run on 32-bit and 64-bit machines, while CentOS 7.1-1503 and 7-1511 can only run on 64-bit machines.

Installer

CentOS uses the Anaconda installer, similarly to Fedora. For further details about this installer see the Fedora section of this post.

Package Management

CentOS uses the Yellowdog Updater, Modified (yum) package manager that was once used by Fedora. yum’s (or yum from the command-line) development has since been discontinued, in favour of its successor Dandified yum (DNF), which resolves package dependencies faster and more efficiently than yum does, by using ZYpp’s libsolv library, hence it is likely that in the future CentOS will start using DNF as well. yum is widely considered one of the least efficient widely-used Linux package managers presently available and the cause is likely the fact that unlike APT or ZYpp it is written in Python. Python has its advantages and disadvantages as a language for a PMS to be written in and its slow speed is one such disadvantage. yum and DNF have essentially the same syntax, below is an example ~/.bashrc for CentOS that shows some of its basic syntax.

yum Scripts

# This should update yum's repositories and perform any required package upgrades
# without asking for confirmation
function update {
  sudo yum update -y
}

# Install the dependencies for a package with yum without asking for confirmation
function ybd {
  sudo yum-builddep -y $@
}

# Install a package with yum, without asking for confirmation, from official repositories
function yin {
  sudo yum install -y $@
}

# Install a local (that is, present on one's local system and does not have to be downloaded
# from yum's repositories) package with yum, without asking for confirmation.
function ylin {
  sudo yum localinstall -y $@
}

# Remove a package with yum, without asking for confirmation
function yrm {
  sudo yum remove -y $@
}

Derivatives

CentOS has a few derivatives of its own and there are a few derivatives of its most notable derivative, Red Hat Enterprise Linux (RHEL). Besides RHEL and its derivatives there is very little I can comment on CentOS’s derivatives as I have not used any of them or heard anything notable about them. The two RHEL derivatives I know anything about are Scientific Linux and Oracle Linux, which while I have not used them I do know a little about their reputation. Scientific Linux, as its name suggests, is primarily targeted towards scientific computing and is co-developed by Fermi National Accelerator Laboratory and the European Organization for Nuclear Research (CERN) and is available free of charge. Oracle Linux is more oriented towards businesses that potentially need paid support (even though Oracle Linux itself is free) and an assurance of system stability.

Specifications

  • Architecture support: x86_64.
  • Country of origin: U.S.A.
  • Date of establishment: 2004.
  • Default Unix shell: Bash.
  • Default user interface(s): GNOME, KDE.
  • Derived from: Fedora, RHEL.
  • Installation method: From live media.
  • OS type: Linux.
  • Package manager(s): yum.
  • Release model(s): Fixed.
  • Target market: Individuals and organizations that place great importance on system stability, yet either cannot afford or do not want paid support from Red Hat.

Minimum Requirements

  • CPU: x86_64.
  • HDD: 10 GB. 20 GB recommended.
  • IMS: 360 MB.
  • RAM: 1,024 MB.

Ratings

  • Beginner-friendliness: 8.
  • Customizability: 5.
  • Documentation: >6. Has reasonable documentation, that I have little experience with, hence why I am giving it such a broad rating.
  • Free support: ? Never had to use their support forums or IRC channels.
  • Out-of-the-box: 7. About as out-of-the-box as Fedora, missing proprietary firmware.
  • Package management: 5. yum is definitely not my favourite PMS.
  • Performance/SRU: <5. Default DEs, GNOME and KDE, are fairly heavy on SRU.
  • Stability: >9. Very stable, never had stability issues with it myself.
  • MEWI: 3-4. Some experience, not an awful lot though.
  • Overall: 7. As previously mentioned I dislike outdated software in an OS.

Debian

Debian 8.2 running KDE Plasma 4

Debian 8.2 running KDE Plasma 4


Background

Debian (BTDMDPDWFGRIRCMLWWP) was one of the first Linux distributions to be founded and was founded back in 1993, by a then Purdue University student, named Ian Murdock. He named it Debian as a portmanteau of his first name and the first name of his then girlfriend, Debra Lynn. Since 1993 Debian has become one of the most popular Linux distributions, in fact, since 2002 every year Debian has appeared within the top 10 list for popularity in terms of page hit rankings, according to DistroWatch. Presently Debian is ranked number 2 for popularity according to DistroWatch.

It has also been ported to the greatest number of different processor architecture types of any Linux distribution. Over 1,000 volunteer Debian developers exist worldwide, making the Debian Project, the FOSS project behind Debian, one of the largest worldwide. Debian is also the most popular base Linux distribution on which to build new Linux distributions.

Installer

Debian uses its own installer known as the Debian-Installer, which is available from the command-line and as a graphical user interface. The official installation guide (for 64-bit systems, the guide for other architectures can be easily found using a Google search) can be found here.

Package Management

Debian uses the Advanced Packaging Tool (APT, apt from the command-line) and dpkg (dpkg from the command-line) for package management, by default. Although Aptitude and Synaptic are popular alternatives to APT that are generally considered more user-friendly, I personally prefer to just use APT and dpkg. Debian’s repositories currently contain approximately 50,000 binary packages — amongst the most of any Linux distribution. There are four main repository branches of Debian, including (in order of increasing levels of stability) experimental, unstable (or sid), testing and stable. New software starts off in experimental and then makes its way (over the course of a few years) to stable. These different repositories cannot be used safely, simultaneously, on the same Debian installation, I know this well as I have tried to do this before (namely mix unstable and stable branches) and I ended up breaking my system. Despite this some unofficial APT repositories can be used along with one of the official Debian repositories relatively safely. This too, I know from experience as I often add the Trinity Desktop Environment (TDE) repositories to my Debian VMs.

APT and dpkg have a limitation that DNF, RPM and yum lack, see DNF, RPM and yum can be used to install software packages from a URL, while APT and dpkg cannot. For example:

root #  apt-get install https://github.com/atom/atom/releases/download/v1.3.2/atom-amd64.deb

and:

root #  dpkg -i https://github.com/atom/atom/releases/download/v1.3.2/atom-amd64.deb

will not install Atom on 64-bit Debian systems. While:

root #  dnf install https://github.com/atom/atom/releases/download/v1.3.2/atom.x86_64.rpm

will install Atom on Fedora ≥22.

APT is a command-line front-end for dpkg. dpkg is what does the actual software installation, while APT manages repositories and software dependencies. APT is written in C++ and Bash script, while dpkg is written in C, C++ and Perl. APT by default installs software from binary packages found in the repositories specified in the text file /etc/apt/sources.list, although it can be used to install software from source code too. From the command-line APT is called by a variety of slightly different commands, including add-apt-repository, apt-cache, apt-config and apt-get. APT is fairly unique amongst the major Linux package managers in that it can work with Debian and RPM packages, although when it works with RPM packages it is usually referred to as APT-RPM.

Something that is worthwhile noting is that like many other popular Linux distributions (including CentOS, Fedora, openSUSE and Ubuntu) it splits many of its programs up into several different packages. For example, components of Lua (the programming language) 5.2 can be found in the following packages:

lua5.2
lua5.2-doc
liblua5.2-0
liblua5.2-0-dbg
liblua5.2-dev

this feature can be a blessing and a curse, depending on what you do with your Debian system. I personally do a lot of software compiling on my Debian VMs and having to remember to install all of a program’s components individually can be a real nuisance at times.

APT Scripts

# Upgrade installed software. Then remove any software that is no longer needed and clean the
# APT cache.
function update {
  sudo apt-get update && sudo apt-get upgrade -y && sudo apt-get autoremove -y && sudo apt-get autoclean
}

# Search for software
function sacs {
  sudo apt-cache search $@
}

# Show package details
function sacsp {
  sudo apt-cache showpkg $@
}

# Install software dependencies only
function sagdb {
  sudo apt-get build-dep -y $@
}

# Install software
# The input(s) can be local packages or packages in enabled repos
function sagi {
  sudo apt-get install -y $@
}

alias install=sagi

# Install local software package(s)
# sudo apt-get -f install installs any missing dependencies
# present in the currently-enabled repositories.
function sdli {
  sudo dpkg -i $@ && sudo apt-get -f install
}

# Remove software
function sagr {
  sudo apt-get remove -y $@
}

# Build Debian package from Debian sources, which are specified in
# /etc/apt/sources.list. The package will NOT be installed, however.  
function sagsb {
  sudo apt-get source -b $@
}

Derivatives

Besides antiX, Ubuntu and its various progeny (like Linux Mint) Debian has several other derivatives, the only two I have managed to install on a VM are gNewSense (DW), which is an incredibly out-of-date Debian derivative (still using GNOME 2.30.2 as of December 2015, which was released in May 2010) built on the Linux-libre kernel (it was the distribution used by Richard Stallman, until he switched to Trisquel) and Kali Linux (BTDMDPDWF) (previously known as BackTrack) which is predominantly used for penetration testing and supports ARM, i386 and x86_64 processor types.

Specifications

  • Architecture support: arm64, armel, armhf, i386, mips, mipsel, powerpc, ppc64el, s390x, x86_64.
  • Country of origin: U.S.A.
  • Date of establishment: 1993.
  • Default Unix shell: Bash.
  • Default user interface(s): Cinnamon, GNOME, KDE, LXDE, MATE, Xfce, etc.
  • Installation method: Live CD, DVD or USB.
  • OS type: Linux.
  • Package manager(s): APT and dpkg.
  • Release model(s): Fixed, approximately once every 1-3 years.
  • Target market: Individuals/organizations with a reasonable skill set, that do not require commercial support, but greatly favour system stability over how up-to-date software.

Minimum Requirements

  • CPU: i386.
  • HDD: 2 GB. 10 GB with a desktop environment.
  • IMS: <280 MB.
  • RAM: 128 MB. >512 MB recommended.

Ratings

  • Beginner-friendliness: 7-8.
  • Customizability: 5.
  • Documentation: >7. Has pretty good documentation, but I have fairly little experience with said documentation.
  • Free support: ? Never had to use their support forums or IRC channels.
  • Out-of-the-box: 6. By default it contains only free and open-source software sources, so out-of-the-box for proprietary firmware is missing for the most part.
  • Package management: 7. APT is OK enough, but still not something I would claim is the best PMS.
  • Performance/SRU: 7. Lighter than CentOS, but not as minimalistic as Arch.
  • Stability: >9. Very stable, never had stability issues with it myself.
  • MEWI: 4. Some experience, not an awful lot though.
  • Overall: 7. As previously mentioned I dislike outdated software in an OS.

Fedora

Fedora 23 with its default GNOME 3.18 desktop
Fedora 23 with its default GNOME 3.18 desktop

Background

Fedora (ABTDMDPDWFIRCMLWWP) , previously known as Fedora Core is a Linux distribution that was first founded in 2003 as a free continuation of the proprietary Red Hat Linux (RHL) distribution. It is developed by the Fedora Project, which is funded by Red Hat. Fedora, like its parent, uses RPM packages and originally used yum as its default package manager, until the release of Fedora 22 (F22) in May 2015 when it was replaced with a libsolv-based rewrite of yum called DNF. Fedora’s chief distinguishing characteristic, in my books, is that despite the fact it follows a fixed (or standard) release model, with new releases every 6-12 months, its system and desktop software is nearly always the latest stable versions available. For example, Fedora 23 (F23) ships with the 4.2 release of the Linux kernel and the 3.18 release of the GNOME desktop. Most Linux distributions that follow a fixed release model use the long-term stable (LTS) releases of the Linux kernel and other system software, for example, openSUSE 42.1 (released within a week of Fedora 23) shipped with the 4.1 kernel, because it is the latest LTS kernel available. Fedora is also the Linux distribution that is used by Linus Torvalds — the original developer of the Linux kernel.

The Fedora Project has more strict licensing requirements on its packages, than those imposed by Canonical on Ubuntu’s packages. Due to this restriction, users that wish to install proprietary software (like drivers for their respective hardware) are left with fewer options, the most attractive of these options, in my opinion, is to add the RPM Fusion repositories to their Fedora machine. For instructions on how to do this see this article.

I personally find it a distribution that is somewhere between Ubuntu and Arch Linux, in terms of difficulty of use, with respect to most things anyway. See like Ubuntu and unlike Arch Linux it has several different editions with a preinstalled desktop environment and additional out-of-the-box support. It also has an official graphical package management system (PackageKit) and a command-line package management system (DNF), which contributes to it being more user-friendly than Arch Linux, but what makes it more difficult than Ubuntu, in my opinion, is that its documentation is less comprehensive, its Wiki is more outdated and lastly support via official channels (like its AskBot website, Ask Fedora) is usually less in quality and swiftness of responses than Ubuntu. Generally speaking I find installing software that is not in the official repositories (e.g., later versions of SageMath) or that require configuration after they are installed with a package manager (e.g., MediaWiki) is more difficult on Fedora than on either Arch Linux or Ubuntu.

Fedora also has a developmental release called Fedora Rawhide that can be called a bleeding-edge rolling release edition, but I would not as a bleeding-edge rolling release model means, to me, at least, that while the system may be using the latest software it only uses the latest stable releases of its software (or at least its system software) and not the latest developmental releases of its software. Rawhide uses the latest developmental releases of its system software (including its kernel) and because of this bugs that prevent users from booting a Rawhide installation are not uncommon.

It is presently ranked 5th for popularity according to the DistroWatch website.

Installer

Fedora uses the Anaconda installer, which has been ported to a few other Linux distributions as well, including Sabayon Linux. According to its GitHub repository it is 87.8% written in Python, 7.9% written in C and 4% written in Bash script.

I have successfully managed to install Fedora 23 LXDE edition on my removable drive, although it failed to connect to the Wi-Fi by default. I had to install additional drivers by following this guide while connected to a wired (or ethernet) Internet connection.

Package Management

As previously mentioned later releases of Fedora use DNF (from the command-line dnf) as their default command-line package manager, with PackageKit being an officially-supported graphical front-end for DNF. DNF is essentially the same as yum (including the fact that it is mostly written in Python), except with faster dependency-resolution thanks to that fact it uses ZYpp’s libsolv library for this. Its syntax is virtually identical to that of yum, below are some examples. There are over 21,000 binary packages in its repositories.4

DNF Scripts

# Install software without asking first and then clean repos and caches
function sdyi {
  sudo dnf install -y $@ && sudo dnf clean all
}

# Remove software without asking first
function sdyr {
  sudo dnf remove -y $@
}

# Update all of one's software, without asking for confirmation
function update {
  sudo dnf update -y
}

# Install target's dependencies only, without asking first.
function sdyb {
  sudo dnf builddep -y $@
}

Derivatives

Fedora has quite a few derivative distributions, although nowhere near as many as Debian has. The most notable derivatives, besides CentOS, its derivative Red Hat Enterprise Linux (RHEL) and RHEL’s derivatives (like Oracle Linux) are probably:

  • BLAG Linux And GNU, is a British Fedora derivative that uses the Linux-libre kernel and adheres to the Free Software Foundation’s requirements for a free GNU/Linux distribution. I have not been able to use it as the download links on their website have experienced link rot. It is presently ranked 202nd on the DistroWatch website for popularity.
  • Chapeau, a British Fedora derivative which I have installed on a VM. Its major distinguishing feature from Fedora is the fact that it has a more relaxed stance on package licensing terms and only supports 64-bit processors. It is presently ranked 242nd for popularity according to the DistroWatch website.
  • Korora, an Australian Fedora derivative that I have also installed on a VM. It has a few extra tools (that I have hardly even used) and its releases usually lag a few months behind the corresponding Fedora releases they are built on. Its artwork is also a distinguishing feature (which I rather like). It is presently ranked 45th for popularity according to the DistroWatch website.

Specifications

  • Architecture support: armhfp, i686, x86_64. Several more were supported in F17 and F18.
  • Country of origin: U.S.A.
  • Date of establishment: 2003.
  • Default Unix shell: Bash.
  • Default user interface(s): Cinnamon, GNOME, KDE, LXDE, MATE, Xfce, etc.
  • Derived from: Red Hat Linux.
  • Installation method: Live CD, DVD or USB.
  • OS type: Linux.
  • Package manager(s): DNF, PackageKit.
  • Release model(s): Fixed, approximately once 6-12 months.
  • Target market: Individuals that do not require commercial support and favour the latest system software over stability. They should preferably also have at least a few months’ worth of experience with other Linux distributions, such as Ubuntu.

Minimum Requirements

  • CPU: i686 @ 1 GHz.
  • HDD: 10 GB.
  • IMS: 676 MB.
  • RAM: 1,024 MB.

Ratings

  • Beginner-friendliness: 7-8.
  • Customizability: ~5.
  • Documentation: 6-7. Its documentation, including the Wiki, are adequate for most actions one may wish to do on Fedora, although the Wiki is quite often out of date and does not dive into more advanced or specialized topics.
  • Free support: ? Never had to use their support forums or IRC channels. I have used their AskBot website and found it less helpful than what Ask Ubuntu is for Ubuntu questions, but usually (~70% of the time) a reasonable answer is obtained within a day.
  • Out-of-the-box: 7-8. I have noticed that it does not have out-of-the-box support for Broadcom chipsets.
  • Package management: 6. Not a big fan of DNF myself. I will admit it does seem marginally better than yum.
  • Performance/SRU: 6-8. The default desktop for Fedora Workstation is GNOME which is heavy, while there is also an official LXDE edition available for download which is lighter-weight.
  • Stability: 7-8. Fairly stable, but it does use the latest kernels and DNF has occasionally given me grief that appears to be bugs.
  • MEWI: 6. Once I installed it on a removable drive and used it from there for a few weeks.
  • Overall: 8. Fairly up-to-date software, but less intuitive than Ubuntu and poorer support.

Gentoo Linux

Gentoo Linux 12.0, taken from Wikimedia Commons
Gentoo Linux 12.0, taken from Wikimedia Commons

Background

Gentoo Linux (BTDMDPDWIRCMLWWP) is an independent Linux distribution that was originally known as Enoch Linux and founded in 1999 by a Canadian-born American computer programmer and software engineer named Daniel Robbins. As far as Linux distributions go, it is, in my limited experience, the most difficult-to-use and to setup Linux distribution around. This is because its package management system, Portage, while incredibly powerful is also slow, difficult-to-learn and difficult-to-use.

Gentoo penguins, the species of penguin after which Gentoo Linux is named. This image is courtesy of Wikimedia Commons.

Gentoo penguins, the species of penguin after which Gentoo Linux is named. This image is courtesy of Wikimedia Commons.

Unlike most package managers Portage installs software primarily (although binary installs are also possible) from source code using instructions found in specialized Bash scripts known as ebuilds. Installing software from source code optimizes the control users have over their system, as it means that features they want they can enable in a package when they configure its source code, while features they do not want they can also disable at the configure stage. Unfortunately, however, compiling software from source code also means that software installation takes longer than it would if one were installing from a binary package instead. Gentoo Linux’s name refers to gentoo penguins, a species of penguin renowned for their speed. See by compiling its software from source code it was hoped that this would optimize the software’s performance once installed.

The non-profit foundation that supports the development of Gentoo Linux, the Gentoo Foundation, was founded in 1999 by Robbins. The first stable release of Gentoo Linux was made in 2002. Daniel Robbins later left the project in 2004 to create a new Linux distribution called Funtoo Linux (which is derived from Gentoo) which is free too (contrary to my previous belief that it was not). In its early days Gentoo was actually one of the most popular Linux distributions around, at least according to DistroWatch, but with time its popularity fell (presently it is ranked 41st according to DistroWatch, for popularity) as fewer and fewer people had the skill, inclination and the time to build their system from the ground up with Portage. In fact, I do not even have the skill to install Gentoo manually, instead I took the easy way out and used Packer to build a virtual machine with it installed. Even with the assistance of Packer I am struggling to use Gentoo Linux because of Portage-related difficulties (see the package management section for details).

The power and versatility of Portage is best illustrated by the mere fact that Gentoo is second only to Debian in the number of architecture types it has been ported to. Portage has even been ported to non-Linux *nix operating systems, including:

  • The *BSDs including FreeBSD, NetBSD and OpenBSD.
  • Darwin
  • GNU (with the Hurd kernel)
  • OS X

I think of Gentoo Linux as essentially a more complex, customizable and portable version of Arch Linux. See like Arch, a fresh installation has nothing but the command-line and some basic packages to it and anything more than this must be built from the ground-up by the user. Arch Linux’s package manager, pacman, uses binary packages and does not give one a choice of which features of the package will be built and which will not, while Gentoo’s Portage, gives total control over which features are built and which are not.

Package Management

As previously mentioned Portage (emerge from the command-line) is the package manager of Gentoo Linux although several derivatives of Gentoo Linux also use Portage. Portage is written in Python and Bash script — according to GitHub these languages make up 93.6% and 6.4% of Portage’s source code, respectively, as of 07 January 2016.

Portage was inspired by the BSD ports system, the most significant differences are that Portage automates installation for one (unlike the ports system where you need to cd to the port directory and run root #  make install ) and also includes several advanced features including fake installs, safe unmerging, system profiles, virtual packages, dependency-resolution, config file management, etc. Another key difference from BSD ports is that Portage uses a type of specialized Bash script known as an ebuild to tell Portage how to build a program. ebuild writing I must say, is much more complicated than writing a PKGBUILD. This is because ebuilds include several special functions that are only used by Portage, which while they can make things simpler for those that know what they are doing, they can be difficult to learn and intimidating to see, for newcomers. PKGBUILDs, however, are usually more simple than ebuilds as they have fewer special functions.

ebuilds for Portage are stored in the Portage Tree and other Gentoo Portage overlays (GPOs). The Portage Tree contains the best-tested and most scrutinously-analysed ebuilds, while the GPOs contain user-written ebuilds that may, or may not, be safe to use as they have not been as rigorously tested. The Portage Tree presently contains over 18,750 distinct ebuilds and the GPOs contains approximately 25,450 distinct ebuilds, not including the different versions of the same package. The Gentoo Foundation has created its own tool for maintaining GPOs that is called Layman (layman from the command-line). This tool has a list of GPOs maintained by the Gentoo Foundation (the Layman remote list), that a new overlay can be added to by requesting its addition at the Gentoo bugzilla. Some (but not all) GPOs are in the Layman remote list and hence can be added using root #  layman -a <OVERLAY> where <OVERLAY> is the overlay’s name as it appears in the Layman remote list. For example, to add my GPO, sabayon-tools, one would run root #  layman -a sabayon-tools .

Layman and Portage Scripts

##############################################
              # cd functions #
##############################################
# cd to keywords directory
function cdk {
  mkdir /etc/portage/package.keywords
  cd /etc/portage/package.keywords
}

# cd to mask directory
function cdm {
  mkdir /etc/portage/package.mask
  cd /etc/portage/package.mask
}

# cd to use flag directory
function cdu {
  mkdir /etc/portage/package.use
  cd /etc/portage/package.use
}

##############################################
              # emerge functions #
##############################################
# Install a package, but ask first
function ema {
  sudo emerge -av $@
}

# Install a package and build binary
function emb {
  sudo emerge -avb $@
}

alias bpkg=emb

# Build a binary (.tbz2) package to /usr/portage/packages/$CAT ($CAT is the package's category),
# but do not install it
function emB {
  sudo emerge -avB $@
}
alias bpkgo=emB

# Test for dependencies
function emdt {
  sudo emerge -deptest $@
}

# Install from list.txt
function eml {
  sudo emerge -av $(cat "$1".txt)
}

# Install package dependencies only and ask before doing so. e.g., emo enlightenment
# would install all of enlightenment's dependencies.
function emo {
  sudo emerge -aov $@ && spm
}

# Pretend to install a package
function emp {
  sudo emerge -pv $@
}

# rev-dep
function emrv {
  sudo revdep-rebuild
}

# Unmerge a package, does not the dependency tree
function emrm {
  sudo emerge -C $@ && spm
}

alias emc=emrm

# Sync Portage Tree and all Layman overlays.
function ems {
  sudo emerge --sync --quiet && sudo layman -Sq
}

alias sync=ems

# Updates all packages in Portage
function emup {
  sudo emerge -uDU --with-bdeps=y @world
}

##############################################
                  # Other #
##############################################
# Search categories
function cats {
  sudo eix -C -c "$@"
}

alias eixcc=cats
alias eicc=cats

##############################################
           # edit config files #
##############################################
# nano keywords
function nkey {
  sudo nano /etc/portage/package.keywords/gentoo.keywords
}

# nano mask
function nmask {
  sudo nano /etc/portage/package.mask/gentoo.mask
}

# nano USE flags
function nuse {
  sudo nano /etc/portage/package.use/gentoo.use
}

# Track the download progress of packages being installed with Portage
function tailf {
  tail -f /var/log/emerge-fetch.log
}

Running the emup function is what gives the issues I previously mentioned in this post. See often when I run this command I get error messages regarding package conflicts that would occur if an upgrade is performed and what is worse is that this happens on every Gentoo and Sabayon (a Gentoo derivative that is covered later in this post) installation I have ever run this command on. I sort of know how to resolve this problem (a trial and error game with masking packages, changing USE flags and keywords, etc.) but since the number of package conflicts this message mentions is often so much that it cannot even fit the list in the limited memory of my terminal emulator, it would probably take me weeks to make the adjustments needed, so quite often I just give up.

Derivatives

Gentoo has a few different derivatives, the most notable one is probably Sabayon Linux which is covered later in this post, other notable Gentoo derivatives include:

  • Calculate Linux, which I have managed to install on a VM, although I did not use it much as I was turned off by Portage. It is currently ranked 77th by the DistroWatch website for popularity and is compatible with both i686 and x86_64 processors.
  • Chrome OS/Chromium OS, which I have never used. It is not ranked by DistroWatch.
  • Funtoo Linux, which I have also never used. It is ranked 152nd for popularity according to DistroWatch and supports i486, i686, x86_64 and sparc64 architectures.

Specifications

  • Architecture support: i486, i586, i686, x86_64, alpha, arm, hppa, mips, powerpc, ppc64, sparc64.
  • Country of origin: U.S.A.
  • Date of establishment: 1999 (Gentoo Foundation, year of founding) or 2002 (year Gentoo 1.0 was first released). Depending on how you define it.
  • Default Unix shell: Bash.
  • Default user interface(s): Command-line.
  • Installation method: From live media or from stage tarballs.
  • OS type: Linux.
  • Package manager(s): Portage
  • Release model(s): Rolling.
  • Target market: Advanced users, that have a lot of time on their hands and patience, and want to build their system from the ground-up.

Minimum Requirements

  • CPU: i486.
  • HDD: 2.75 GB (including swap).
  • IMS: ~200 MB.
  • RAM: 256 MB.

Ratings

  • Beginner-friendliness: ≤3.
  • Customizability: ≥9.
  • Documentation: ≥8. Some of the best documentation around, most of which is present at the Gentoo Wiki, while more complicated developer-type documentation (like writing ebuilds) can be found here. Most Gentoo ebuilds for complex programs (that actually need documentation, as they are not self-explanatory) also have USE flags that can be used to build documentation for the program.
  • Free support: ? Only used the support forums for Gentoo once and I was asking for support with using Portage on Sabayon. This one time it was not particularly helpful. I have also used the IRC channel #gentoo-dev-help twice for help writing some ebuilds and both times they were very helpful with the problem being solved within an hour of asking there.
  • Out-of-the-box: 1. It is not out-of-the-box, the user has to do just about everything for themselves.
  • Package management: <8. I like Portage on ideological grounds, but on practical grounds it is virtually impossible to use, effectively, long-term, due to the upgrade issue I mentioned under Package Management.
  • Performance/SRU: 8. Low system resource requirements, true, but high CPU/RAM use when Portage is run.
  • Stability: ~7-10. Due to the level of freedom users have when it comes to Gentoo, it is possible for them to choose older, yet more stable versions of each system software component, hence providing them a very stable system. Alternatively, if they prefer bleeding-edge software they can choose less, but more up-to-date versions of all one’s system software.
  • MEWI: ≤4. Given up due to the emup issues I mentioned.
  • Overall: ≤6. Ideologically I love Gentoo, but as I said Portage can be a nightmare.

Linux Mint

Linux Mint 17.3 with the default Cinnamon desktop
Linux Mint 17.3 with the default Cinnamon desktop

Background

Linux Mint (BTDMDPDWFGRIRCML) is an Irish Linux distribution based on Ubuntu’s LTS releases. What distinguishes it from the Ubuntu LTS releases it is built on is that it has browser plugins, media codecs, support for DVD playback and other pre-installed packages that are designed to make it more out-of-the-box. Linux Mint also has its own customized desktop built from GNOME 3 called Cinnamon (which has been ported to most major Linux distributions) and its own graphical package installer, MintInstall. As it is built on Ubuntu’s LTS releases it is also compatible with Ubuntu’s software repositories and can use them without a problem, usually, at least. Unfortunately LTS releases of Ubuntu usually ship with fairly old desktop/system software.

It is presently ranked first in terms of popularity, according to the DistroWatch website.

Installer

Linux Mint uses the Ubiquity installer of Ubuntu.

Package Management

MintInstall 7.6.3 running on Linux Mint 17.3
MintInstall 7.6.3 running on Linux Mint 17.3

MintInstall is essentially a Linux Mint equivalent to the Ubuntu Software Center as just like the software centre it is a graphical front-end for APT. I personally have fairly limited experience with it, so it may have a few features that the software centre lacks that I am unaware of.

Specifications

  • Architecture support: i386, x86_64.
  • Country of origin: Ireland.
  • Date of establishment: 2006.
  • Default Unix shell: Bash.
  • Default user interface(s): Cinnamon, KDE, MATE and Xfce.
  • Derived from: Ubuntu (LTS).
  • Installation method: Live media.
  • OS type: Linux.
  • Package manager(s): APT.
  • Release model(s): Fixed.
  • Target market: Newcomers to Linux.

Minimum Requirements

  • CPU: i386.
  • HDD: 5 GB. 20 GB recommended.
  • IMS: 1.4 GB.
  • RAM: 512 MB. 1024 MB recommended.

Ratings

  • Beginner-friendliness: 9.
  • Customizability: <6.
  • Documentation: 4. Fairly minimal documentation of its own, although the more complete Ubuntu documentation should be applicable to it too.
  • Free support: ? Never had to use their forums.
  • Out-of-the-box: 9. More out-of-the-box than Ubuntu.
  • Package management: 7.
  • Performance/SRU: 4.
  • Stability: ≥7. Never experienced any bugs myself, but I know from experience on other platforms that Cinnamon can be buggy.
  • MEWI: ≤4.
  • Overall: 7-8.

Mageia

Mageia 5 with its default KDE Plasma 4 desktop.
Mageia 5 with its default KDE Plasma 4 desktop.

Background

Mageia (BTDMDPDWFIRCMLWWP) is a French Linux distribution that was originally forked from the proprietary Mandriva Linux distribution by several former employees of Mandriva S.A. Mageia 1, the first release of Mageia, was released in 2011. Mageia follows a fixed release model and uses older and more stable versions of almost (if not all) all of its software, including its kernel (currently the latest LTS release 4.1.13, although a week or so ago it was still using 3.18) and desktop environments (GNOME 3.14 and KDE Plasma 4.14 are currently used). Like its parent its package management system is urpmi, which uses RPM packages. The word “mageia” is Latin for “magic”.

Mageia is fairly popular and is currently ranked 6th, by the DistroWatch website, in terms of popularity over the past year.

Installer

Mageia uses the graphical DrakX installer, which I have fairly limited experience with and have probably used at most three times (as you only ever use it when you are installing Mageia, after the installation you never see it again). The guide to using DrakX can be found here.

Package Management

rpmdrake 6.20 running on Mageia 5
rpmdrake 6.20 running on Mageia 5

As previously mentioned Mageia uses the command-line urpmi (urpmi from the command-line) package manager, which installs software using RPM binary packages and the RPM package manager. urpmi is written in Perl. Other commands included in the urpmi package includes a command for uninstalling software (urpme), another command for querying installed software and software repositories (urpmq) and one for querying the files installed by software packages (urpmf), amongst others. Mageia also uses Mandriva’s graphical front-end for urpmi, rpmdrake. Below is a Bash script showing some useful commands involving urpmi. My experience with Mageia is just barely at the point where I am comfortable reviewing it, so I cannot really add much beyond this about it. I have noticed, however, that Mageia is one Linux distribution wherein I have had great difficulty installing the Atom text editor (which is the text editor I am using to write this post). I have managed to by using the official RPM binary package provided by the Atom development team, by running root #  urpmi https://atom-installer.github.com/v1.2.4/atom.x86_64.rpm?s=1448042930 , although I did have to uninstall the apmd package first due to a file conflict (as both packages provide a /usr/bin/apm file).

urpmi Scripts

# Update all installed software
function update {
	sudo urpmi.update -a && sudo urpmi --auto-select
}

# Remove program arguments provided to it
function urm {
  sudo urpme $@
}

# Install program arguments provided to it. URLs (to RPM packages) can also be given to it
function uin {
  sudo urpmi $@
}

Specifications

  • Architecture support: i586, x86_64.
  • Country of origin: France.
  • Date of establishment: 2011.
  • Default Unix shell: Bash.
  • Default user interface(s): GNOME, KDE.
  • Derived from: Mandriva Linux.
  • Installation method: Graphical, using live media.
  • OS type: Linux.
  • Package manager(s): urpmi.
  • Release model(s): Fixed.
  • Target market: Users that favour stability over having the latest software.

Minimum Requirements

  • CPU: i586.
  • HDD: 5 GB minimum, 20 GB preferred.
  • IMS: 39 MB (NET), 3.6 GB (DVD).
  • RAM: 512 MB, 2048 MB preferred.

Ratings

  • Beginner-friendliness: 8.
  • Customizability: <6.
  • Documentation: 5? Documentation seems to be in its infancy.
  • Free support: ? Never had to use their forums.
  • Out-of-the-box: 6. Not enough experience with it to know, but I suspect it lacks support for Broadcom chipsets.
  • Package management: 8.
  • Performance/SRU: 4.
  • Stability: ≥7. Never experienced any bugs myself.
  • MEWI: ≤4.
  • Overall: 7.

Manjaro Linux

Manjaro Linux Xfce edition.
Manjaro Linux Xfce edition.

Background

Manjaro Linux (DMDPDWFGRIRCMLWWP) is a European beginner-friendly Arch Linux-based Linux distribution that features an automated command-line and graphical installer (called Thus, although the platform-independent installer, Calamares, is also available), automatic hardware detection (using the Manjaro Hardware Detection tool) and several official and unofficial (or community) editions that differ only in their preinstalled desktop environment. Such official editions include KDE, NET and Xfce editions. Currently Manjaro is still in beta testing, without any official releases being made yet. I have noticed more bugs in Manjaro than there are in Arch Linux, for example, I once found it impossible to run the Deepin Desktop Environment on Manjaro, although running it on Arch Linux goes without a hitch.

Manjaro is currently the 7th most popular operating system ranked, according to DistroWatch.

Installer

Manjaro's Thus installer
Manjaro's Thus installer
The Calamares installer on Manjaro 15.09
The Calamares installer on Manjaro 15.09

One of the major features that distinguishes Manjaro from Arch is an automated installation process that can be performed graphically or textually. Graphically this installation can be done using the distribution-independent Calamares installer or Manjaro’s own Thus installer. Textually this must be done using Manjaro’s Thus installer. I have not had enough experience with Manjaro installation to really offer any real comparison between the two installers, but I have found this blog post from another author that seems like a decent comparison between the two. I found them both buggy when I tried to install Manjaro Linux on my removable drive.

Package Management

Pamac 2.4.3 running on Manjaro Linux
Pamac 2.4.3 running on Manjaro Linux

Like its parent it uses pacman and Yaourt for command-line package management, although the graphical front-end, Pamac (written predominantly in Vala), which is developed by the Manjaro development team, also comes preinstalled on Manjaro. Manjaro also has the Manjaro Hardware Detection (mhwd) tool (which is written predominantly in C++, Bash script and C) which is developed by the Manjaro development team.

Manjaro Hardware Detection Scripts

Here are some example Bash scripts for simplifying the use of mhwd:

# Install new kernel. Example use: `kernel 43` should install the 4.3 series kernel
function kernel {
  sudo mhwd-kernel -i linux$@
}

Manjaro Linux has the following pacman repositories enabled by default (note that while their names are the same as their Arch Linux counterparts these repositories are all distinct from their Arch counterparts):

core
extra
community
multilib

Specifications

  • Architecture support: i686, x86_64.
  • Country of origin: Austria, France, Germany.
  • Date of establishment: 2013.
  • Default Unix shell: Bash.
  • Default user interface(s): KDE, Xfce.
  • Derived from: Arch Linux.
  • Installation method: Graphical (Calamares or Thus installer), using live media.
  • OS type: Linux.
  • Package manager(s): pacman, Yaourt.
  • Release model(s): Rolling.
  • Target market: Users that prefer to have the latest software but also prefer a graphical installation process.

Minimum Requirements

  • CPU: i686 @ 1 GHz.
  • HDD: 30 GB.
  • IMS: 529.5 MB (i686, NET edition).
  • RAM: 1024 MB.

Ratings

  • Beginner-friendliness: ≥8.
  • Customizability: 7. Not as customizable as its parent, but still some customizability exists.
  • Documentation: 5-7. Its Wiki is still in its infancy, although most information at the ArchWiki should also be applicable to Manjaro.
  • Free support: 5. I have used their forums a few times and I must say it is not definitely not the best. For one, if you include a hyperlink in your new thread you will have to a wait a few days, at least, before it receives moderator approval and hence becomes viewable to potential answerers to your question(s).
  • Out-of-the-box: 9.
  • Package management: >8.
  • Performance/SRU: 7. I find it fairly fast and lightweight, considering the fact it uses a graphical user interface, by default.
  • Stability: 7-8.
  • MEWI: 8. I have installed it on a removable hard drive before and used it for a while, so I have a reasonable level of experience with it. I presently have it installed on my removable drive.
  • Overall: 9. Manjaro is one of my favourite OSs, but it is still in beta testing, so bugs are frequent.

openSUSE

Screenshot of openSUSE 42.1 with its default wallpaper.
Screenshot of openSUSE 42.1 with its default wallpaper.

Background

openSUSE (DMDPDWFGRIRCMLWWP) is a German Linux distribution that is the free continuation of S.u.S.E., a Linux distribution first founded in the early 1990s by a group of German mathematics university students. openSUSE is a community project sponsored by Novell, Inc. an American multinational company. openSUSE is used as the open-source basis of the commercial SUSE Linux Enterprise (SLE) product sold by Novell. openSUSE is unique amongst Linux distributions in that both fixed release model versions (e.g., 13.1, 13.2 and 42.1) and a rolling release model version (called Tumbleweed) is available of the OS. Of these the fixed release model versions are usually more popular amongst users, but the Tumbleweed version is not too unpopular either.

YaST2 running on openSUSE 42.1
YaST2 running on openSUSE 42.1

Internationally openSUSE is one of the most popular Linux distributions, with it currently being ranked 4th by the DistroWatch website for popularity. openSUSE’s good points include the fact it is fairly user-friendly, with one of the most powerful graphical PMS front-ends, YaST2, plus openSUSE has the openSUSE Build Service (OBS), which is essentially the openSUSE equivalent to Arch’s PKGBUILDs and the AUR, providing thousands of unofficial binary packages for users to install. OBS has an advantage over the AUR too because it contains binary packages which are simpler and faster to install than PKGBUILDs.

Novell signed a deal with Microsoft in 2006, which was meant to improve on compatibility between free and open-source programs and Microsoft’s proprietary programs, that has lead to significant contention in the FOSS community. This is because, in general, the FOSS community has a great deal of disdain for big software companies like Microsoft and this agreement seemed more like Novell selling out to Microsoft, than anything else. Further criticism of openSUSE has been focused on the belief that the system is a little “bloated”. What I interpret this to mean is that the live DVD ISO file used to install openSUSE without relying on one’s network too much is larger (namely 4.7 GB for 42.1) than what one would expect based on the size of similar Linux distribution’s live media. That and the fact that the system contains several unnecessary packages that while intended to make the system more “out-of-the-box” add unnecessary size to the system.

Installer

openSUSE uses YaST2 for system installation as well as package management post-installation. I have attempted to install openSUSE Tumbleweed on my removable drive. Due to package integrity issues, however, the YaST2 installer failed to install the system properly (only one package was affected an xorg font package, I have forgotten its exact name, so I got it to ignore this error and continue on with the installation). Then when I booted this installation of openSUSE it failed to launch the graphical user interface (KDE Plasma 5, I later reattempted the installation and got the GNOME desktop, neither managed to launch). I checked the checksum of the live DVD ISO that I used to install openSUSE and it matched what it should have, so I personally have not the foggiest why this failure occurred. I also noticed that my Broadcom chipset was not properly supported by this openSUSE installation.

Package Management

openSUSE uses ZYpp (zypper from the command-line) for package management which installs software from RPM binary packages. ZYpp (not including any of its libraries, just zypper) is written in C++ (96.1%), Perl (1.3%), Bash script (1.1%), C (0.9%), etc.5 Over 14,000 binary packages are in the software repositories of openSUSE 42.1. Here is an example Bash script for automating some common actions with ZYpp.

ZYpp Scripts

# Install software from binary packages in available repos
# Alternatively a URL to the RPM binary can be used as an input
function zypin {
  sudo zypper in $@
}
alias szpi=zypin

# Remove software
function zyprm {
  sudo zypper rm $@
}
alias szpr=zyprm

# Add zypper repo.
# First input is the URL to the repo, e.g.,
# http://download.opensuse.org/repositories/home:/Bumblebee-Project:/nVidia:/310.40/openSUSE_Tumbleweed/
# second input is a name for the repo, e.g., I used home:Bumblebee-Project:nVidia:310.40 for the
# aforementioned example.
function zyprp {
  sudo zypper ar -f $1 $2
}

# Install software from src.rpm packages in available repos
function zypsi {
  sudo zypper si $@
}
alias szps=zypsi

# Update all software on one's system
function update {
        sudo zypper up
}

alias zypup=update
alias szpu=update

Specifications

  • Architecture support: x86_64 (standard). armhf, i586, x86_64 (Tumbleweed).
  • Country of origin: Germany.
  • Date of establishment: <1996. Depends on the point at which one considers openSUSE to have been born.
  • Default Unix shell: Bash.
  • Default user interface(s): GNOME, KDE, IceWM, LXDE, Xfce, etc.
  • Installation method: Graphical, using live media.
  • OS type: Linux.
  • Package manager(s): ZYpp.
  • Release model(s): Fixed (standard releases), Rolling (Tumbleweed).
  • Target market: Users that prefer to an OS that works “out-of-the-box”.

Minimum Requirements

  • CPU: Pentium 4 @ 1.6 GHz.
  • HDD: 3 GB, 5 GB for a graphical desktop.
  • IMS: 85 MB (x86_64, NET edition).
  • RAM: 1024 MB, 2048 MB recommended.

Ratings

  • Beginner-friendliness: 8-9.
  • Customizability: 7.
  • Documentation: >8. Pretty extensive documentation.
  • Free support: ? Only used their forums once and the support I got fixed the problem.
  • Out-of-the-box: 7. Out-of-the-box support exists, but proprietary firmware for Broadcom chipset does not come-preinstalled and this can really muck up installation attempts.
  • Package management: >8. I actually rather like ZYpp and YaST2.
  • Performance/SRU: 5. Fairly bloated, especially when using the usual desktops, GNOME/KDE.
  • Stability: 8. I have found it fairly stable since the release of 42.1.
  • MEWI: 7. I have a fair degree of experience with it on VirtualBox VMs.
  • Overall: 9. I love Tumbleweed.

PC-BSD

The default KDE Plasma 4 desktop of PC-BSD 10.2
The default KDE Plasma 4 desktop of PC-BSD 10.2

Background

PC-BSD (DMDPDWFIRCMLWWP) is a free and open-source desktop-oriented FreeBSD derivative. It is built on the latest release of FreeBSD and has some graphical tools to aid in the installation and usage of the system. The default desktop environment of PC-BSD is KDE Plasma 4 (KDE Plasma 5 is still not available on it, as of 07 January 2016, see this forum post for details), although other desktops are available for installation via its default package management system (PMS) as mentioned in the Package Management section.

You may have noticed this is the only BSD derivative compared in this post, this is because while I have tried FreeBSD and GhostBSD only PC-BSD I have used enough to be able to review. FreeBSD itself is, by default, a command-line operating system with no graphical installers or GUIs. GUIs can be installed by those with the know-how and inclination to, but they are not included by default. I have tried to install GUIs on FreeBSD 10.2, including KDE Plasma 4, but it failed to load. GhostBSD, on the other hand, has the problem of being based on the second-latest release of FreeBSD (e.g., as of 07 January 2016, the latest release of GhostBSD is based on FreeBSD 10.1 and FreeBSD 10.2 is presently available). FreeBSD is currently ranked at 27th on the DistroWatch website for popularity amongst the *nix operating systems it ranks, while PC-BSD is ranked 43rd and GhostBSD is ranked 68th.

Package Management

AppCafe, the graphical user interface for the pkg package management system
AppCafe, the graphical user interface for the pkg package management system

PC-BSD, like its parent FreeBSD, uses pkg (pkg from the command-line) and the ports system (here is its manpage) for command-line package management, although unlike FreeBSD a graphical front-end for pkg called AppCafe is also included in a default installation of PC-BSD. pkg is FreeBSD’s binary package manager, while the ports system is an installation method that involves installing software from source code contained in subdirectories of /usr/ports. One does this by changing into the subdirectory of the package you want and running <div class = "console">root #  make install</div> Just like with Gentoo’s Portage package manager (which is inspired by FreeBSD’s ports) one will need to occasionally update the contents of the ports system, to ensure that the software is up-to-date. One does this by running: <div class = "console">root #  portsnap fetch && portsnap extract</div> Unlike Portage, however, the ports system does not perform dependency resolution for you, rather you have to manually install all the dependencies for the package you want using either ports or pkg.

I have personally found pkg and its graphical front-end very prone to unresolvable errors, for example, at the time of writing this post I have booted my PC-BSD VM and used AppCafe to upgrade my VM’s packages and it gave out the fatal error:

Likewise using pkg for upgrades gives the error documented in this forum post I started.

Specifications

  • Architecture support: x86_64.
  • Country of origin: U.S.A.
  • Date of establishment: 2006.
  • Default Unix shell: sh (user), tcsh (root).
  • Default user interface(s): KDE Plasma 4.
  • Derived from: FreeBSD.
  • Installation method: Graphical using a live medium.
  • OS type: BSD.
  • Package manager(s): pkg and ports system.
  • Release model(s): Fixed.
  • Target market: People interested in using FreeBSD that may not be too comfortable with the FreeBSD command-line.

Minimum Requirements

  • CPU: x86_64.
  • HDD: 10 GB (server), 20 GB (desktop).
  • IMS: 4.4 GB
  • RAM: 2048 MB.

Ratings

  • Beginner-friendliness: 7.
  • Customizability: <6.
  • Documentation: 5. Most of their documentation seems to be for previous releases of PC-BSD, making their applicability to more recent releases unclear to those us not well-versed in the subject of PC-BSD or FreeBSD, in general.
  • Free support: ? Have not used their IRC channel, mailing lists or forum enough to be able to confidently assess this. But based on the one query I made at their IRC channel and forum and the lack of any response to it I would hazard a guess of <4.
  • Out-of-the-box: >7. Never installed it on my removable or internal hard drive — so I do not know whether it supports Broadcom chipsets.
  • Package management: 4. The issues I have had thus far have really turned me off pkg, as for the ports system well manually having to do dependency-handling would be a deal-breaker for me.
  • Performance/SRU: 4. Due to its default desktop it is fairly heavy on system resource requirements and usage.
  • Stability: ~8. Never had any stability issues with it myself.
  • MEWI: ≤4. Due to the difficulties I have had with its package management I have limited my experience with it, mostly out of frustration.
  • Overall: 6.

PCLinuxOS

PCLinuxOS using the KDE Plasma 4 desktop.
PCLinuxOS using the KDE Plasma 4 desktop.

Background

PCLinuxOS (DMDPDWFIRCWP) is a Linux distribution that follows a rolling-release model and uses the APT-RPM package manager. What is unique about PCLinuxOS is that while it follows a RRM it is not bleeding-edge in its system software, in fact its desktop and system software is usually no more (if not less) up-to-date than fixed releases of openSUSE. Currently it is using the 4.1.13 kernel (which is the latest LTS) and KDE Plasma 4.14 desktop (which is from over a year ago). PCLinuxOS is designed to be beginner-friendly, with out-of-the-box support for many popular graphics cards and sound cards and the Synaptic graphical front-end for APT-RPM preinstalled.

It was originally forked from Mandriva Linux, but it has since become an independent Linux distribution, with little resemblance to Mandriva. Currently it ranks 14th, in terms of popularity, according to the DistroWatch website.

Installer

PCLinuxOS uses the Draklive-Install installer, which is a remnant of its Mandriva roots.

Package Management

Synaptic 0.57.2 running on PCLinuxOS under the KDE Plasma 4 desktop
Synaptic 0.57.2 running on PCLinuxOS under the KDE Plasma 4 desktop

As previously mentioned PCLinuxOS uses APT-RPM for package management, with Synaptic as a preinstalled graphical front-end. APT-RPM has virtually identical syntax to APT, so for example Bash scripts refer to the Debian section of this post.

Specifications

  • Architecture support: i586, x86_64.
  • Country of origin: U.S.A.
  • Date of establishment: 2005.
  • Default Unix shell: Bash.
  • Default user interface(s): KDE, LXDE.
  • Derived from: Independent, originally forked from Mandriva Linux.
  • Installation method: Graphical using Draklive-Install.
  • OS type: Linux.
  • Package manager(s): APT-RPM.
  • Release model(s): Rolling.
  • Target market: Linux beginners.

Minimum Requirements

  • CPU: i586.
  • HDD: 3 GB. 10 GB recommended.
  • IMS: 656 MB.
  • RAM: 384 MB. 1024 MB recommended.

Ratings

  • Beginner-friendliness: ~8. Not enough experience with it to be confident as to this rating, but from what I can tell it is fairly user-friendly.
  • Customizability: <7.
  • Documentation: 5. From what I can tell its documentation is not tip-top by any means.
  • Free support: ? Never had to use their forum.
  • Out-of-the-box: ≥7. Never attempted to install it on a removable drive, so I do not know the quality of its out-of-the-box support.
  • Package management: 7.
  • Performance/SRU: 8. LXDE is available as a default desktop and is fairly lightweight.
  • Stability: ≥8. Never had any stability issues with it myself.
  • MEWI: 5.
  • Overall: 8.

Sabayon Linux

Sabayon Linux with the GNOME 3 desktop.
Sabayon Linux with the GNOME 3 desktop.

Background

Sabayon Linux (BTDMDWFGRIRCMLW) is an Italian Linux distribution that is based on Gentoo and is designed to be more beginner-friendly and out-of-the-box than its parent distribution. It features its own binary package manager called Entropy (equo from the command-line and its Rigo graphical front-end), although it also has the Portage package manager of Gentoo available for use by more advanced users. Additionally it uses Calamares as its graphical installer (although up until September 2015 it used the Anaconda installer of Fedora instead), as opposed to Gentoo which must be manually installed by the user, following steps outlined at the Gentoo Wiki.

It was first founded in 2005 by Fabio Erculiani, an Italian software engineer and it is now maintained by a team of less than 20 developers (this number is based on the number of people in the #sabayon-dev IRC channel, if anyone is wanting to know my sources) whom mostly (if not all of them) reside in continental Europe, including Erculiani. Despite this fact the official language for the main forums (although localized versions exist for a variety of different languages), along with its IRC channels, bugzilla and press releases is English. Nowadays what Erculiani predominantly does for Sabayon, from what I can tell (as after all I am not a Sabayon developer so I do not know what happens behind the scenes), is he develops official kernel images for Sabayon and he works on the Entropy package manager which both have ebuilds in the sabayon-distro Portage overlay. Two additional people work on maintaining the Entropy repositories, although until recently a bot was being used to do much of this maintenance and a total of eight people have write access to Sabayon’s GitHub repositories (which includes Erculiani and one of the two Entropy repository maintainers, Joost Ruis).

Currently it is ranked 32nd for popularity according to the DistroWatch website, although it is worthwhile noting that between 2007 and 2010 it managed to appear in the top 10 list of DistroWatch in terms of its popularity. I personally think it deserves much more popularity than it presently has, because it is like the lovechild of Ubuntu and Gentoo Linux, with Ubuntu’s beginner-friendliness and Gentoo Linux’s customizability, rolling release model and power. I suspect the reason why its popularity on the DistroWatch website dropped is because its popularity was highest during the early days of its binary package manager, Entropy (which had its first stable release in 20126 and first unstable release in 20077), when most users would have to rely significantly on Portage for package management, hence deterring users from using Sabayon in a similar manner to how Portage turned users off Gentoo a few years previously.

It currently only supports 64-bit processors, although ARM support (for Raspberry Pi computers) is planned to become available in the near future and 32-bit (x86) processors were supported until 2014.8

Sabayon Linux is named after Zabaione, an egg-based Italian dessert that is also spelt as Sabayon.

Package Management

As previously mentioned Sabayon uses both Entropy and Portage package managers, with Entropy being the only one that is officially supported by the Sabayon community. In other words, from what I can tell, if you use Portage you are on your own as far as the Sabayon community is concerned. There are over 13,100 distinct (not including different package versions) binary packages in the Entropy repositories, although as previously mentioned the Portage Tree and GPOs contain far more distinct ebuilds than this.

Entropy uses .tbz2 binary packages compiled using Portage (and converted from Portage to Entropy packages using the command root #  equo pkg inflate <PACKAGE> ) and like Portage it is written in Python and Bash script. The ebuilds used to generate these binary packages are found in the Portage Tree as well as the sabayon and sabayon-distro overlays maintained by the Sabayon development team. The sabayon overlay contains miscellaneous ebuilds that are potentially as useful to Gentoo users as they are for Sabayon users (in other words they are not specific to Sabayon), while sabayon-distro contains ebuilds for system software components (e.g., the kernel and the Entropy package manager) that are specific to Sabayon.

equo Scripts

# Test for missing dependencies and then install them
function seqd {
	sudo equo deptest
}

alias deptest=seqd

# Test for missing dependencies, quiet the output
function seqdq {
	sudo equo deptest -q
}

alias deptestq=seqdq

# Install a package with Entropy, ask first.
function seqi {
	sudo equo i -av $@
}

alias install=seqi
alias ins=seqi

# Reinstall dependencies of package along with the package itself and all deep
# dependencies
function seqid {
	sudo equo i -av --deep --empty $@
}

alias ined=seqid

# Perform a libtest (looking for missing libraries) with Entropy.
function seql {
	sudo equo libtest -q
}

alias libtest=seql
alias lt=seql

# Quiet libtest
function seqlq {
	sudo equo libtest -q
}

alias libtestq=seqlq
alias ltq=seqlq

# Mask a package
function seqm {
	sudo equo mask $@
}

alias mask=seqm

# Install package dependencies (and only the dependencies) with Entropy
function seqo {
	sudo equo i -aov $@
}

alias build-dep=seqo
alias builddep=seqo
alias bdep=seqo

# Inflate Portage binary into SPM binary.
function seqpi {
	pushd /usr/portage/packages/$1
	sudo equo pkg inflate $2
	popd
}

alias smart=seqpi
alias seqp=seqpi

# Remove a package with Entropy and all packages that depend on said package
# Ask first. It is advisable to ask first, because sometimes this can remove
# packages you want.
function seqr {
	sudo equo rm -av $@
}

alias remove=seqr
alias rem=seqr

# Perform standard bug fixes with Entropy, checking for missing libraries and dependencies.
function seqt {
	spm && sudo equo libtest && sudo equo deptest
}

# Update all packages installed with Entropy and make Entropy acknowledge emerged packages
function sequ {
	spm && sudo equo update && sudo equo upgrade --purge && sudo equo cleanup
}

alias update=sequ
alias upgrade=sequ

# Make Entropy acknowledge the existance of emerged (installed with Portage) packages
function spm {
	sudo equo rescue spmsync
}

alias spmsync=spm
alias seqrs=spm
alias seqs=spm

# List packages available in the three main Entropy Repositories
# Note this requires these repos to be enabled on your system

# sabayonlinux.org repo
function sabo {
	sudo equo query list available --quiet sabayonlinux.org | sort | uniq | wc -l
}

# sabayon-limbo repo
function sabl {
	sudo equo query list available --quiet sabayon-limbo | sort | uniq | wc -l
}

# sabayon-weekly repo
function sabw {
	sudo equo query list available --quiet sabayon-weekly | sort | uniq | wc -l
}

Specifications

  • Architecture support: x86_64.
  • Country of origin: Italy.
  • Date of establishment: 2005.
  • Default Unix shell: Bash.
  • Default user interface(s): None (SpinBase/Server edition), Fluxbox (Minimal edition), GNOME, KDE, MATE and Xfce.
  • Derived from: Gentoo Linux.
  • Installation method: Graphical from live media. A tarball for chroots is also available.
  • OS type: Linux.
  • Package manager(s): Entropy and Portage.
  • Release model(s): Rolling.
  • Target market: Linux newcomers, experienced users that are too lazy to compile all their software using Gentoo, etc.

Minimum Requirements

  • CPU: x86_64.
  • HDD: 20 GB minimum, 30 GB preferable.
  • IMS: 569 MB (SpinBase edition), 588 MB (tarball), 934 MB (Server edition).
  • RAM: 512 MB. 1024 MB preferable.

Ratings

  • Beginner-friendliness: 8-9. Incredible out-of-the-box support, including for several Wi-Fi chipsets, including Broadcom chipsets.
  • Customizability: 8.
  • Documentation: 5. Some original documentation exists, but it is not top-notch at the moment.
  • Free support: 6. I have used their forums several times and I must say it is not top-notch, in terms of response times and response quality. Plus the mere fact there is no official support for Portage means for Portage-related queries you must resort to asking on the Gentoo forums or Gentoo IRC channel. Both of which are geared at more experienced users than that required to use Sabayon Linux.
  • Out-of-the-box: 9. Excellent out-of-the-box support for Broadcom chipsets.
  • Package management: ≥8. The combination of Entropy and Portage package managers makes it one of my favourite distros for package management.
  • Performance/SRU: 8. Fairly fast and lower on requirements, except for its processor and HDD requirements.
  • Stability: 8. Fairly stable, I have noticed some bugs but only after I installed it on my hard drive.
  • MEWI: 9. I have installed it on my hard drive and have used it as my main OS for the past four months.
  • Overall: 9. I love it, it is my favourite distribution at the moment.

Trisquel

Trisquel 7 running its modified version of the GNOME 3.8.4
Trisquel 7 running its modified version of the GNOME 3.8.4

Background

Trisquel (DPDWFMLW) is a Spanish Ubuntu (LTS) derivative that is composed entirely of free and open-source software (FOSS), this includes the Linux-libre kernel (presently Trisquel 7 — the latest edition as of 07 January 2016 — is using the 3.13 libre version of the kernel) derivatives such as all of its official derivatives and Linux Mint it uses its own repositories, separate from Ubuntu’s repositories, which contain entirely free and open-source software, as opposed to Ubuntu’s repositories which are a little more liberal in their licensing requirements. It has three official editions: one based on a modified version of the GNOME desktop (presently it is using GNOME 3.8.4 — from August 2013), another based on the LXDE desktop (which is called Trisquel Mini) and another based on the Sugar desktop (which is called Trisquel Sugar TOAST). It is the Linux distribution used by Richard Stallman on all of his personal computers. It is the latest addition to this post because of the fact I have just barely had enough experience with it to write a review.

I find it aesthetically unique (afterall it does not use Ubuntu’s Unity shell) from Ubuntu, although personally I do not find it anymore appealing than Ubuntu, but from the point of view of the user with regard to everything else it is pretty much identical to the Ubuntu LTS releases it is built on, except it does not have the Ubuntu Software Center, rather it has the Synaptic package manager for graphical package management. Its installer is Ubiquity — the same as Ubuntu and its command-line package management system is APT/dpkg same as Ubuntu. It also has Synaptic pre-installed for graphical package management.

It is presently ranked 95th for popularity according to the DistroWatch website.

Specifications

  • Architecture support: i686, x86_64.
  • Country of origin: Spain.
  • Date of establishment: 2007.
  • Default Unix shell: Bash.
  • Default user interface(s): GNOME (modified), LXDE.
  • Derived from: Ubuntu (LTS).
  • Installation method: Graphical, live medium.
  • OS type: Linux.
  • Package manager(s): APT, dpkg.
  • Release model(s): Standard, once every one to two years.
  • Target market: Varied, including home and office users.

Minimum Requirements

  • CPU: i686.
  • HDD: 3 GB.
  • IMS: 500 MB.
  • RAM: 128 MB.

Ratings

  • Beginner-friendliness: 8.
  • Customizability: <5.
  • Documentation: <4.
  • Free support: ? Never used them.
  • Out-of-the-box: 6. Less out-of-the-box due to licensing restrictions on firmware.
  • Package management: 7. APT is alright enough.
  • Performance/SRU: 8. Fairly lightweight when one uses the LXDE edition.
  • Stability: >7. Never had stability issues with it myself.
  • MEWI: <3.
  • Overall: 7-8. Sometimes a lack of proprietary firmware can be nuisance, but otherwise it is a fairly user-friendly distro.

Ubuntu

Ubuntu 15.10, the latest release of Ubuntu at the time of this post, showing the Unity user interface.
Ubuntu 15.10, the latest release of Ubuntu at the time of this post, showing the Unity user interface.

Background

Ubuntu (ABTDMDPDWFGRIRCMLWWP) is a Debian-based Linux distribution developed by both Canonical Ltd. (a UK-based company owned by South African entrepreneur, Mark Shuttleworth) and its own FOSS community. Most of its development occurs at launchpad.net, a website owned and founded by Canonical. The word “Ubuntu” is Zulu for “humanity to others”.

It shares many features in common with its parent distribution, including its focus on stability over bleeding-edge software, its fixed release model, its package management systems and the fact it is free for end-users. What distinguishes it from Debian are the odd program designed specifically for Ubuntu (e.g., the Ubuntu Software Center and the Unity user interface) and its greater focus on beginner-friendliness than on customizability. It is also unique in the Linux community in that it has both Long-Term Support (LTS) releases (which are officially supported for 5 years after they are initially released) and non-LTS releases (supported only for nine months). It was also the first Linux distribution, that I am aware of, to use dated release versions. See the release version numbers used are in the format YY.MM, where YY is the last two digits of the year (e.g., 15 for 2015) and MM are the two digits of the month (e.g., 04 for April), the release was made. For example, in October 2015 the 15.10 release of Ubuntu was made (which is codenamed Wily Werewolf).

The Unity desktop was originally developed for Ubuntu in mid 2010 as a graphical shell for GNOME and the first Ubuntu release in which it was officially included was 10.10. Unity has received a mixed reception in the FOSS community and personally I dislike it. Aesthetically it is nice enough, but it is far less customizable than the default GNOME shell and uses more system resources than GNOME. See, for example, this ps_mem table I generated on a Ubuntu 15.10 VM running the Unity shell, it recorded that Unity was using a grand total of 588.3 MB of RAM. For the purposes of a comparison (granted due to different the operating systems that were used this test is not really fair), previous ps_mem tests on my Sabayon machine found that GNOME and KDE Plasma 5 used 292.8 MB and 300.9 MB of RAM, respectively.

I used Ubuntu for three years on my Dell Laptop (which has 4 GB RAM, ~250 GB HDD space, etc.) and I owe it my love of my Linux and most of the experience with Linux I have gained in this time. Although I must say whenever I use it, I feel like I am in preschool again with an awful lot of hand-holding and little freedom. Despite this, it is a nice fall-back distribution for those that do not wish to do anything fancy (like extensively customize the system) but still want to use a stable easy-to-use Linux system, with as little time-wasters as possible (like bugs).

There are several different official flavours of Ubuntu, each featuring their own desktop and/or their own set of preinstalled packages. The default flavour (which is often just called Ubuntu) features the Unity desktop, while Kubuntu, Lubuntu, Ubuntu GNOME, Ubuntu MATE and Xubuntu are the only official flavours that feature different desktops and are built on all releases of Ubuntu (both LTS and non-LTS releases). New releases are made every six months in April and October of each year, with LTS releases made in April of even-numbered years.

Ubuntu 15.10 has a grand total of 58,345 binary packages available in its official repositories.9

Installer

Ubiquity is Ubuntu’s official installer, that has been borrowed by many of its derivatives both official and unofficial.

Package management

The Ubuntu Software Center running on Ubuntu 15.10
The Ubuntu Software Center running on Ubuntu 15.10

As previously mentioned Ubuntu uses the same basic command-line utilities for package management as its parent, Debian, namely APT and dpkg. Although it also features its own official graphical front-end for APT, the Ubuntu Software Center.

Derivatives

Ubuntu derivatives are numerous in number. I have tried quite a few of them, of them only Linux Mint is covered in this post. Others I have experience with, include:

  • Bodhi Linux — an American distribution based on LTS releases of Ubuntu and that features its own customized version of the Enlightenment 17 desktop. It supports both i386 and x86_64 processors and is ranked 21nd for popularity according to the DistroWatch website.
  • Chromixium OS — a British distribution based on LTS releases of Ubuntu and that features its own customized version of the Openbox window manager that is designed to look like Chrome OS’s default user interface. It is available for machines with i386 processors only and is currently ranked 51st according to the DistroWatch website.
  • Deepin — a Chinese distribution based on LTS releases of Ubuntu and that features its own desktop environment (that is called the Deepin Desktop Environment (DDE). This desktop is written in WebKit, HTML5 and its extensions are written in JavaScript. I like its aesthetics but it is quite heavy on system resources) and several homegrown applications (such as Deepin Music, Deepin Software Center, etc.). It is available for machines running both i386 and x86_64 processors. DDE has been successfully ported to Arch Linux and while ebuilds for DDE’s components exist in the gentoo-zh GPO they are outdated and expected to be removed soon unless a new maintainer is found for them. Deepin originally was based on Debian, until in 2010 when its base was switched to Ubuntu (LTS), then in December 2015 its basis was switched back to Debian (sid).
  • elementary OS — an American distribution based on LTS releases of Ubuntu and that features its own Aqua (OS X’s desktop)-like desktop environment called Pantheon and several custom applications. It has been ported to several other operating systems including Gentoo Linux (although whenever I install it on my Sabayon machine it is so buggy that it is essentially unusable). It is available for computers with both i386 and x86_64 processor types and is currently ranked 11th according to DistroWatch for popularity.
  • LXLE — an American distribution based on LTS releases of Ubuntu and features the LXDE desktop with special tweaks designed to minimize its system resource usage. It is compatible with both i386 and x86_64 processors and is presently ranked 12th on the DistroWatch website for popularity, making it more popular than the official Ubuntu derivative that features the LXDE desktop, Lubuntu.
  • Zorin OS — an Irish distribution that is based on LTS releases of Ubuntu and includes both a free and paid version. It features customized versions of the GNOME and LXDE desktops that have a Windows-like appearance. It supports both i386 and x86_64 processors and is presently ranked 16th for popularity according to the DistroWatch website.

Specifications

  • Architecture support: armhf, i686, powerpc, ppc64el, x86_64.
  • Country of origin: U.K.
  • Date of establishment: 2004.
  • Default Unix shell: Bash.
  • Default user interface(s): GNOME, KDE, LXDE, MATE, Unity and Xfce.
  • Derived from: Debian.
  • Installation method: Graphical using live media.
  • OS type: Linux.
  • Package manager(s): APT and dpkg.
  • Release model(s): Fixed.
  • Target market: Linux newcomers.

Minimum Requirements

  • CPU: i686 @ 266 MHz.
  • HDD: 3 GB.
  • IMS: 654 MB (Lubuntu).
  • RAM: 128 MB (Lubuntu). 512 MB preferable (for Lubuntu).

Ratings

  • Beginner-friendliness: 9.
  • Customizability: <5.
  • Documentation: 8. Pretty good documentation at their Wiki, although I seldom ever used it when I was using Ubuntu.
  • Free support: 9. Ask Ubuntu is the support medium I have the most experience with and it is pretty useful.
  • Out-of-the-box: 8. Based on my limited experience it has fairly poor support for Broadcom chipsets.
  • Package management: 7. APT is alright enough.
  • Performance/SRU: 8. Lubuntu is fairly lightweight, the default flavour of Ubuntu is fairly heavy.
  • Stability: 7-8. Fairly stable, although bugs are not unheard of.
  • MEWI: 10.
  • Overall: 8. It is a pretty good start for those interested in Linux, but after you become comfortable with it and Linux in general, you will likely want to use a different, more challenging and customizable distribution.

Appendix I: Tables and Graphs

Table 1: A Comparison of Free Operating Systems

Operating System RM/LV BF CB DM DW EI MEWI OB PMS SB SC SP OA

antiX

Standard /
15 MX — 24-12-2015

8

8

2

23

9

2

<6

APT / dpkg (7)

7-8

8

?

8

Arch Linux

Rolling

4

>8

8

8

2

7

1

pacman / Yaourt (>8)

7

9

?

8

CentOS

Standard /
7-1511 — 14-12-2015

8

5

>6

8

8

3-4

7

yum / RPM (5)

>9

4

?

7

Debian

Standard /
8.2 — 06-09-2015

7-8

7

>7

2

7-8

4

6

APT / dpkg (7)

>9S
<7U

<5S
>8U

?

7

Fedora

Standard /
23 — 03-11-2015

7-8

5

6-7

5

8

6

7-8

DNF / RPM (6)

7-8

8-9

7

8

Gentoo Linux

Rolling

<3

≥9

≥8

45

>2

≤4

1

Portage (<8)

~7-10

~7-10

?

≥6

Linux Mint

Standard /
29-11-2015

9

<6

4

1

9

≤4

9

APT / dpkg (7)

≥7

6

?

7-8

Mageia

Standard /
5 — 20-06-2015

8

<6

5

6

8

≤4

6

urpmi / RPM (8)

≥7

6-7

?

7

Manjaro Linux

Rolling /
15.12 — 23-12-2015

≥8

7

5-7

7

8

8

9

pacman / Yaourt (>8)

7-8

8-9

5

9

openSUSE

Standard /
42.1 — 04-11-2015
Rolling (Tumbleweed)

8-9

7

>8

4

8

7

7

ZYpp / RPM (≥8)

8

7 (F)
9 (T)

?

9

PC-BSD

Standard /
10.2 — 21-08-2015

7

<6

5

44

8

≤4

>7

pkg / ports (4)

~8

7

?

6

PCLinuxOS

Rolling /
2014.12 — 24-12-2014

~8

<7

5

14

8

5

≥7

APT-RPM / RPM (7)

≥8

8

?

8

Sabayon Linux

Rolling

8-9

8

5

34

8-9

9

9

Entropy / Portage (≥8)

8

8-9

6

9

Ubuntu

Standard /
15.10 — 22-10-2015

9

<5

8

3

8-9

10

8

APT / dpkg (7)

7-8

8

9

8

S: Stable release.
U: Unstable branch (sid).
F: Fixed releases.
T: Tumbleweed.


Footnotes