As I mentioned in a previous post, the MySQL RPMs provided for RHEL/CentOS by percona are not actually compatible with RHEL/CentOS. They use the same package layout as the MySQL-provided RPMs.

Here's how I create my own RPMs having the same package layout as the RHEL/CentOS packages but with the percona highperf patchset applied.

Continue reading

ourdelta provide MySQL packages for various platforms, built with assorted performance/feature patchsets.

Sadly, like the percona builds, the RPM packages for RHEL/CentOS are not upstream-compatible, ie. they package MySQL differently.

I was planning to re-build the ourdelta packages to use the upstream RPM package layout but I've decided to stick with re-building the percona packages as I've already done the work for that.

Anyway, in case it helps someone, here's how to rebuild the ourdelta packages from the SRPM:

rpmbuild --rebuild \
  MySQL-OurDelta-5.0.87.d10-65.el5.src.rpm \
  --define 'ourdelta 1' \
  --define 'mysqlversion 5.0.87' \
  --define 'elversion 5' \
  --define 'patchset d10'

I wanted to install racadm on my local (non-Dell) workstation running Fedora 11. I tried installing via the repos as per the instructions, but without success. I eventually managed by downloading manually:

yum localinstall mgmtst-racadm-6.1.0-648.i386.rpm

The next problem was that racadm wouldn't run – it failed with the error:

ERROR: Failed to initialize transport

Running under strace showed that it seemed to be having problems finding a suitable ssl library – probably because racadm is i686 and I'm running it on x86_64. Using yum provides I determined that a suitable ssl lib was shipped with Adobe Reader, installed in /opt/Adobe/ on my workstation.

The following couple of symlinks fixed it:

ln -s ../../opt/Adobe/Reader9/Reader/intellinux/lib/ /lib/i686/
ln -s ../../opt/Adobe/Reader9/Reader/intellinux/lib/ /lib/i686/

I needed to check the integrity of the file systems on several xen domU guests while the guests were shutdown, ie. I needed to do it from the dom0.

I use LVM logical volumes for the block devices for the guests disks named $host-disk0. These are stored in a volume group named vg_guests. I use kpartx to access the partitions on the block device.

Each guest disk has a small physical partition for /boot; the rest of the disk is allocated to a 2nd partition which is used as an LVM volume group named vg_$host.

Here's a script I knocked up to do the job:

for host in host1 host2 host3 ; do
    # create devices from the LVs
    kpartx -av /dev/mapper/vg_guests-$host--disk*
    # Activate the VGs for the host
    for vg in $(vgs --noheadings | grep $host | awk '{print $1}' ) ; do
        echo Activating $vg
        vgchange -ay $vg
    # check the file systems
    for p in $(/dev/mapper/vg_$host* | grep -v swap); do
        e2fsck -p $p
    # Deactivate the VGs
    for vg in $(vgs --noheadings | grep $host | awk '{print $1}' ) ; do
        echo De-activating $vg
        vgchange -an $vg
    # Remove the devices
    kpartx -dv /dev/mapper/vg_guests-$host--disk0
I've wondered for a while how to type Unicode characters in Linux but I've never really *needed* to do it so I've never spent much time investigating. It turns out it's pretty straight-forward: simply hold down Ctrl+Shift+U and enter the character number. For example:

  • the Trademark Symbol is character U+2122: ™
  • small letter c with a cedilla accent is U+00E7: ç