Tagged: ubuntu

Lightweight Desktop Linux

Full featured Linux distros like Linux Mint, Ubuntu, or Fedora are an ideal alternative to Windows or Mac OS X on a modern laptop or desktop computer but not everyone is fortunate enough to have the latest hardware so sometimes a lighter alternative might be more suitable. There are loads of Linux distros out there and a lot of them can be run on extremely old hardware, often with surprising success. This is a summary of some of the lightweight Linux distros and desktop environments that I’ve tried.

 

Desktop Environments

The main full featured (or big and bloated) desktop environments are Cinnamon (first developed for use in Linux Mint), Mate (a fork of Gnome 2), Gnome 3 (default in Fedora), Unity (first developed and used in Ubuntu) and KDE. I might go into why I don’t use any of those at some point in the future but for now I will be ignoring them.

 

Xfce

One step down in weight is Xfce. This is what I use on even modern machines that are well capable of running heavier environments. Although it started as a lighter alternative to Gnome, it has steadily increased its footprint and feature set to the point where it is entirely usable as part of an everyday operating system. It’s extremely customisable and can be made to look enough like good old Windows XP to keep me happy. It’s also possible to make it look completely different with docks or by positioning the panel(s) where ever you want them.

Default Xfce (Ubuntu 13.04)

Default Xfce (Ubuntu 13.04)

To install it on Ubuntu you have two options. Pure Xfce or Xfce with a few tweaks in the form of Xubuntu. Personally I prefer Xubuntu.

For pure Xfce open a terminal and type

sudo apt-get install xfce4

For Xubuntu type

sudo apt-get install xubuntu-desktop

Once it’s installed just log out and then choose Xfce from the session menu.

session-chooser

The same goes for other desktops.

 

LXDE

LXDE (Lightweight X11 Desktop Environment) is another step down in weight. In my opinion it is just as usable as Xfce but runs that little bit faster using fewer resources. The only reason that I don’t use it is that I settled on Xfce before I had heard of LXDE and I fear change. I am the type of person who finds something they like and sticks with it. Again it is very customisable and by default looks somewhat like Windows XP in terms of layout. Admittedly it does look a bit old school in its default state but you can change the look and feel very easily to suit your taste.

LXDE was chosen as the default desktop for Rasbian which is the main officially supported distro for the Raspberry Pi.

Default LXDE (Ubuntu 13.04)

Default LXDE (Ubuntu 13.04)

Again to install LXDE on Ubuntu you have two options, pure LXDE and Lubuntu.

sudo apt-get install lxde

or

sudo apt-get install lubuntu-desktop

 

Fluxbox

Fluxbox is a window manager that is very minimal and very lightweight. It does have a taskbar by default but the only way to access programs is to right click on the desktop which brings up a menu. Although it is possible to customise it quite a lot, doing so involves editing configuration text files rather than using a GUI. I wouldn’t really recommend it.

Default Fluxbox (Ubuntu 13.04)

Default Fluxbox (Ubuntu 13.04)

To install it on Ubuntu:

sudo apt-get install fluxbox

 

Openbox

Very similar to Fluxbox, indeed originally sharing the same roots, Openbox is even more minimal. After installing it on Ubuntu and logging into it, you are met with a plain grey screen. Again right clicking brings up the menu. It’s possible to install panels and docks but again it involves editing config files. Thankfully there are graphical configuration tools to make it easier. LXDE uses Openbox as a base and this shows that it doesn’t have to just be a blank screen. In a choice between Openbox and Fluxbox, Openbox wins hands down.

Default Opebox (Ubuntu 13.04)

Default Opebox (Ubuntu 13.04)

To install it in Ubuntu:

sudo apt-get install openbox

If you have LXDE installed, Openbox will already be installed.

 

Tiling window managers

There are lots of tiling window managers but the whole concept doesn’t appeal to me at all. Some of them are extremely lightweight so I am giving them a brief mention.

There are a myriad of other desktop environments and window managers but I don’t have time to investigate them all.

 

Lightweight distributions

There are a number of Ubuntu variants that each come with a different desktop environment that has been customised. There are also derivatives of those variants.

For Xfce there is Xubuntu.

For LXDE there is Lubuntu and Peppermint.

For Openbox there is CrunchBang which was originally based on Ubuntu but has since moved to Debian (which is what Ubuntu and all of its derivatives use as a base). Although I haven’t used it for a while, my memory is that it is a really usable distro if you want something really light that can run on old hardware.

Then there are some other lightweight distros. From here on we are entering hobbyist territory. I wouldn’t recommend any of the following for day to day use for various reasons.

 

Puppy Linux

