How To: Downgrade libcairo2 in Debian (and fix Evince)

Evince crashing with a libcairo segfault like this?

It’s a libcairo2 1.12.2-2 issue – which you can thankfully fix by downgrading libcairo2 to a 1.10.2 incarnation – here’s how…

Check package availability

First check you have an alternate version to downgrade to. To do this in Synaptic select the libcairo2 package then click on the Versions tab at the bottom, or you can do the same check via a swift apt-cache policy libcairo2 as shown below:

In this case the older (but functional) package 1.10-2-2ubuntu2 is available. Let’s assume there’s an older package you can use – if not, go get one from elsewhere.

Uninstall and force a different version

Uninstall libcairo2 using any manner you like – this will also force removal of things like Evince as dependencies, unless you see anything spectacular that you know you need just let it.

Then in Synaptic, search for libcairo2, select it (i.e. click on it), then from the Synaptic menu choose Package > Force Version and choose the older, working package, and install it.

Next, you’ll want to lock to that version so it doesn’t get upgraded (at least until there’s a newer working version), so again from the menu just select Package > Lock Version.

Reinstall libcairo-using things

Finally, reinstall what was ailing ya and everything should work fine. In my case at least, this means I can reinstall the Evince PDF viewer and it’ll now print to PDF without segfaulting – Huzzah! =D

I’ve no doubt you can do this entire process from the command line, but it’s easy and works through Synaptic so I’ll leave that as an exercise for the reader.

As an added bonus, if you’re experiencing slow display and/or corrupted text in Iceweasel or Chromium then the downgrade should fix that up too. You can read more about which here.

How-To: Fix LMDE Repo Hell

LMDE is a great distro, but the repo situation is a bit of a mess, what with all the update packs and tracking testing or sid or romeo or wheezy or… yeah, it gets confusing. As I wanted to build openFrameworks the other day and it was moaning about libavcodec and libavcodec-dev mismatches I did a bit of searching around and found this thread over on the mint forums, and making the following changes fixed up the repo issues in no time:

Change your main repos (in /etc/apt/sources.list) to:

If you wanted to then make sure the Mint repos take precedence over the Debian ones, put something like the following in /etc/apt/preferences:

Once you perform an update to get the new package listings and upgrade, all package mismatches should be fixed and you can actually build stuff! Woo! =D

Update May 2012: Getting a large number of packages to be removed when you contemplate updating/upgrading? Pin all repos to 500 (i.e. level the playing field) to fix! Source: Thanks, ZeroZero!

How-To: Transform Your Stock Ubuntu 10.04 Install into a Fully Operational Battle Station Operating System

I used to upgrade my Ubuntu distros after each release cycle, but it was never a very pleasant experience… There’d always be mismatched packages and configs, legacy cruft left lying around filling up my root partition, and all sorts of mismatch woes – so I ditched that for separate partitions for my root folder and home folders, and now wipe the root folder with the newest release as and when it’s out.

Because I’ve done this a couple of times over the last few years, I feel I’m getting pretty good at getting the machine up & running with everything I need at a pretty fast pace: maybe a day for all the core stuff, another to tweak the vast majority of everything so I have it as I want, and then just bits and pieces as they come up. This time, I thought I’d make a list of all the things I install (yes, I know you can automatically generate a list of installed packages) – because I also wanted to note why I install ’em, you know, what are they good for, so the next time I install a fresh system I can just grab it all even quicker.

Now, a stock/standard Ubuntu distro is a pretty good thing – but it doesn’t come with everything you need, so with that in mind, I’d like to present a list of things that I think you also need, and that once you have in place you’ll be able to do most anything you need with your system with just a few clicks. Before you do any of this, it’s a good idea to open up System | Administration | Software Sources and enable the restricted, universe and multiverse repositories as shown below:

Ubuntu Software Sources

With that done, here’s the list of things you’ll likely want to have installed in no particular-order, and only roughly sectioned off into classes (system, sound & media, social networking etc.):

