Archive

Archive for the ‘Linux’ Category

Distro hopping: adventures in installing software from the AUR (from within Manjaro)

September 27th, 2015 No comments

Manjaro Linux allows you to take advantage of its Arch Linux background and search for software from within the Arch User Repository (AUR). This is a collection of community maintained source code packages that are built and installed on your system (instead of being downloaded as pre-built binaries). Historically this has been a good solution for getting more niche software or just the latest version of a particular piece of software. Plus it lets you feel all l337 as you watch the terminal scroll through the compilation process like you are part of The Matrix.

Using the AUR in Manjaro

If you want to make use of the AUR in Manjaro you can but you should know that doing so can also cause problems on your system. These are not officially maintained or supported installations and so any number of things can go wrong as a result. Because of that the AUR is disabled by default so in order to enable it simply open the Package Manager application and enter the preferences window.

Before enabling the AUR these are the officially supported packages available

Before enabling the AUR these are the officially supported packages available

 

Enable AUR support

Enable AUR support in this menu

Once enabled you can choose to search in the AUR and doing so often shows additional results.

More results with AUR

More results with AUR!

If you choose one of the packages from the AUR (usually ending in -svn) it will kick off an interactive terminal where you have to OK various parts of the build process. I believe there is an option under preferences to turn this off should you wish to do so.

Downloading source, compiling package, installing...

Downloading source, compiling package, installing…

Huzzah! You’ve successfully compiled a program out of the Arch User Repository! Now you can go on your merry way doing whatever it was you wanted to do!

Once finished installing you can use the software just like anything else you've installed on your system

Once finished installing you can use the software just like anything else you’ve installed on your system

Conclusion

The Arch User Repository provides a nice addition to the regular officially supported repository that makes it much easier to find, download and install extra software packages from source rather than you having to track them down yourself. While there are some risks involved, many people swear by the AUR and so in general it should be relatively safe to use.

This post is part of a series:




I am currently running a variety of distributions, primarily Linux Mint 17.
Previously I was running KDE 4.3.3 on top of Fedora 11 (for the first experiment) and KDE 4.6.5 on top of Gentoo (for the second experiment).

Distro hopping: round two with Manjaro Linux

September 23rd, 2015 No comments

While looking around for different distributions to try I stumbled across Manjaro Linux and having never used it before decided that this should be the second stop in the great distro hopping experiment of 2015! I downloaded the Xfce version, as that seems to take priority placement on their website, and got to work installing. The installer reminded me of an interesting hybrid between what I had seen in OpenSUSE way back and what you can find in something like Ubuntu or Linux Mint these days. Overall it was a nice, straight forward install and actually had some cool power user options (encryption, placing home directory on different volume, etc.) as well.

The default desktop

The default desktop

Never having used Manjaro before I have to say that, at least with the Xfce version, this is a polished and snappy distribution. It reminds me quite a bit of what you would find with Linux Mint Cinnamon only much faster. Reading the About page on their website seems to confirm this thought as it presents itself in comparison to Arch Linux as the Linux Mint of Ubuntus or perhaps the elementary OS of Linuxes:

Manjaro is a user-friendly GNU/Linux distribution based on the independently 
developed Arch Linux. Within the Linux community, Arch itself is renowned 
for being an exceptionally fast, powerful and lightweight distribution that 
provides access to the very latest cutting-edge software.

However, Arch is also traditionally aimed at more experienced or 
technically-minded users. As such, it is generally considered to be beyond 
the reach of many, especially those who lack the technical expertise (or 
persistence) required to use it.

For newcomers, a user-friendly installer is provided, and the system itself 
is designed to work fully “straight out of the box”...
Thunar the file manager

Thunar the file manager

So what comes with Manjaro you ask? Well I’m glad you asked! For Browser and E-mail it uses Mozilla’s Firefox and Thunderbird respectively. These are solid applications and my standard go-tos as well. It also includes quite a few utilities like a bulk file renamer and sensor viewer for power users.

View all the sensors!

View all the sensors!

Interestingly it also comes pre-loaded wth some Qt development tools for some reason. I’m not sure why this is included by default but… there you go. Cooler than that though is that it comes with Steam already installed so you can jump right into your games as quickly as possible.

For music it comes with the Guayadeque Music Player which is an application I’ve never even heard of before. I’ll have to dig into this one a bit more before I can give my impressions on it but for now have a screenshot!

A screenshot!

A screenshot!

VLC rounds out the rest of the multimedia applications which is a solid choice.

Unlike some other distributions, Manjaro comes packed with options and settings for configuring it however you’d like. It also ships with a graphical kernel configuration and installation screen which I believe is the first of its kind that I’ve ever seen at least.

So many kernels!

So many kernels!

I’m looking forward to playing around with Manjaro in the coming days but so far I must admit that I’m impressed, especially considering I had never even heard of this distribution until this week. Check back for my continued updates on my experiences with Manjaro.

This post is part of a series:




I am currently running a variety of distributions, primarily Linux Mint 17.
Previously I was running KDE 4.3.3 on top of Fedora 11 (for the first experiment) and KDE 4.6.5 on top of Gentoo (for the second experiment).
Categories: Manjaro Linux, Tyler B Tags:

Distro hopping: Finishing up with elementary OS

September 21st, 2015 No comments

I’ve been using elementary OS since I started this little distro hopping adventure and while I have enjoyed my time with this sleek and speedy distribution it is time to move on to the next one. Before completely jumping ship however I would like to just put together some of my brief thoughts on how elementary OS worked for me as a day-to-day operating system.

Pros:

  • Very beautiful: If you ever need to show off what Linux can look like given some spit shine and polish this is the distribution to show.
  • Very fast: Applications load quickly, and you can easily jump between them almost instantly.
  • Very easy to use: Many applications have nice default settings that should work for the majority of users.
Showing off the Applications Menu

Showing off the Applications Menu

Cons:

  • Weird defaults: Why is Midori the default browser? I understand that it might be about looks but it is not mature enough yet and can give a seriously negative impression of the distribution as a whole when it won’t stop crashing.
  • Terrible application names: Music? Videos? Photos? Really? You know how hard it was to write a post about how to import music into Music from your music folder so you can listen to music? Ugh..
  • Not enough customization or power user settings: There is certainly something to be said for streamlined applications with good defaults but once you’re familiar with your system you’ll start to want to tweak things to your liking and sadly elementary OS just doesn’t have a lot of options to do this.