Puppy Linux is a distro that runs from RAM. It is possible to install it to a hard disk but it is not recommended. The .iso file isn’t much more than 100MB which is pretty small compared to Ubuntu and Mint which are around 1GB. I used it quite a lot 4 or 5 years ago and used to really like it. It was really fast and allowed me to resurrect an ancient IBM Thinkpad A20m (originally running Windows 98) into a machine that was capable of browsing the web and even watching the odd video.

When I decided to write this piece I thought I would have good things to say about Puppy but alas not. It seems that since my last dealings with it, there has been major fragmentation within the project. There are now two websites (puppylinux.org and puppylinux.com), one being called the official site (.com) and the other being called the community site. Both sites have various versions that are compatible with Ubuntu packages and Slackware packages but there seem to be different version numbers of each on each site. Obviously I could investigate this properly and try the various versions but I don’t want to. The nature of free/open source software means that there will always be fragmentation but I think that they should clarify their version system.

I tried two Ubuntu compatible versions and although they had different colours and desktop backgrounds and had slightly different menus, they struck me as broadly similar. I very briefly tried to connect to my wireless network but the wizard failed. Again I could have tried harder like I did back in the day with my Thinkpad but instead I just plugged in my ethernet cable. This time the wizard worked.

One program that I always try to install when I try a new distro is VLC. I do that for two reasons. Firstly it is a great media player that will play almost any video file, regardless of codecs. The second is that it has a lot of dependencies and so it is a good test of distro’s packaging system. Debian (and thus Ubuntu/Mint etc.) uses APT which is a very clever solution to the problem of dependencies. I am used to typing in one command to refresh the list of available packages (apt-get update)  and then one command to install a program (apt-get install vlc). I sometimes use the excellent GUI Synaptic, in which case I just click a button to refresh the package list and then search for, select and install the program. APT makes this process trivial.

With Puppy it is a different story. I admit that I don’t know enough about Puppy to install programs using the command line so I had to rely on GUI tools. I managed to find the package installer from with the menu (each version had it in a different place) and after searching for VLC I clicked on it. It attempted to install it but gave me an error, suggesting that I refresh the package list. The button to do that was two screens deep but I found it. Clicking it in one version caused it to start refreshing and then just freeze. At that point I gave up and tried the other version. I went through the same process only this time the package refresh worked. Slowly. Very slowly in fact. It must have taken about 15 minutes to complete the job. This wasn’t because of slow download speeds, it was because it processed each available package individually and there were an awful lot of individual packages. When it finally finished I installed VLC and it worked very well. I was able to stream a 720p video from my desktop machine and it played perfectly on full screen.

Overall I wouldn’t recommend Puppy for use beyond a bit of tinkering. One of the main reasons for that is that it doesn’t have users and instead always runs as root. Running programs like web browsers and email clients as root is a recipe for disaster so it strikes me as odd that the developers have taken this decision and stuck with it for the ten years of the project’s history.

Puppy Precise

Puppy Precise

Puppy Lucid

Puppy Lucid

 

Damn Small Linux

Once upon a time, DSL was the daddy of lightweight desktop Linux. At 50MB, it seemed like it wasn’t possible to make a functional operating system any smaller. A lot has happened since 2008 when it last had a stable release and quite frankly it has become irrelevant. I didn’t try the latest release candidate but version 4.4 that I tried seemed pretty terrible. That might sound harsh considering it is such a small .iso and there was a time when it seemed really impressive but now that Tinycore exists I just don’t have much time for it.

I couldn’t get wifi or ethernet working (admittedly I didn’t try very hard at all) and it wouldn’t even boot properly on my old test laptop. Without a network connection there wasn’t much I could do with it. It’s worth checking out briefly, maybe the newer release candidate is much better. Maybe I will revisit it if that ever becomes a stable release. I didn’t use it long enough to work out how to take a screenshot but there are a couple on the project’s website (1 and 2)

 

Tinycore

Originally derived from Damn Small Linux, Tinycore takes it to the next level. There are 3 versions which are clearly explained on the website. As this is about desktop Linux I will ignore the smallest one which at 8MB only has a command line interface. The 12MB version (called Tinycore) contains just enough to boot to a desktop and install programs. There is also a 64MB version which comes with various programs and utilities.

I tried the 12MB version. It is remarkable that they have managed to develop a usable distro that is so small. By usable I mean I was able to install Firefox and VLC really easily and at least browse to my Desktop and stream a video. There was no sound and the screen resolution wasn’t right, despite my brief attempt to correct it. I’m really impressed with Tinycore and think that if I spent enough time with it I could customise it enough to do almost everything I can do with a fuller featured distro like Xubuntu. Unfortunately I don’t have the time so I won’t be doing that.

I highly recommend checking it out. It is after all a very small download that can be put onto a USB stick using Unetbootin. It definitely wins the prize for size vs usability.

Tinycore

Tinycore

 

In conclusion

If you have a modern machine and want it to work perfectly and absolutely fly then I recommend Xubuntu.

