draduxOS

Background

I actually started my *NIX adventure in 1996 on an AT&T UNIX based minicomputer. We used it in a COBOL class I was taking and honestly I had little focus on UNIX. My next step was in 1998 with a HP-UX based server where I was in charge of maintaining customer code. I found UNIX to be easier to work with and much more solid and robust than other OSes at that time. I quickly moved into RedHat 6 (when it was just RedHat - not RHEL) as a free OS to investigate for possible use cases for new customer. I then moved to running RedHat LPars on ZOS mainframes and was hooked on the power and ability.

I spent most of my time on "servers" doing my work from a "client" that was usually Windows. Each iteration of Windows seemed to be slower, have more bloat, and as if it were designed to keep me from doing things on my local machine that I actually needed (or throw road blocks in my way for doing them). I started a new job in 2003 and was on-site with clients 100% of the time and was rarely in my corporate office. This seemed like a great time to move to linux for my work laptop plus the project I was on was again mainly a UNIX (SunOS) project.

I've honestly never looked back since 2003. I have had times where I had to boot a Window VM and definitely had a fair amount of Windows Server support work but my primary work computer has been Linux since 2003. I originally started with Ubuntu as it was the only solid distro for a laptop at that time.

After 2-3 years of Ubuntu (and its growth) I decided it was getting heavier and I was constantly leaning to needing/wanting lighter so I ventured off to CrunchBang. Crunchbang was a great distro but honestly I was feeling the pull to build my own debian before Crunchbang closed shop. I started building my own custom debian around 2011 and decided to document the process in November of 2012.

draduxOS is (yet another) debian based distro and is (currently) more of a guide to building (build as in configure and setup) an OS than a traditional distro.

Core Principles

The core principles of draduxOS are:

  • secure: you know what is installed because you install it (yes you are trusting a core OS distributor but this is as close to "building it all yourself" as you can get without building it all yourself)
  • lean: your computer will be as lean as possible as you only install what you want/need
  • minimal: in terms of resource usage (CPU/memory) and wasted screen real-estate
  • keyboard driven: we strive to have everything keyboard driven as this makes for a more fluid user experience in our opinion
  • consistent: less change for the sake of change
Features

Features of draduxOS are:

  • rolling: dradusOS is a rolling distro, this means you "upgrade" as a normal part of the software upgrade process - you are always running the latest and do not need a full rebuild or monolithic upgrade release process.

Install

Installing draduxOS consists of installing the debian base and setting up the packages you want.

Prepare

draduxOS (dradux) starts with a debian net-install so grab the latest for your hardware and let's begin!

First, we need to burn the ISO to a thumb drive. You can use cat or dd for this (or unetbootin if you prefer):

  • cat is faster: cat /path/to/debian.iso > /dev/sdX && sync
  • or use dd: dd if=/path/to/debian.iso of=/dev/sdX bs=8M

NOTICE: in either of the above cases (cat or dd) you need to replace /dev/sdX with the actual device you wish to write to. Also note that YOU MUST write to the device, not a partition on the device as the ISO needs to create a MBR (and more than likely several partitions).

You can plug the USB drive in, boot your box (make sure to adjust your bios to allow for booting from USB devices) and proceed with installing debian.

Install Debian

The debian installer is easy to follow, you do have a GUI and console based installer so use what you prefer. We assume you can follow the installer yourself, the following secions specify details of sections of the installer that are key and/or items of interest:

Partition disks

I always use a manual partition scheme as this is heavily dependent on the situation (disk size/#, application, need, etc.). I generally use the following partition scheme, adjust to your needs:

Partition Format Size Type Notes
/boot ext2 120mb primary 120mb is plenty of space for me as I usually only keep 2-3 kernels around
swap swap 2gb primary minimum of 2gb, a good rough estimate is to make this the same (or larger) as the amount of RAM you have as you will need it that large to hibernate if you use that
/ xfs 6gb primary I typically go 8gb but I have a 32gb SSD drive so I went 6 and have 2.6gb leftover after everything I need is installed
/tmp xfs 1gb extended I like to separate tmp out (I've ran into issues where this actually saved me from a saturated disk)
/home xfs * extended all remaining space goes to home
Software selection

Uncheck everything from the list of software to install with the exception of "SSH server" and "standard system utilities". For laptops, you may want to select the "laptop" software. We will install the desktop environment and other software later.

Setup

Prior to Installing Packages we need to perform a few setup tasks to keep draduxOS lean and allow for easy future upgrades.

One change we make to apt to keep it lean is to disable by-default install of "suggested" and "recommended" apps when installing from apt. To do this, run the following command which creates an apt.conf.d file to disable the two groups by default:

  • echo -e "APT::Install-Suggests \"0\";\nAPT::Install-Recommends \"0\";" > /etc/apt/apt.conf.d/99dradux
Switching to Sid

dradux is a rolling distro. This is achieved by simply using Debian's Sid branch which is a rolling branch. To do so, open the /etc/apt/sources.list file in a text editor and make the following changes:

  • change all occurrences of current release (e.g. "jessie", "squeeze", "wheezy", etc.) with "sid".
    • note: disable (comment out) the "security" and "squeeze-updates" sites as they are not available/pertinent for sid
    • note: add in 'non-free' items by adding "contrib non-free" after main on the two sid lines
  • add in the multimedia repo as follows
    • note: this is not required but I use mythfrontend so I needed it, feel free to skip this step
    • note: if you add the multimedia repo, you will want to do an an apt-get install deb-multimedia-keyring after apt-get update to get the multimedia keyring (for repo authentication verification of the repo)

#multimedia repo
deb http://www.deb-multimedia.org sid main

After you make the above changes do an update (apt-get update), upgrade (apt-get upgrade), and finally a dist-upgrade (apt-get dist-upgrade) and you will be rollin on Sid!

Install Packages

Now the fun begins! Setting up your box is definitely a personal thing as you can install anything you want in any way you want. The following list is broken out by group (e.g. Tools) followed by a list of items (e.g. dmenu mrxvt mc, etc.). The list of items presents the name of items in the repo and are meant to be presented in a manner such that you can copy and past the list of items directly after apt-get install in a shell.

Group Package Stage Note
Please enable javascript to view the package listing. Our js is entirely self-hosted so please check it out and then enable!

Legend:

  • Group: the group of an item
  • Package: the package or application
  • Stage: the stage of an item (1-5); stage values are as follows: 1=required, 2=strongly suggested, 3=suggested, 4=optional, 5=other (see note field)
  • Note: notes for an item

Notes:

  • everything is truly optional in draduxOS; however, we use the term Required to indicate the package is something we strongly feel should be installed.

Configure

draduxOS should now be installed and you can configure as you like. The below list shows several common configuration items we recommend/use.

Item Configuration Information
Please enable javascript to view the configuration listing. Our js is entirely self-hosted so please check it out and then enable!

Feel free to check out Minimalist App List article for more apps you may want/need.

Maintenance / Upkeep

draduxOS is designed to stay lean and to stay up-to-date easily. Generally speaking, all you should need to do to stay current with the latest version of draduxOS is to run the following command: apt-get update && apt-get upgrade. From time to time you will see a notice during upgrade stating some packages have been kept back. This is debian telling you the items kept back are 'significant' changes, you can 'upgrade' these items with apt-get dist-upgrade.