It looks like there are a lot of settings... but that's a trick!

It looks like there are a lot of settings… but that’s a trick!

Other:

  • Why does almost every application try to remember where I was last?
  • Why is there no minimize button by default?
I understand that a minimize button isn't really required but it can be confusing for new users.

I understand that a minimize button isn’t really required but it can be confusing for new users.

Check back soon to see where I end up next!

This post is part of a series:




I am currently running a variety of distributions, primarily Linux Mint 17.
Previously I was running KDE 4.3.3 on top of Fedora 11 (for the first experiment) and KDE 4.6.5 on top of Gentoo (for the second experiment).
Categories: elementary OS, Tyler B Tags:

Distro hopping: Import music stored on NAS into Music

September 19th, 2015 No comments

So you’re running elementary OS and want to access the music files you have stored on a Network-attached-storage device within the Music program. Unfortunately while you can easily browse the network and find these files you can’t do so within Music. Luckily there is a solution to this problem! Borrowing heavily from a previous post this will walk you through how to set up a persistent media folder on your computer that will ‘point’ to the music directory on your NAS.

Step 1) Open up a terminal

Now wasn't that easy?

Now wasn’t that easy?

Step 2) Install the required software

For the purpose of this post I’m going to assume the NAS is presenting a Windows file share so we’ll need the software to be able to make use of it. Simply run the following command to install the needed software:

sudo apt-get install cifs-utils
Installing some software!

Installing some software!

Step 3) Create a location for where you want the media to appear

If this is just going to be used for your user account you can simply create a new folder in your home folder. For example create a new folder under the Music folder called “NAS”. However if we want multiple users to be able to access this then you’ll want to put it somewhere else (for example /media/NAS).

For my example I'm just going to put it under a new NAS folder inside of my Music folder

For my example I’m just going to put it under a new NAS folder inside of my Music folder

Step 4) Edit the fstab file and add the share(s) so that they auto connect on startup

So basically there is a file on your computer called fstab that contains information about all of the hard drives and mounts that the computer should create on boot. To make it so our new NAS folder points to the actual NAS directory we’re going to add a new line to this file telling our computer to do just that. Start by using your terminal and opening that file in an editor. You can use a terminal editor like nano or even a graphical one like Scratch.

To use the terminal editor nano run the following command:

sudo nano /etc/fstab
fstab in nano

fstab open in nano

To use the graphical editor Scratch run the following command:

sudo scratch-text-editor /etc/fstab
fstab open in Scratch

fstab open in Scratch

On a new line add the following (modifying it according to your system). Note that this should be a single line even though it may appear broken up over multiple lines here:

//<path to server>/<share name>  <path to local directory>  cifs  
guest,uid=<user id to mount files as>,iocharset=utf8  0  0

Breaking it down a little bit:

  • <path to server>: This is the network name or IP address of the computer hosting the share (in my case the NAS). For example it could be something like “192.168.1.123” or something like “MyNas”
  • <share name>: This is the name of the share on that computer. For example I set up my NAS to share different directories one of which was called “Files”
  • <path to local directory>: This is where you want the remote files to appear locally. For example if you want them to appear in a folder under your Music directory you could do something like “/home/tyler/Music/NAS”. Just make sure that the directory exists (that’s why we created it above :)).
  • <user id to mount files as>: This defines the permissions to give the files. On elementary OS (as well as other Ubuntu distributions) the first user you create is usually given uid 1000 so you could put “1000” here. To find out the uid of any random user use the command “id <user>” in the terminal without quotes.

As an example the line I added for my example configuration here was:

//192.168.3.25/Files  /home/tyler/Music/NAS  cifs  
guest,uid=1000,iocharset=utf8  0  0

Now save the file.

Step 5) Test that it worked

Finally in the terminal we’re going to run command to actually test it:

sudo mount -a

This will do essentially the same thing that happens when your computer first boots so if this works it should work the next time you restart as well. If you don’t get any errors then congratulations it should have all worked! You can verify by now opening up your NAS folder and confirming that it shows the contents of your actual NAS directory.

We have music!

We have music!

Step 6) Import the music into Music

Now that we have the NAS music showing up in a local folder the Music application will be able to add it no problem. Simply open up Music and use the import option to import the music from your folder (in my case ~/Music/NAS).

Ta-da!

Ta-da!

This post is part of a series:




I am currently running a variety of distributions, primarily Linux Mint 17.
Previously I was running KDE 4.3.3 on top of Fedora 11 (for the first experiment) and KDE 4.6.5 on top of Gentoo (for the second experiment).

KWLUG: Swapping Laptop Drives, Helping New Users (2015-09)

September 19th, 2015 No comments

This is a podcast presentation from the Kitchener Waterloo Linux Users Group on the topic of Swapping Laptop Drives, Helping New Users published on September 14th 2015. You can find the original Kitchener Waterloo Linux Users Group post here.

Read more…




I am currently running a variety of distributions, primarily Linux Mint 17.
Previously I was running KDE 4.3.3 on top of Fedora 11 (for the first experiment) and KDE 4.6.5 on top of Gentoo (for the second experiment).
Categories: Linux, Podcast, Tyler B Tags: , ,

KWLUG: git (2015-08)

September 18th, 2015 No comments

This is a podcast and video presentation from the Kitchener Waterloo Linux Users Group on the topic of git published on August 10th 2015. You can find the original Kitchener Waterloo Linux Users Group post here.

Read more…




I am currently running a variety of distributions, primarily Linux Mint 17.
Previously I was running KDE 4.3.3 on top of Fedora 11 (for the first experiment) and KDE 4.6.5 on top of Gentoo (for the second experiment).
Categories: Linux, Podcast, Tyler B Tags: , ,

KWLUG: Docker (2015-02)

September 18th, 2015 No comments

This is a podcast and video presentation from the Kitchener Waterloo Linux Users Group on the topic of Docker published on February 2nd 2015. You can find the original Kitchener Waterloo Linux Users Group post here.

Read more…




I am currently running a variety of distributions, primarily Linux Mint 17.
Previously I was running KDE 4.3.3 on top of Fedora 11 (for the first experiment) and KDE 4.6.5 on top of Gentoo (for the second experiment).
Categories: Linux, Podcast, Tyler B Tags: , ,

