My experience upgrading to Trusty on Shared Hosting

Adventures in updating from Dreamhost’s Ubuntu Precise to Trusty

I jotted down some notes while fixing up my sites after the Ubuntu Trusty Tahr update. Most things upgraded smoothly, but I had to tweak my more eccentric scripts. Maybe they will be of interest to my fellow shared-hosters.

SSH Fingerprint change?

Immediately after the upgrade, the server’s SSH fingerprints changed, resulting in scary error messages.
I suspect this was a temporary misconfiguration, because the fingerprints switched back a few days later (but only after I had updated all the fingerprints, darn it!).

Mail changed to heirloom-mailx

On the old OS, the mail command invoked bsd-mailx, but on Trusty it changed to heirloom-mailx. The two have some incompatible options – in particular Heirloom makes it difficult to set custom mail headers. On Trusty, bsd-mailx is still available, but needs to be explicitly invoked. For example, to send HTML email:

bsd-mailx -a 'MIME-Version: 1.0' -a 'Content-type: text/html; charset=utf-8' \
  -s subject < example.html

Trac upgrade

I use Trac for development tickets/planning, and Trac sites need to be upgraded:

trac-admin ~/ upgrade
trac-admin ~/ wiki upgrade

SVN Working-Copy Upgrades

I have several sites that are under Subversion version control. The new SVN changed the format of working directories. Before working with them, they needed to be upgraded:

svn upgrade

Restoring xsltproc

I have a site that is regularly updated from XML data sources using a cronjob script. The script transforms the data to HTML using xslproc to process XSL templates. With Trusty, the xsltproc program has disappeared.

To install it locally, I just grabbed the package and put in ~/bin:

apt-get download xsltproc
dpkg-deb -xv xsltproc_1.1.28-2ubuntu0.1_amd64.deb ~/tmp
mv ~/tmp/usr/bin/xsltproc ~/bin/

Restoring Python’s XML lib

The new Python was missing the XML library, so I needed to install it locally:

pip install lxml -t `pwd`

Restoring Perl’s cpanm

Yes, that’s right. I use the world’s most-hated language, Perl! The old OS had cpanm package manager, which is particularly good at performing local module installs. I installed a local copy from CPAN:

export PERL5LIB=~/perl5/lib/perl5/
cpan -iI App::cpanminus

That’s it so far. I’m looking forward to the new features made possible by Trusty (HTTP/2 in particular)!