Freely Available In The Ubuntu Repositories
Package Name Why Install It?
System / Developer / Essential
ubuntu-restricted-extras Meta-suite of proprietary software including the Flash plugin, DVD decoding libraries etc.
build-essentials Tools to compile your own/open-source projects
eclipse Multi-Language IDE – coding is good.
codeblocks Another multi-language IDE, I’ve not used it too much as yet, but I hear good things about it…
subversion Version control tool. Useful to checkout code trunks and compile open-source projects yourself
scons Python-based build system – req’d to compile SCons-based projects (More info:
guake Quake-style terminal access for gnome. Awesome stuff. Change the keybindings for copy and paste to Ctrl+C and Ctrl+V for usabilities sake.
nautilus-open-terminal Nautilus script that adds functionality to allow you to right-click on a folder and open a terminal at that point, saves you cd-ing all the way into long paths.
php5 It’s PHP. Version 5. Drags in apache2 with it.
deskbar Search applet for the panel – finds your programs in the menu, amongst a hundred other things. I really couldn’t live without this.
Utility / Office / Comms
thunderbird Thunderbird 3, my email client o’ choice. I’d written a guide for installing it in Ubuntu 9.10, but it’s in the repos in 10.04, so that’s now obsolete…
p7zip-full 7zip archiver. Better compression than zip and a completely open format.
pidgin Multi-chat-format-client (MSN, AOL, YahooMessenger etc.) I don’t like the packed-in empathy client too much…
pidgin-plugin-pack Additional plugins for pidgin.
xchat IRC (Internet Relay Chat) client
Audio / Video
audacity Very good audio editor
ripperx Decent audio CD ripper, use with LAME. Also, it’s the only ripper I’ve found that doesn’t randomly fall over if it doesn’t like a CD…

Warning: The current version (v2.7.2) has two bugs which are kinda scuppering it: it doesn’t add ID3 tags to tracks ripped beyond track 10, and it crashes at the end of each disc rip =/ It might be better to use something else for the time being, but I really don’t like SoundJuicer or anything, so I just run MusicBrainz Picard (package name: picard) on any folder of MP3s ripped from a disc to fix up the tags after ripping.

lame The best mp3 codec to rip audio with. Use high quality VBR and the results are superb.
soundconverter Easily convert audio files between formats.
pautils PulseAudio utils, stream choosers, volume controls etc.
gpodder Really good podcast client for gnome: subscribe to Linux Outlaws, This Week in Tech (TWiT) etc..
mplayer Useful to get data to transcode .avi files to to DVDs (see this article if you’re interested).
ccsm Compiz config settings manager – lets you tweak your compiz effects in countless ways…
compiz-fusion-plugins-extra Additional effects for compiz
fusionicon A system tray icon for accessing compiz related settings and switching/reloading window managers. Best to set it to autorun on boot through System | Preferences | Startup Applications.
python-sexy Library used by compiz to extend Gtk widget functionality.
gnome-colors Additional icon themes – more choice is never a bad thing.
screenlets Widget system for the gnome desktop. Grab some more screenlets from here if you like (the NVidia and FuriousMoon screenlets are useful/pretty respectively).
gimp The GNU Image Manipulation Program, which isn’t included on the CD for the first time this release..
gimp-plugin-registry Useful GIMP plugins, including “Save for Web…”, which is a daily-use tool for me…
cheese Mess around w/ your webcam
camera-monitor A panel applet which indicates when your webcam is switched on – so you’ll know if anybody else is messing around with your webcam!
blender 3D modelling package. I WILL learn how to use it this year, fo’ real!
povray An old-school but excellent ray-tracer (creates images by back-tracing light rays from geometry), always good for a mess around. Get povray-examples and povray-docs while you’re at it.
cbrpager A simple comic viewer for gnome
Administration / Files / Network
gadmin A suit of GUIs to administrate things on your system (proftpd, apache, squid etc.)
proftpd FTP server, requires a fair bit of configuration, but I’ve written pretty solid article on it here if you’re interested in hosting files on your own FTP server..
filezilla An excellent FTP client to connect to FTP servers.
sabnzbdplus A really good news group client – download stuff with far more peace of mind than using torrents. I’ve also written a guide for downloading stuff from newsgroups which you can find here if you’re that way inclined…
pypar2 Tool to repair broken/corrupted/incomplete rar files using PAR(ity) files. Use with sabnazbdplus as and when needed.
transmission An excellent bit-torrent client. Don’t forget to: Enable the block list & update it, change encryption settings from “preferred” to “required”, and disable DHT peer exchange (here’s why: unlinked – thread now gone)
dosbox A legacy PC emulator – run old DOS software if you need to. I use it to fire up ScreamTracker 3 occasionally.

There’s a few other things you might want which aren’t in the standard Ubuntu respositories, too. Such as:

Not Available In The Ubuntu Repositories
Application Name Why Install It? Get From
webmin Tool to administrate your system through a web interface either locally or over the web. Either restrict administration to be from the local network or make your passwords strong if you allow external access from teh Internets!
google-earth Gaze longingly at home, and the pyramids, and other neat stuff on this blue/green sphere.
google-picassa Nice image organiser/basic photo adjustment tool. Can categorise images by faces (poorly) too! [I had to install this from the commandline for some reason. Used: sudo gdebi ./picassa-3_0-blah-blah.deb to install] Newer versions not available for Linux =(
virtualbox Virtualisation software so you can run stuff like XP/Vista/Windows 7 from virtually from within Linux. Get this from Sun rather than the OSE (Open Source Edition) in the repositories if you want USB support.
handbrake Simple and yet powerful DVD ripper/video transcoder with a decent GUI. If you’re ripping a DVD just point it at the top level directory of the DVD and hit Open for it to pull in all the .vob files for you.

Update: Don’t bother installing version 0.9.4 on Ubuntu 10.04 – it’s broken. Build yourself a working version from the freshest source using this guide!
nautilus elementary Nice transparency effects for Nautilus
ubuntu tweak Tweak ubuntu like a mother-b

You might not need some of that stuff, but for me it turns a good basic install into the real deal that does everything I need. And I absolutely love it :D