Distro hopping: how to install Plex Home Theater on elementary OS

September 15th, 2015 No comments

Plex is great. It is a very easy to use cross-platform program that lets you view and watch your own personal media almost anywhere. The main component is the Plex Media Server which actually hosts and provides the media but they have another program that offers a very nice interface to browse and view these files called the Plex Home Theater. Unfortunately while they have builds for Windows and OS X there are currently no such officially supported versions for linux. Thankfully the community has stepped in and provided the means to get this running on your distribution of choice. This post will show how to install it on elementary OS (or any other Ubuntu based distributions).

Visiting this page you can see that there are instructions for different distributions. As elementary OS is derivative of Ubuntu we’ll use that provided repository to install the program. The first step is to open a terminal and run the following command:

 sudo apt-add-repository ppa:plexapp/plexht

This will add the community repository to your system so that you can find and install the program normally. Next you just need to run the update command to re-sync with the repositories and then the install command to actually install the program:

sudo apt-get update
sudo apt-get install plexhometheater

Once the command finishes Plex Home Theater should be successfully installed.

Plex!

Plex!

Have fun watching your movies!

This post is part of a series:




I am currently running a variety of distributions, primarily Linux Mint 17.
Previously I was running KDE 4.3.3 on top of Fedora 11 (for the first experiment) and KDE 4.6.5 on top of Gentoo (for the second experiment).

Distro hopping: tweaking elementary OS

September 13th, 2015 No comments

So from my last post you’ll know that I ran into a couple of issues that I’ve since been able to address.

Default browser Midori crashes

I don’t know what it is but Midori is very crash happy on my installation. It would even crash on google.com so you know something is wrong. So even though my goal was to use the distribution defaults I simply couldn’t continue that way. Instead I installed Chromium from the software centre and that seems to have worked out well.

Turning remember last place on and off

One thing that wasn’t really an issue but more of something I had to get used to was that most applications in elementary OS seem to be configured to remember where they left off. This includes things like the file manager application which I found a bit weird. Thankfully there is a way, albeit not overly straight forward, to change this behaviour.

  1. Open a terminal window
  2. Install dconf-editor by typing (without quotes) “sudo apt-get install dconf-editor”
  3. Run dconf-editor from the terminal or open it via the Applications menu
  4. Expand the tree and uncheck restore tabs: org -> pantheon -> files -> preferences -> restore tabs
    • Alternatively you can run the following command in the terminal: gsettings set org.pantheon.files.preferences restore-tabs false
Changing settings with dconf editor

Changing settings with dconf editor

Add minimize button

Similarly by default the only way to minimize a window in elementary OS is to click the icon in the dock. You can change this behaviour if you’d like by modifying a different setting in dconf editor.

  1. Expand the tree and modify button-layout: org -> pantheon -> desktop -> gala -> appearance -> button-layout
  2. Add “minimize” to where you want the button to appear. For example changing it to “close:minimize,maximize” will add a minimize button to the left of the maximize button on the right hand side of the window.
Now with a minimize button!

Now with a minimize button!

 

That’s all I’ve got for now. Hopefully someone else finds these useful for their own elementary OS installations.

This post is part of a series:




I am currently running a variety of distributions, primarily Linux Mint 17.
Previously I was running KDE 4.3.3 on top of Fedora 11 (for the first experiment) and KDE 4.6.5 on top of Gentoo (for the second experiment).

Distro hopping: first stop elementary OS

September 12th, 2015 No comments

Ah elementary OS, the distribution that looks so clean, so polished and well… so Apple-esque. I’ve never really played around too much with eOS, other than a brief time way back in 2013, but I have been consistently impressed reading about their latest updates so I figured this would be a natural starting point for my distro hopping adventure.

The install was very painless and if you’ve ever installed Ubuntu before you know the drill as not too much differs here. When all is said and done you are treated to your brand new desktop!

A very professional looking desktop

A very professional looking desktop

As you can see it has a nice little dock at the bottom which contains shortcuts to your applications as well as showing all running applications. This is very similar to what you would see on OS X for example.

elementary OS dock

elementary OS dock

OS X dock

OS X dock

The default browser that ships with eOS, and the one I am using to write this post, is Midori. I’ve never really used Midori before but it is a very streamlined, clean cut application with minimal settings. This fits nicely with the design of the rest of the distribution. However I have run into a few instances where the browser just up and quits due to a crash with no explanation of why it is happening which is a little bit frustrating. If I were to stay on eOS long term I think I would instead opt for a more mature browser such as Firefox or Chrome. Update: I had to install a different browser as Midori was crashing non-stop on me. Not sure if it is just my computer or what but I don’t have these problems with any other browser.

Showing the elementary OS website

Showing the elementary OS website

Next up is the e-mail application Geary. I’ve written about Geary before and have found it to be a very pretty and functional e-mail client, although lacking in expandability. However this again fits with what eOS seems to be trying to do by presenting a overall package that simply works out of the box for the majority of users.

Sorry for all of the censoring...

Sorry for all of the censoring…

There is also a simple calendar application which is very similar to the one you would find on OS X – not to keep bringing up the comparison but it does seem the fine people behind eOS set their targets on a certain popular OS. Oddly I couldn’t figure out a way to synchronize this an existing web calendar from Google. It seems to only support local calendars which is kind of a bummer.

Sure is a calendar

Sure is a calendar

Music is the… you guessed it… music management application. I quickly downloaded some tracks from Jamendo so that I could mess around with it. It seems like a pretty basic media player with no real bells or whistles but it gets the job done.

Music... no not the Madonna song

Music… no not the Madonna song

Videos… notice a trend here?… is the video application for eOS. Really not to much to say about it.

Photos similarly provides the photo management functions for eOS.

It shows your photos but doesn't do much else

It shows your photos but doesn’t do much else

Two things that I’m still struggling to get used to with eOS is that most applications seem to save where they were when you close them and that there is no minimize option for the applications. Saving state can be very handy in some scenarios but I’m not sure why the file manager has to remember which folder I was in last for example… however that is a very small complaint.

The lack of minimize is weirder. You can maximize (really a stretch button like, you guessed it, OS X has) and unmaximize but the only way to actually minimize the window to the dock seems to be to click on the application icon in the dock itself. Not a big deal but hardly intuitive (I’m sure there is a keyboard shortcut or something as well).

