Date: July 9, 2013

Introduction

As usual, the first system I am upgrading is my my home system. This upgrade was clean and straightforward, taking only about 2.5 hours. Most of that time was unattended (I could read books, cook, or whatever while packages were being downloaded on my 7 Mbit/s DSL link).
su
yum update yum
yum update
rpm --import https://fedoraproject.org/static/FB4B18E6.txt
I did some cleanup deleting ancient orphaned packages and merging rpmnew files.

To find rpmnew files I use:

rpmconf -a

To find rpmsave files (which I generally delete), I use this, which will also find any rpmnew files that escaped the prior command.

find /etc /var -name "?*.rpm?*"

I also preen my system with:

package-cleanup --orpans
package-cleanup --leaves
Orphans are often things that should be deleted. Leaves are usually packages I have installed outside of yum for some (usually good) reason.

Then I launch the upgrade (from a graphical terminal as usual):

yum clean all
yum --releasever=19 distro-sync
After grinding through 2877 packages (this takes about an hour over my 7 Mbit DSL line), it hits:
Transaction Check Error:
  file /usr/bin from install of filesystem-3.2-12.fc19.x86_64 conflicts with file from package google-earth-stable-6.0.3.2197-0.x86_64
The answer of course is to yum erase google-earth-stable (and wonder why it stupidly specifies that it provides /usr/bin) and repeat the "distro-sync". The second time takes only a minute and goes clean. Then I do:
/sbin/grub2-install /dev/sda
Then I do the following to find all rpmnew files that ought to be merged in:
find /etc /var -name "?*.rpm?*"
The entire upgrade takes 2.5 hours all told, most of it unattended, and I reboot and am running Fedora 19 (I repeat this on a system on a fast LAN and with a local fedora mirror and it takes about 45 minutes).

yum-cron

This is always something to check after an update. Apparently yum and yum-cron have had a lot of changes as of fedora 19. In particular yum-cron will download updates, but not apply them (so I had updates piling up that I had to do a yum update to apply). This is a change from what I used to do, but easily remedied by editing /etc/yum/yum-cron.conf and changing the setting for apply_updates from no to yes.

Rails is broken.

Rails is always broken after a system upgrade.
I don't blame fedora for this, rails is fragile software, a veritable house of cards.

The first symptom is cd /rails/path/project ; rails s does not work (it is trying to run whatever rubygem-rails was installed by fedora). I do bundle update and bundle install for the project, and that sorts out this issue out nicely, but then rails s gives me this:

/usr/share/ruby/yaml.rb:6:in `':
It seems your ruby installation is missing psych (for YAML output).
To eliminate this warning, please install libyaml and reinstall your ruby.
/usr/share/ruby/yaml.rb:7:in `require': cannot load such file -- psych (LoadError)
from /usr/share/ruby/yaml.rb:7:in `'

This is much more complex that the first issue. Apparently "psych" is usually built into ruby, but Fedora has decided to package it as a gem, breaking rails (and other things). The quick workaround is to add gem 'psych' to the rails project Gemfile, do a bundle install and things are good. See:

An upcoming ruby RPM may fix this in a more proper fashion.
Have any comments? Questions? Drop me a line!

Adventures in Computing / tom@mmto.org