Linux Distribution Recommendations
For Beginners
Selection
Functionality
One size does not fil all. Some key differentiators to evaluate include:
- the functionality/style of "Control Panel" and that is best asssesed by trying various live CD from the suggestions below
- look-and-feel of the various Desktop enviroments
- Unity
- KDE
- Gnome
- LXQT/LXDE
- MATE
- XFCE
- Enlightenment
- Applications
- this should not be a "show-stopper"
- whilst > 700 MB won't fit on a CD, most Distributions have large, on-line repositories from which many applications can be installed quite simply
Suggestions from PCUG's Linux SIG depend on perspective:
for best support from the SIG
- Linux Mint
- openSUSE
- the derivative GeckoLinux is focused more on desktop/laptop use than servers and might better suit many users
- Ubuntu
for Windows/MacOS like experience
- KDE variants of the above
uncomplicated/mobile computing
- Peppermint
for netbooks and low spec hardware
- Peppermint
- PC Linux OS LXQT
- Leeenux (minor cost for this distribution)
- Puppy
- limited network security
Support
Support tends to follow one of three differing models:
- periodic release - major upgrades are typically annual or biannual
- routine updates provided for about 2 years
- LTS (long term support)
- similar to periodic, but with updates for about 5 years
- the least "bleeding edge" model
- tends to be used for distributions oriented to commercial use
- "rolling release"
- updates provided continually and indefinitely
- no requirement to ever do a major upgrade
Beginners could consider a LTS distribution, because it requires least intervention
- many periodic releases have no process to implement an upgrade
- necessitating complete re-installation at about 2 year intervals
Bandwidth
Installing and maintaining Linux requires a moderate amount of download bandwidth & quota. The following ISP provide unmetered download from their "mirror"
- iinet & subsidiaries (via the Internode mirror)
- Optus
- Telstra
Both installation CD/DVD and routine updates are available from the mirrors. It is essential to use the exact URL for the ISP's mirror
- in your browser for downloading ISO images of Installation media and
- in your Update configurations. See the Control Panel in your distribution
The above mirrors have most commonly used distributions available
Distribution Specific Notes
All distributions have some "quirks" which might not be covered in installation & usage guides
Antergos
Antergos is a rolling release, while based on Arch, is well suited to beginners
Mirrors
installer will select mirror.anu.edu.au
- if not your un-metered mirror then about 1 GB of quota will be used
- changing mirror after installation requires manual edit of file:
/etc/pacman.d/mirrorlist
- bring required mirror to top of list
- minor, metered download still for the Angergos specific packages
openSUSE
Locale
- essential that this be set correctly at installation stage
- correct settings for Australia are UK language plus US keyboard
- first select via F2 on the opening installation screen
- verify & correct if necessary on final pre-installation summary screen
- following installation go to Start->System Settings->locale
- set to Australia and language EN-GB
Repositoiries
openSUSE handles differently from many other Linuxes
- has hundreds of online repositiories
- only "installation media", update, oss and non-oss are set by default
- change last three to local mirrors (preferably unmetered), to generally get faster download
- additional repositories should not be required by beginners
- any that are set require a higher priority (lower number) than the defaults
Printer Setup
- several of the printer setup routines are broken
- http://localhost:631 in a browser gives the most reliable for initialy setting up each printer
- printers must be powered up and connected to the local PC or network
- root password is required
- Start->System->Configuration->Print Settings provides good control of parameters after initial setup
ROSA
Key feature in this distribution is the tablet/Windows 8 style interface of the ROSA FRESH KDE R7 variant
- has no local mirrors and will incur significant download quota
For Intermediate Users
for continual upgrade to latest software releases
- openSUSE with Tumbleweed repository enabled
- also feasible to convert an up-to-date, periodic release of 13.2 or Leap to Tumbleweed
- first read guidelines at en.opensuse.org/Portal:Tumbleweed
- update installed product
- (optionally) download latest Tumbleweed DVD ISO
- advisable for laptop/netbook because online conversion would take several hours
- (optionally) make bootable ISO on CD/DVD/SD
- from the running, updated, already installed, periodic release:
- use Yast to change repositories to Tumbleweed equivalent (including DVD, if converting via that medium)
- from a console (eg CTL-ALT-F2)
- sudo zypper ref (might take several minutes to complete)
- sudo zypper dup (might take half-hour to several hours)
- repeat this command if the upgrade is interrupted, for any reason
- Ubuntu with Universe repository enabled
- Antergos (an Arch derivative, having GUI)
- initial install involves up to 1 GB of metered download
- mirror can be configured after installation and used for all subsequent updates
for fewest upgrades
- Ubuntu (& derivatives) based on Long Term Support (LTS) core
for users having a dearth of download quota, the following mirrors might be unmetered. Check your ISP's terms:
- mirror.internode.on.net/pub
- mirror.aarnet.edu.au
for netbooks and low spec hardware
- 4MLinux
- Peppermint
- PC Linux OS LXDE
- the new razorqt desktop
- www.qtdesktop.org
- available for most major distributions
Specialised Distributions
backup/migration
- Clonezilla
utility/recovery CD
- PartedMagic
- small fee payable online
- SystemRescueCD
- 4MLinux
firewall/gateway/router
- IPFire
- only one supporting ARM-based hardware
- IPCop no longer recommended
- release 1.4.x is stable, but no longer maintained
- release 2.x less reliable
- Smoothwall Express
Home Server
- 4MLinux
- IPFire (with addons)
- openSUSE (minimal text mode installation)
- Arkos (runs ownCloud on some ARM devices)
Home Entertainment
- openELEC
- 4MLinux (for old hardware)
For Geeks
the following are generally regarded as not suited to beginners.
- Arch
- Gentoo
- Slackware
Arch Linux
Advantages
- continuously updated
- robust
- tailerable to compact installations
- usable on low-end hardware
- supports many ARM based devices
Disadvantages
- requires much additional, manual setup
- many emerging derivative distributions having graphical installation plus user interface
- Manjaro appears to be the most robust
- Angergos & Bridge also available
- Arkos (in beta) is promising home server
- many emerging derivative distributions having graphical installation plus user interface
--Rod 13:59, 19 August 2012 (EST)
Basic Installation
First select the swap partition, sda5 (say). If you are using an SSD and have sufficient RAM, consider doing without a swap partition:
# mkswap /dev/sda5
# swapon /dev/sda5
Then you will need to format the root partition, which (say) is sda7, using (say) the ext4 filesystem:
# mkfs -t ext4 /dev/sda7
If you are uncomfortable with using command-line disk partitioning and formatting tools, it's best if you prepare your disk using external tools like gparted. But once you have prepared a root partition for Arch Linux, mount it on /mnt:
# mount /dev/sda7 /mnt
If you want to have separate partitions for /home and /boot, mount them as well in appropriate directories such as to /mnt/home, and /mnt/boot. (Use mkdir /mnt/home, mkdir /mnt/boot first)
Configuring the network shouldn't be an issue if your network has a router that hands out IP address via DHCP, as the Arch install CD has a DHCP service already enabled. If you don't use DHCP, you'll have to manually setup an IP address. Arch can assist you with various tools, such as netctl and wifi-menu to setup the Wi-Fi network. (Again start with https://wiki.archlinux.org/index.php/Beginners_Guide).
Now edit the file that lists Arch mirrors to select a preferred mirror for downloading packages:
# nano /etc/pacman.d/mirrorlist
Copy your preferred mirrors (eg iinet or internode) to the top of this file to ensure they are searched first (they have "free" arch mirrors for their customers).
The main packages can be viewed in /etc/pacman.conf, which is where you can add special ones if required. For example, add the following lines to this file if you want to use a zfs file system:
# zfs
[demz-repo-core] SigLevel = Optional TrustAll #Required Server = http://demizerone.com/$repo/$arch
When you're done, use Arch's pacstrap script to download and install the
core packages:
# pacstrap /mnt base base-devel
Once the core packages have been downloaded generate an fstab file to define how the storage devices will be mounted:
# genfstab -U -p /mnt >> /mnt/etc/fstab
You'll now have to chroot into the installed base to configure the other components of the Arch installation. Arch Linux wraps the standard chroot command inside a custom script called arch-chroot.
# arch-chroot /mnt
Congratulations, you're now inside your new Arch installation. You'll now set your hostname by placing it in the /etc/hostname file.
# echo yourchoice > /etc/hostname
Also symlink /etc/localtime to your timezone listed under /usr/share/zoneinfo, such as:
# ln -s /usr/share/zoneinfo/Australia/Canberra /etc/localtime
Then open the /etc/locale.gen file and uncomment the locale you wish to use, such as en_AU.UTF8 UTF8. A locale defines a user's language, country and other related parameters. Then run locale-gen to set it up.
# echo LANG=en_AU.UTF-8 > /etc/locale.conf # locale-gen
Now you'll need to set the keyboard mapping with:
# localectl set-keymap us
The default is "us" anyway so this can be skipped in Australia.
You'll now have to create an initial ramdisk environment, which will load kernel modules and set up the environment before handing over the control of the initiation process. Arch uses the mkinitcpio script for this purpose. Experienced users would want to edit the /etc/mkinitcpio.conf file before creating the ram disk with:
# mkinitcpio -p linux
But you can skip this step if you accept the default.
The last step in setting up our basic Arch system is installing and
configuring a bootloader. Arch supports the
grub and syslinux bootloaders. In this example, we'll set up the
lightweight syslinux bootloader, but you can setup grub by
following instructions that can be found on the Arch wiki
https://wiki.archlinux.org/index.php/Beginners_Guide.
First, grab the syslinux bootloader as well as the gptfdisk package to modify our GUID Partiton Table with:
# pacman -S syslinux gptfdisk
Then install the bootloader and mark the Arch partition as bootable with:
# syslinux-install_update -i -a -m
Finally, edit the /boot/syslinux/syslinux.cfg file to point to the Arch Linux partition (Here /dev/sda5. The cfg file sets it typically to /dev/sda3 so it is important to check this.
Before you log out of the chroot environment don't forget to set a password for the root user with passwd.
# passwd
<enter passwd (twice)>
Press Ctrl+D (or enter exit) to exit the chroot environment and unmount the Arch partition with umount -R /mnt. That's the end of the install process. You can now restart your computer and boot into your shiny new Arch installation.
If you have a wired ethernet connection (see the wiki for wireless) it may be necessary to set it up again using the following:
# ip link
Shows the ethernet link name. SystemD shows this as "enp3s0" on my system rather than "eth0".
# ip addr
Shows ip address assigned (in case you are interested).
Enable this:
# systemctl enable dhcpcd@enp3s0.service
This only has to be done the first time you start up the new system. Start it up.
# dhcpcd
See the wiki for a more detailed description of this process. To test that you are talking to the outside world, try:
# ping 8.8.8.8 (a Google DNS)
You should get a response if all goes well.
Post install customisations
Arch uses the systemd system and service manager. So it's a good idea to spend some time learning the basics of the systemctl command, which interacts with systemd. (It is not all that complicated. You do not need many of its options at this stage).
The installed base system only has a CLI. For graphics, install the base Xorg packages:
# pacman -S xorg-server xorg-server-utils xorg-xinit
(optionally) Install mesa for 3D support:
# pacman -S mesa
Before you can install a desktop environment you will need to install drivers for your video hardware. If you do not know which video chipset is available on your machine, run:
# lspci | grep VGA
Use pacman to search for a list of open source video drivers in Arch's repos with:
# pacman -Ss xf86-video | less
And install the one that matches your hardware. If appropriate, you can download and install a proprietary Nvidia driver with:
# pacman -S nvidia
You can then use pacman and begin to install components such as your preferred desktop environment, an office suite and a web browser etc. Do a google search starting with "arch" for availability/instructions
You can also set up a user with the useradd command:
# useradd -m -g users -G wheel -s /bin/bash myusername
(the wheel group membership facilitates using sudo).
Installing a fully featured desktop environment like kde will then provide most of what you need immediately to start up your desktop (kde-workspace installs its preferred login/display manager: kdm):
# pacman -S kde-base kde-workspace
(More recently the kde references have been replaced by the group name kde).
Restart the system. You should now be able to boot into your new system.
To boot into your desktop environment automatically see https://wiki.archlinux.org/index.php/Display_Manager#Loading_the_display_manager.
If you've chosen a display manager, say gdm then the following will set it
up:
# sudo systemctl enable gdm
Otherwise reboot, login to the CLI and look for commands beginning with start....
Note on systemctl The manual is probably the best place to start, but another few useful associated uses are:
# sudo systemctl disable gdm (if you want to subsequently enable say kdm)
# sudo systemctl restart sshd (to restart ssh after configuration change)
# journalctl (to access runtime journal)
Getting a Working Desktop
Key functions not installed in the base installation include:
- password manager (almost essential for KDE)
- printing