Overall I’m pretty happy with elementary OS as a distribution in my short time with it so far.

This post is part of a series:




I am currently running a variety of distributions, primarily Linux Mint 17.
Previously I was running KDE 4.3.3 on top of Fedora 11 (for the first experiment) and KDE 4.6.5 on top of Gentoo (for the second experiment).
Categories: elementary OS, Tyler B Tags:

A distro hopping experiment

September 12th, 2015 No comments

Over the last little while I’ve become quite comfortable using a single distribution, Linux Mint, for my day-to-day needs. While this has obviously allowed the operating system to, in a sense, disappear into the background and let me do “real” work it has had the side effect that I haven’t been as exposed to the interesting changes happening elsewhere on the Linux landscape.

That’s why I’ve decided to run my own mini experiment of sorts where I leave the comfort of Linux Mint and start off on a journey of hopping between different distributions again. I don’t exactly know how long I’ll be staying on each distribution but the goal is to stay for around two weeks or so in order to get a good feel for that distribution. Heck I may even throw in the occasional BSD or other alternative operating system here and there as well just to mix things up. I also plan on trying to stick with the majority of the defaults (settings, programs, etc.) that ship with the distribution so that I get the intended experience.

So join me as I jump around and if you have any suggestions for distributions to try let me know!




I am currently running a variety of distributions, primarily Linux Mint 17.
Previously I was running KDE 4.3.3 on top of Fedora 11 (for the first experiment) and KDE 4.6.5 on top of Gentoo (for the second experiment).

CoreGTK 3.10.1 Released!

September 8th, 2015 No comments

The next version of CoreGTK, version 3.10.1, has been tagged for release today.

Highlights for this release:

  • Added some missing (varargs) GTK+ functions. This makes it easier to create widgets like the FileChooserDialog.

CoreGTK is an Objective-C language binding for the GTK+ widget toolkit. Like other “core” Objective-C libraries, CoreGTK is designed to be a thin wrapper. CoreGTK is free software, licensed under the GNU LGPL.

You can find more information about the project here and the release itself here.

This post originally appeared on my personal website here.




I am currently running a variety of distributions, primarily Linux Mint 17.
Previously I was running KDE 4.3.3 on top of Fedora 11 (for the first experiment) and KDE 4.6.5 on top of Gentoo (for the second experiment).

CoreGTK 3.10.0 Released!

August 20th, 2015 No comments

The next version of CoreGTK, version 3.10.0, has been tagged for release today.

Highlights for this release:

  • Move from GTK+ 2 to GTK+ 3
  • Prefer the use of glib data types over boxed OpenStep/Cocoa objects (i.e. gint vs NSNumber)
  • Base code generation on GObject Introspection instead of a mix of automated source parsing and manual correction
  • Support for GTK+ 3.10

CoreGTK is an Objective-C language binding for the GTK+ widget toolkit. Like other “core” Objective-C libraries, CoreGTK is designed to be a thin wrapper. CoreGTK is free software, licensed under the GNU LGPL.

You can find more information about the project here and the release itself here.

This post originally appeared on my personal website here.




I am currently running a variety of distributions, primarily Linux Mint 17.
Previously I was running KDE 4.3.3 on top of Fedora 11 (for the first experiment) and KDE 4.6.5 on top of Gentoo (for the second experiment).

Taking a look at some Linux e-mail clients

July 12th, 2015 No comments

Many people now use a browser based solution, like Gmail, for all of their e-mail needs however there are still plenty of reasons why someone might want to use a local e-mail client as well. In this post I’m going to take a look at some of the graphical e-mail client options available on Linux.

Balsa

I have to admin that I hadn’t even heard of Balsa before looking up e-mail clients to include in this list. In my limited time using it Balsa seems to be a relatively simple e-mail client that still offers quite a few options (supports POP3 and IMAP as well as PGP/GPG and even includes a spell checker) while still maintaining a very low memory footprint (less than 7MiB of RAM for an empty inbox). However one thing I couldn’t seem to get working was actually sending e-mail – it’s not that it was difficult to setup, I just simply couldn’t get it to connect to my SMTP server to send the mail. It kept timing out without giving me a cause which was annoying.

Balsa

Balsa

Balsa Project Website

Claws Mail

Similar to Balsa, Claws is also a very lightweight e-mail client that offers quite a few standard features but can also be expanded upon via plugins. Interestingly I couldn’t figure out a way to compose a non-plaintext (i.e. HTML) e-mail so perhaps the developers are of the opinion that e-mail should only be sent as text?

Claws Mail

Claws Mail

Claws Mail Project Website

Evolution

Evolution is/was (depends on who you ask) the golden standard for what an e-mail client on Linux should be. You can think of it as a complete Outlook replacement as it does so much more than just e-mail (contacts, calendar, memos, etc.) all without the need for additional plugins. This does come at a bit of a price as Evolution certainly feels heavier and uses more memory than some other e-mail only clients.

Evolution

Evolution

Evolution Project Website

Geary

Geary is a relative newcomer and has been getting quite a bit of attention as it is included as the default e-mail client in elementaryOS. This application is beautiful however very, very streamlined. You won’t find things like plugins, PGP/GPG, or loads of configuration options here, instead Geary focuses on being the best user experience it can be out of the box.

Geary

Geary

Geary Project Website

GNUMail.app

GNUMail.app is quite a bit different from the other e-mail clients on this list. It is associated with the GNUstep project and runs on both Linux and Mac OS X. Unfortunately while trying to use it on Linux I found myself at a loss… I simply couldn’t figure out how to use the thing! I managed to configure my account settings but could never get it to actually download any e-mail. So without actually being able to use the application I don’t have much else to say about it.

GNUMail.app

GNUMail.app

GNUMail.app Wikipedia Page

KMail

KMail provides the e-mail duties for the Kontact Personal Information Manager collection of software. It is a fully featured e-mail client and, because of the other Kontact applications, offers a compelling pseudo-integrated alternative to something heavy like Evolution. This is especially true if you are using the KDE desktop environment where things feel even more integrated.

KMail

KMail

KMail Project Website

Slypheed

Slypheed and Claws Mail are very similar, which makes sense because they used to be the same project (one was simply a place to try new features before putting it into the “real” project). Even though they share a linage Slypheed and Claws Mail now have different code bases and development teams. That said there aren’t very many obvious differences between the two at this point.