If you have a slightly older but still reasonable machine then I recommend Lubuntu.

If you have a machine that has seen better days then I recommend Crunchbang.

If you have an ancient machine or just like tinkering then I recommend Tinycore.

 

Obviously this is not an exhaustive list and there are hundreds of lightweight distros out there. This is just my round up of a few of them.

Also this round up is very Debian/Ubuntu centric. That’s because having tried most of the major distros, I believe Debian to be by far the best base and Ubuntu (minus Unity) to be the best overall distro.

Using Apache to share files over your local network (Xubuntu Linux)

First some disclaimers:

This is just the way I do this. It’s probably a lot easier with something like Samba.

I am assuming that you have some basic Linux knowledge and at least know how to open a terminal.

Although I use Xubuntu, this should work for Ubuntu and Kubuntu and probably for Linux Mint.

Please see the WARNINGS section at the bottom.

 

 

So what’s this about?

Apache is a web server that can do some very complicated things in conjunction with lots of other software but it can also be used on almost any computer to share files with other computers. This tutorial will show you how to set it up on your computer so that any files you want to make available can be viewed and downloaded to any computer (or tablet/smartphone) that is connected to your network (via ethernet or wifi). Those files will be read only, though. That means that other machines on the network will not be able to change anything on the computer running Apache. It’s a one-way process.

Keep in mind that Apache uses port 80. If that port is open, Apache (and therefore the files that you are sharing) will be accessible to the whole Internet. Port 80 should be blocked by default on most routers so unless you want to be able to access your files from outside your local network you should leave it that way. You can check that it’s closed using the Open Port Checker Tool.

 

 

Installing Apache

Possibly the simplest step in the process is installing Apache. Open up a terminal and type

sudo apt-get install apache2

Enter your password, say yes and wait for it to download and install.

Then we need to see if it is working. To do that, open up a web browser (Firefox, Chrome etc.) and type localhost into the address bar. You should see a message saying “It works!”

So now you have to decide which folder you will be sharing on your network. I suggest creating a folder inside your home folder called www but it is entirely up to you where you put it and what you call it. I will give instructions for /home/joe/www

Again open up a terminal and type

mkdir /home/joe/www

Obviously replace joe with your user name.

Then you need to point Apache at the folder you have just created. This will involve editing a text file. There are loads of text editors but I like gedit. To make this tutorial easier I will be using gedit so you may as well install it (it’s pretty small):

Again in the terminal type

sudo apt-get install gedit

Once that is finished, type

sudo gedit /etc/apache2/sites-available/default

This should open up a text document with several lines of text. You need to edit two of those lines. Look for the following:

DocumentRoot /var/www

and change it to

DocumentRoot /home/joe/www

Obviously change joe to your name.

Also look for

<Directory /var/www/>

and change it to

<Directory /home/joe/www/>

Again, change joe to your name.

Save the text file and close it.

Now you need to restart Apache. Go back to the terminal and type

sudo /etc/init.d/apache2 restart

That should be Apache installed and configured. To check that everything has worked, copy some files into the www folder that you created (/home/joe/www). Then go back to your web browser and type localhost and you should see a list of the files that you have just copied into www.

 

 

Connecting to Apache from other machines:

In order to view and download the files that you have copied into www from other machines, you need to find out the IP address of the machine where you have installed Apache. A simple way to do this is to click on network manager and then connection information. Network manager is the small icon in the notification area (near the clock) that will either look like wifi waves or two arrows going up and down if you are connected via ethernet.

wifi

ethernet

When you click Connection information you should see something like this:

ip

Circled in red is the IP address of my machine. Yours will probably be similar but might be something like 192.168.1.4

Make a note of it because it is how you are going to connect to Apache from another machine. Doing that is very easy and you can check that it works by typing it (or copying and pasting it) into the address bar of your web browser. If you see the list of files that you copied into www (like you did when you typed localhost) then it is working. Now try typing the IP address into the address bar of the browser on another machine or phone and you should see the same list of files. You can then download them as if you are downloading them from the Internet. It should be much faster, though.

This IP address might well change when you reboot your computer or router so you might want to look into assigning your computer a static IP address in your router settings. If you are lucky it won’t change very often.

 

 

WARNINGS

Following these instructions will make everything in your www folder accessible to any machine (and therefore person) on your network. If you are not the only person using your Internet connection (think about who connects via wifi for example) then assume that they can see and download everything in the folder that you are sharing (www). This is especially important to remember if you use public wifi or don’t have a decent WPA password on your own wifi access point.

Keep your software up to date. You should be doing this anyway but if you don’t do the security updates that are available, your system is potentially vulnerable. Having Apache running represents a large security risk if you don’t keep it up to date.

Open port 80 at your own risk. If you really want to access your files from outside your house there are far better ways to do it than running Apache. Google Drive and Dropbox are two examples.