Slypheed

Slypheed

Slypheed Project Website

Thunderbird

Thunderbird is one of the most popular free/open source e-mail clients around and for good reason. It offers a good amount of features and can make use of plugins to add even more functionality. While it may not quite match up to Evolution in terms of advanced functionality for most people, myself included, it works very well.

Thunderbird

Thunderbird

Thunderbird Project Website




I am currently running a variety of distributions, primarily Linux Mint 17.
Previously I was running KDE 4.3.3 on top of Fedora 11 (for the first experiment) and KDE 4.6.5 on top of Gentoo (for the second experiment).

Big distributions, little RAM 8

July 11th, 2015 2 comments

It’s been a while but once again here is the latest instalment of the series of posts where I install the major, full desktop, distributions into a limited hardware machine and report on how they perform. Once again, and like before, I’ve decided to re-run my previous tests this time using the following distributions:

  • Debian 8 (Cinnamon)
  • Debian 8 (GNOME)
  • Debian 8 (KDE)
  • Debian 8 (MATE)
  • Debian 8 (Xfce)
  • Elementary OS 0.3 (Freya)
  • Kubuntu 15.04 (KDE)
  • Linux Mint 17.1 (Cinnamon)
  • Linux Mint 17.1 (KDE)
  • Linux Mint 17.1 (MATE)
  • Linux Mint 17.1 (Xfce)
  • Mageia 4.1 (GNOME)
  • Mageia 4.1 (KDE)
  • OpenSUSE 13.2 (GNOME)
  • OpenSUSE 13.2 (KDE)
  • Ubuntu 15.04 (Unity)
  • Ubuntu Mate (MATE)
  • Xubuntu 15.04 (Xfce)

I also attempted to try and install Fedora 21 and Linux Mint 17.2 (KDE) but it just wouldn’t go.

All of the tests were done within VirtualBox on ‘machines’ with the following specifications:

  • Total RAM: 512MB
  • Hard drive: 8GB
  • CPU type: x86 with PAE/NX
  • Graphics: 3D Acceleration enabled

The tests were all done using VirtualBox 4.3.30, and I did not install VirtualBox tools (although some distributions may have shipped with them). I also left the screen resolution at the default (whatever the distribution chose) and accepted the installation defaults. All tests were run prior to June 2015 so your results may not be identical.

Results

Just as before I have compiled a series of bar graphs to show you how each installation stacks up against one another. Measurements were taken using the free -m command for memory and the df -h command for disk usage.

Like before I have provided the results file as a download so you can see exactly what the numbers were or create your own custom comparisons (see below for link).

Things to know before looking at the graphs

First off if your distribution of choice didn’t appear in the list above its probably not reasonably possible to be installed (i.e. I don’t have hours to compile Gentoo) or I didn’t feel it was mainstream enough (pretty much anything with LXDE). As always feel free to run your own tests and link them in the comments for everyone to see.

First boot memory (RAM) usage

This test was measured on the first startup after finishing a fresh install.

First_Boot_AllMemory (RAM) usage after updates

This test was performed after all updates were installed and a reboot was performed.

After_Updates_AllMemory (RAM) usage change after updates

The net growth or decline in RAM usage after applying all of the updates.

Usage_Changes_AllInstall size after updates

The hard drive space used by the distribution after applying all of the updates.

Install_SizeConclusion

Once again I will leave the conclusions to you. Source data provided below.

Source Data




I am currently running a variety of distributions, primarily Linux Mint 17.
Previously I was running KDE 4.3.3 on top of Fedora 11 (for the first experiment) and KDE 4.6.5 on top of Gentoo (for the second experiment).

How to easily forward Firefox (PC & Android) traffic through an SSH tunnel

March 29th, 2015 No comments

Say you are travelling, or are at a neighbourhood coffee shop, using whatever unsecured WiFi network they make available. You could either:

  1. trust that no one is sniffing your web traffic, capturing passwords, e-mails, IMs, etc.
  2. trust that no one is using more sophisticated methods to trick you into thinking that you are secure (i.e. man in the middle attack)
  3. route your Internet traffic through a secure tunnel to your home PC before going out onto the web, protecting you from everyone at your current location

which would you choose?

VPNs and SSH tunnels are actually a relatively easy means for you to be more secure while browsing the Internet from potentially dangerous locations.

Making use of an SSH tunnel on your PC

There are many, many different ways for you to do this but I find using a Linux PC that is running on your home network to be the easiest.

Step 1: Install SSH Server

Configure your home Linux PC. Install ssh (and sshd if it is separate). If you are using Ubuntu this is as easy as running the following command: sudo apt-get install ssh

Step 2: Make it easy to connect

Sign up for a free dynamic DNS service like DynDNS or No-IP so that you know of a web address that always points to your home Internet connection. To do this follow the instructions at the service you choose.

Step 3: Connect to tunnel

On your laptop (that you have taken with you to the hotel or coffee shop) connect to your home PC’s ssh server. If you are on Windows you will need to get a program like PuTTY. See their documentation on how to forward ports. On Linux you can simply use the ssh command. The goal is to forward a dynamic port to the remote ssh server. For instance if you are using a Linux laptop and ssh then the command would look something like: ssh -D [dynamic port] [user]@[home server] -p [external port number – if not 22]. An example of one would be ssh -D 4096 user@example.com -p 4000

Step 4: Configure browser to use SSH tunnel proxy

In your browser open the networking options window. This will allow you to tell the browser to forward all of its traffic to a proxy, which in this case, will be our dynamic port that we set up in step 3. Here is an example of my configuration for the example above.
If you don’t feel awesome enough doing the above graphically you can also browse to “about:config” (without quotes) and set the following values:

  • network.proxy.proxy_over_tls
    • true
  • network.proxy.socks
    • Change to “127.0.0.1” with no quotes
  • network.proxy.socks_port
    • Change to the SSH Tunnel Local Port set above (4096)
  • network.proxy.socks_remote_dns
    • Change to true
    • Note: you cannot actually set this setting graphically but it is highly recommended to configure this as well!
  • network.proxy.socks_version
    • Change to 5
  • network.proxy.type
      Change to 1

Step 5: Test and use

Browse normally – you are now browsing the Internet by routing all of your traffic (in Firefox) securely through your home PC. Note that this doesn’t actually make web browsing any more secure beyond protecting you from people in your immediate vicinity (i.e. connected to the same insecure WiFi network).


What about Android?

Just like the PC you can also do it on Android even without root access. Please note that while I’m sure there are a few ways to accomplish this, the following is just one way that has worked for me. I’m also assuming that you already have an SSH server to tunnel your traffic through.

Step 1: Install SSH Tunnel

The first thing you’ll want to do is install an application that will actually create the SSH tunnel for you. One such application is the aptly named SSH Tunnel which can be found on the Google Play Store here.

Step 2: Configure SSH Tunnel

Next you’ll want to launch the application and configure it.

  • Set the Host address (either a real domain name, dynamic DNS redirector or IP address of your SSH server) and port to connect on.
  • You’ll also want to configure the User and Password / Passphrase.
  • Check the box that says Use socks proxy.
  • Configure the Local Port that you’ll connect to your tunnel on (perhaps 1984 for the paranoid?)
  • I would recommend checking Auto Reconnect as well, especially if you are on a really poor WiFi connection like at a hotel or something.
  • Finally check Enable DNS Proxy.

Step 3: Connect SSH Tunnel

To start the SSH tunnel simply check the box that says Tunnel Switch.

Step 4: Install Firefox

While you may have a preference for Google Chrome, Firefox is the browser I’m going to recommend setting up the tunnel with. Additionally this way if you do normally use Chrome you can simply leave Firefox configured to always use the SSH tunnel and only switch to it when you want the additional privacy. Firefox can be found on the Google Play store here.

Step 5: Configure Firefox to use SSH Tunnel

In order to make Firefox connect via the SSH tunnel you’ll need to modify some settings. Once you are finished the browser will only work if the SSH tunnel is connected.

  • In the Firefox address bar browse to “about:config” with no quotes.
  • In the page that loads search and modify the following values:
    • network.proxy.proxy_over_tls
      • true
    • network.proxy.socks
      • Change to “127.0.0.1” with no quotes
    • network.proxy.socks_port
      • Change to the SSH Tunnel Local Port set above (1984?)
    • network.proxy.socks_remote_dns
      • Change to true
    • network.proxy.socks_version
      • Change to 5
    • network.proxy.type
        Change to 1

Step 6: Test and browse normally

Now that you have configured the above you should be able to browse via the tunnel. How can you check if it is working? Simply turn off the SSH Tunnel and try browsing – you should get an error message. Or if you are on a different WiFi you could try using a service to find your IP address and make sure it is different from where you are. For example if you configured Firefox to work via the SSH tunnel but left Chrome as is then visiting a site like http://www.whatismyip.com/ should show different information in each browser.

This post is a complication of two posts which originally appeared on my personal website here.




I am currently running a variety of distributions, primarily Linux Mint 17.
Previously I was running KDE 4.3.3 on top of Fedora 11 (for the first experiment) and KDE 4.6.5 on top of Gentoo (for the second experiment).

Applying updates to Docker and the Plex container

December 7th, 2014 No comments

In my last post, I discussed several Docker containers that I’m using for my home media streaming solution. Since then, Plex Media Server has updated to 0.9.11.4 for non-Plex Pass users, and there’s another update if you happen to pay for a subscription. As the Docker container I used (timhaak/plex) was version 0.9.11.1 at the time, I figured I’d take the opportunity to describe how to

  • update Docker itself to the latest version
  • run a shell inside the container as another process, to review configuration and run commands directly
  • update Plex to the latest version, and describe how not to do this
  • perform leet hax: commit the container to your local system, manually update the package, and re-commit and run Plex

Updating Docker

I alluded to the latest version of Docker having features that make it easier to troubleshoot inside containers. Switching to the latest version was pretty simple: following the instructions to add the Docker repository to my system, then running

sudo apt-get update
sudo apt-get install lxc-docker

upgraded Docker to version 1.3.1 without any trouble or need to manually uninstall the previous Ubuntu package.

Run a shell using docker exec

Let’s take a look inside the plex container. Using the following command will start a bash process so that we can review the filesystem on the container:

docker exec -t -i plex /bin/bash

You will be dropped into a root prompt inside the plex container. Check out the filesystem: there will be a /config and a /data directory pointing to “real” filesystem locations. You can also use ps aux to review the running processes, or even netstat -anp to see active connections and their associated programs. To exit the shell, use Ctrl+C – but the container will still be running when you use docker ps -a from the host system.

Updating Plex in-place: My failed attempt

Different Docker containers will have different methods of performing software updates. In this case, looking at the Dockerfile for timhaak/plex, we see that a separate repository was added for the Plex package – so we should be able to confirm that the latest version is available. This also means that if you destroy your existing container, pull the latest image, then launch a new copy, the latest version of Plex will be installed (generally good practice.)

But wait – the upstream repository at http://shell.ninthgate.se/packages/debian/pool/main/p/plexmediaserver/ does contain the latest .deb packages for Plex, so can’t we just run an apt-get update && apt-get upgrade?

Well, not exactly. If you do this, the initial process used to run Plex Media Server inside the Docker container (start.sh) gets terminated, and Docker takes down the entire plex container when the initial process terminates. Worse, if you then decide to re-launch things with docker start plex, the new version is incompletely installed (dpkg partial configuration).

So the moral of the story: if you’re trying this at home, the easiest way to upgrade is to recreate your Plex container with the following commands:

docker stop plex

docker rm plex

# The 'pull' process may take a while - it depends on the original repository and any dependencies in the Dockerfile. In this case it has to pull the new version of Plex.
docker pull timhaak/plex

# Customize this command with your config and data directories.
docker run -d -h plex --name="plex" -v /etc/docker/plex:/config -v /mnt/nas:/data -p 32400:32400 timhaak/plex

Once the container is up and running, access http://yourserver:32400/web/ to confirm that Plex Media Server is running. You can check the version number by clicking the gear icon next to your server in the left navigation panel, then selecting Settings.

Hacking the container: commit it and manually update Plex from upstream

If you’re more interested in hacking the current setup, there’s a way to commit your existing Plex image, manually perform the upgrade, and restart the container.

First, make sure the plex container is running (docker start plex) and then commit the container to your local filesystem (replacing username with your preferred username):

docker commit plex username/plex:latest

Then we can stop the container, and start a new instance where bash is the first process:

docker stop plex

docker rm plex

# Replace username with the username you selected above.
docker run -t -i --name="plex" -h plex username/plex:latest /bin/bash

Once inside the new plex container, let’s grab the latest Plex Media Server package and force installation:

curl -O https://downloads.plex.tv/plex-media-server/0.9.11.4.739-a4e710f/plexmediaserver_0.9.11.4.739-a4e710f_amd64.deb

dpkg -i plexmediaserver_0.9.11.4.739-a4e710f_amd64.deb

# When prompted, select Y to install the package maintainer's versions of files. In my instance, this updated the init script as well as the upstream repository.

Now, we can re-commit the image with the new Plex package. Hit Ctrl+D to exit the bash process, then run:

docker commit plex username/plex:latest

docker rm plex

# Customize this command with your config and data directories.
docker run -d -h plex --name="plex" -v /etc/docker/plex:/config -v /mnt/nas:/data -p 32400:32400 username/plex /start.sh

# Commit the image again so it will run start.sh if ever relaunched:
docker commit plex username/plex:latest

You’ll also need to adjust your /etc/init/plex.conf upstart script to point to username/plex.

The downside of this method is now that you’ve forked the original Plex image locally and will have to do this again for updates. But hey, wasn’t playing around with Docker interesting?




I am currently running Ubuntu 14.04 LTS for a home server, with a mix of Windows, OS X and Linux clients for both work and personal use.
I prefer Ubuntu LTS releases without Unity - XFCE is much more my style of desktop interface.
Check out my profile for more information.
Categories: Docker, Jake B, Plex, Ubuntu Tags:

Running a containerized media server with Ubuntu 14.04, Docker, and Plex

November 23rd, 2014 No comments

I recently took it upon myself to rebuild a general-purpose home server – installing a new Intel 530 240GB solid-state drive to replace a “spinning rust” drive, and installing a fresh copy of Ubuntu 14.04 now that 14.04.1 has released and there is much less complaining online.

The “new hotness” that I’d like to discuss has been the use of Docker to containerize various processes. Docker gets a lot of press these days, but the way I see it is a way to ensure that your special snowflake applications and services don’t get the opportunity to conflict with one another. In my setup, I have four containers running:

I like the following things about Docker:

  • Since it’s new, there are a lot of repositories and configuration instructions online for reference.
  • I can make sure that applications like Sonarr/NZBDrone get the right version of Mono that won’t conflict with my base system.
  • As a network administrator, I can ensure that only the necessary ports for a service get forwarded outside the container.
  • If an application state gets messed up, it won’t impact the rest of the system as much – I can destroy and recreate the individual container by itself.

There are some drawbacks though:

  • Because a lot of the images and Dockerfiles out there are community-based, there are some that don’t follow best practices or fall out of an update cycle.
  • Software updates can become trickier if the application is unable to upgrade itself in-place; you may have to pull a new Dockerfile and hope that your existing configuration works with a new image.
  • From a security standpoint, it’s best to verify exactly what an image or Dockerfile does before running it – for example, that it pulls content from official repositories (the docker-plex configuration is guilty of using a third-party repo, for example.)

To get started, on Ubuntu 14.04 you can install a stable version of Docker following these instructions, although the latest version has some additional features like docker exec that make “getting inside” containers to troubleshoot much easier. I was able to get all these containers running properly with the current stable version (1.0.1~dfsg1-0ubuntu1~ubuntu0.14.04.1). Once Docker is installed, you can grab each of the containers above with a combination of docker search and docker pull, then list the downloaded containers with docker images.

There are some quirks to remember. On the first run, you’ll need to docker run most of these containers and provide a hostname, box name, ports to forward and shared directories (known as volumes). On all subsequent runs, you can just use docker start $container_name – but I’ll describe a cheap and easy way of turning that command into an upstart service later. I generally save the start commands as shell scripts in /usr/local/bin/docker-start/*.sh so that I can reference them or adjust them later. The start commands I’ve used look like:

Plex
docker run -d -h plex --name="plex" -v /etc/docker/plex:/config -v /mnt/nas:/data -p 32400:32400 timhaak/plex
SABnzbd+
docker run -d -h sabnzbd --name="sabnzbd" -v /etc/docker/sabnzbd:/config -v /mnt/nas:/data -p 8080:8080 -p 9090:9090 timhaak/sabnzbd
Sonarr
docker run -d -h sonarr --name="sonarr" -v /etc/docker/sonarr:/config -v /mnt/nas:/data -p 8989:8989 tuxeh/sonarr
CouchPotato
docker run -d -h couchpotato --name="couchpotato" -e EDGE=1 -v /etc/docker/couchpotato:/config -v /mnt/nas:/data -v /etc/localtime:/etc/localtime:ro -p 5050:5050 needo/couchpotato
These applications have a “/config” and a “/data” shared volume defined. /data points to “/mnt/nas”, which is a CIFS share to a network attached storage appliance mounted on the host. /config points to a directory structure I created for each application on the host in /etc/docker/$container_name. I generally apply “chmod 777” permissions to each configuration directory until I find out what user ID the container is writing as, then lock it down from there.

For each initial start command, I choose to run the service as a daemon with -d. I also set a hostname with the “-h” parameter, as well as a friendly container name with “–name”; otherwise Docker likes to reference containers with wild adjectives combined with scientists, like “drunk_heisenberg”.

Each of these containers generally has a set of instructions to get up and running, whether it be on Github, the developer’s own site or the Docker Hub. Some, like SABnzbd+, just require that you go to http://yourserverip:8080/ and complete the setup wizard. Plex required an additional set of configuration steps described at the original repository:

  • Once Plex starts up on port 32400, access http://yourserverip:32400/web/ and confirm that the interface loads.
  • Switch back to your host machine, and find the place where the /config directory was mounted (in the example above, it’s /etc/docker/plex). Enter the Library/Application Support/Plex Media Server directory and edit the Preferences.xml file. In the <Preferences> tag, add the following attribute: allowedNetworks=”192.168.1.0/255.255.255.0″ where the IP address range matches that of your home network. In my case, the entire file looked like:

    <?xml version="1.0" encoding="utf-8"?>
    <Preferences MachineIdentifier="(guid)" ProcessedMachineIdentifier="(another_guid)" allowedNetworks="192.168.1.0/255.255.255.0" />

  • Run docker stop plex && docker start plex to restart the container, then load http://yourserverip:32400/web/ again. You should be prompted to accept the EULA and can now add library locations to the server.

Sonarr needed to be updated (from the NZBDrone branding) as well. From the GitHub README, you can enable in-container upgrades:

[C]onfigure Sonarr to use the update script in /etc/service/sonarr/update.sh. This is configured under Settings > (show advanced) > General > Updates > change Mechanism to Script.

To automatically ensure these containers start on reboot, you can either use restart policies (Docker 1.2+) or write an upstart script to start and stop the appropriate container. I’ve modified the example from the Docker website slightly to stop the container as well:

description "SABnzbd Docker container"
author "Jake"
start on filesystem and started docker
stop on runlevel [!2345]
respawn
script
/usr/bin/docker start -a sabnzbd
end script
pre-stop exec /usr/bin/docker stop sabnzbd

Copy this script to /etc/init/sabnzbd.conf; you can then copy it to plex, couchpotato, and sonarr.conf and change the name of the container and title in each. You can then test it by rebooting your system and running “docker ps -a” to ensure that all containers come up cleanly, or running “docker stop $container; service $container start”. If you run into trouble, the upstart logs are in /var/log/upstart/$container_name.conf.

Hopefully this introduction to a media server with Docker containers was thought-provoking; I hope to have further updates down the line for other applications, best practices and how this setup continues to operate in its lifetime.




I am currently running Ubuntu 14.04 LTS for a home server, with a mix of Windows, OS X and Linux clients for both work and personal use.
I prefer Ubuntu LTS releases without Unity - XFCE is much more my style of desktop interface.
Check out my profile for more information.
Categories: Docker, Jake B, Plex, Ubuntu Tags:

Big distributions, little RAM 7

October 13th, 2014 4 comments

It’s been a while but once again here is the latest instalment of the series of posts where I install the major, full desktop, distributions into a limited hardware machine and report on how they perform. Once again, and like before, I’ve decided to re-run my previous tests this time using the following distributions:

  • Debian 7.6 (GNOME)
  • Elementary OS 0.2 (Luna)
  • Fedora 20 (GNOME)
  • Kubuntu 14.04 (KDE)
  • Linux Mint 17 (Cinnamon)
  • Linux Mint 17 (MATE)
  • Mageia 4.1 (GNOME)
  • Mageia 4.1 (KDE)
  • OpenSUSE 13.1 (GNOME)
  • OpenSUSE 13.1 (KDE)
  • Ubuntu 14.04 (Unity)
  • Xubuntu 14.04 (Xfce)

I also attempted to try and install Fedora 20 (KDE) but it just wouldn’t go.

All of the tests were done within VirtualBox on ‘machines’ with the following specifications:

  • Total RAM: 512MB
  • Hard drive: 8GB
  • CPU type: x86 with PAE/NX
  • Graphics: 3D Acceleration enabled

The tests were all done using VirtualBox 4.3.12, and I did not install VirtualBox tools (although some distributions may have shipped with them). I also left the screen resolution at the default (whatever the distribution chose) and accepted the installation defaults. All tests were run between October 6th, 2014 and October 13th, 2014 so your results may not be identical.

Results

Just as before I have compiled a series of bar graphs to show you how each installation stacks up against one another. Measurements were taken using the free -m command for memory and the df -h command for disk usage.

Like before I have provided the results file as a download so you can see exactly what the numbers were or create your own custom comparisons (see below for link).

Things to know before looking at the graphs

First off if your distribution of choice didn’t appear in the list above its probably not reasonably possible to be installed (i.e. I don’t have hours to compile Gentoo) or I didn’t feel it was mainstream enough (pretty much anything with LXDE). As always feel free to run your own tests and link them in the comments for everyone to see.

First boot memory (RAM) usage

This test was measured on the first startup after finishing a fresh install.

 

All Data Points

All Data Points

RAM

RAM

Buffers/Cache

Buffers/Cache

RAM - Buffers/Cache

RAM – Buffers/Cache

Swap Usage

Swap Usage

RAM - Buffers/Cache + Swap

RAM – Buffers/Cache + Swap

Memory (RAM) usage after updates

This test was performed after all updates were installed and a reboot was performed.

All Data Points

All Data Points

RAM

RAM

Buffers/Cache

Buffers/Cache

RAM - Buffers/Cache

RAM – Buffers/Cache

Swap Usage

Swap Usage

RAM - Buffers/Cache + Swap

RAM – Buffers/Cache + Swap

Memory (RAM) usage change after updates

The net growth or decline in RAM usage after applying all of the updates.

All Data Points

All Data Points

RAM

RAM

Buffers/Cache

Buffers/Cache

RAM - Buffers/Cache

RAM – Buffers/Cache

Swap Usage

Swap Usage

RAM - Buffers/Cache + Swap

RAM – Buffers/Cache + Swap

Install size after updates

The hard drive space used by the distribution after applying all of the updates.

Install Size

Install Size

Conclusion

Once again I will leave the conclusions to you. Source data provided below.

Source Data




I am currently running a variety of distributions, primarily Linux Mint 17.
Previously I was running KDE 4.3.3 on top of Fedora 11 (for the first experiment) and KDE 4.6.5 on top of Gentoo (for the second experiment).

How to set a static IP address on Ubuntu 14.04 server (and others)

September 16th, 2014 No comments

This assumes you want to set a static IP address on the network device eth0.

Open up the interfaces file

sudo nano /etc/network/interfaces

and remove or comment out the line that says

iface eth0 inet dhcp

then add the following lines in its place:

iface eth0 inet static
address [static IP address, i.e. 192.168.1.123]
netmask [i.e. 255.255.255.0]
network [i.e. 192.168.1.0]
broadcast [i.e. 192.168.1.255]
gateway [i.e. 192.168.1.1]
dns-nameservers [i.e. 8.8.8.8]

Save the file and reboot the server. On some systems you may also need to update /etc/resolv.conf and /etc/hosts




I am currently running a variety of distributions, primarily Linux Mint 17.
Previously I was running KDE 4.3.3 on top of Fedora 11 (for the first experiment) and KDE 4.6.5 on top of Gentoo (for the second experiment).