Sun Grid Engine (SGE) is a bath queue system that can be used to distribute computation intensive tasks across one or more servers/CPUs. SGE has a graphical configuration utility called
qmon, but when you start it on a remote machine (using SSH), you may end up with errors like this:
Warning: Cannot convert string "-adobe-courier-medium-r-*--14-*-*-*-m-*-*-*" to type FontStruct
Warning: Cannot convert string "-adobe-courier-bold-r-*--14-*-*-*-m-*-*-*" to type FontStruct
Warning: Cannot convert string "-adobe-courier-medium-r-*--12-*-*-*-m-*-*-*" to type FontStruct
X Error of failed request: BadName (named color or font does not exist)
Major opcode of failed request: 45 (X_OpenFont)
Serial number of failed request: 329
Current serial number in output stream: 340
The warnings are not really a problem, but the error is. It can be solved by running the following on the client (i.e. your local) machine (assuming it runs Debian or Ubuntu):
sudo apt-get install xfonts-75dpi
xset +fp /usr/share/fonts/X11/75dpi
xset fp rehash
After upgrading Puppet from versions < v3 to version 3.0.0 or higher, the main commands have changed, keep this in mind when reading my earlier post. From the ChangeLog:
To run puppet on a client
puppetd --test is changed to:
To show a list of clients waiting for signing of their certificates run the following on the master:
puppet ca -l. To list all certificates, run (on the master):
To completely remove a client’s certificate on the master run:
puppet cert clean client.localdomain
and to sign a client certificate on the master run:
puppet cert sign client.localdomain
My girlfriend’s keyboard and mouse stopped working some time ago. It turned out that her Logitech unifying receiver (a small USB dongle for keyboard and mouse) was a bit broken, only when twisted in a certain way it would work. So, I called Logitech, explained the situation and they offered to send us a replacement for free. Well done Logitech support!
Now, since we both use Linux as our main OS, the question was how to pair the mouse and keyboard with the new receiver. Logitech provides a piece of Windows software, but nothing for Linux. It turns out it’s not that difficult and you can find various little C programmes that do it for you. I tried Travis Reeder’s solution and it worked like a charm on my Ubuntu 12.04 machine.
These are the steps I took.
First I switched off the keybord and the mouse, then ran the following:
$ git clone https://github.com/treeder/logitech_unifier.git
Cloning into 'logitech_unifier'...
remote: Counting objects: 35, done.
remote: Compressing objects: 100% (26/26), done.
remote: Total 35 (delta 11), reused 33 (delta 9)
Unpacking objects: 100% (35/35), done.
$ cd logitech_unifier/
Logitech Unified Reciever unify binary not compiled, attemping compilation
Logitech Unified Reciever unify binary was successfully compiled
Auto-discovering Logitech Unified Reciever
Logitech Unified Reciever found on /dev/hidraw0!
Turn off the device you wish to pair and then press enter
[sudo] password for lennart:
The receiver is ready to pair a new device.
Switch your device on to pair it.
I ran the autopair.sh script twice, once for the mouse and once for the keyboard.
Today I compiled my first RPM package from source :-)! But let’s start at the beginning…
At work I recently implemented disk quota on our server. While trying to setup
/etc/warnquota.conf I noticed the example lines at the bottom that showed how to configure warnquota to look up e-mail addresses in an LDAP directory. This was exactly what I needed, because we store our user’s e-mail address in our LDAP tree. Without this feature warnquota would try to send its warning mails to
firstname.lastname@example.org instead of (or even other addresses for guests that only visit us for a few weeks). The lines in
LDAP_MAIL = true
LDAP_HOST = ldap.example.com
LDAP_PORT = 389
LDAP_BASEDN = ou=Users,dc=example,dc=com
LDAP_SEARCH_ATTRIBUTE = uid
LDAP_MAIL_ATTRIBUTE = mail
LDAP_DEFAULT_MAIL_DOMAIN = example.com
So, after saving the file I tested it by running
warnquota -s (as root, and I also made sure I reduced my own quota so I would be the one getting an e-mail warning).
Unfortunately warnquota spitted out some errors:
warnquota: Error in config file (line 65), ignoring
warnquota: Error in config file (line 66), ignoring
warnquota: Error in config file (line 67), ignoring
warnquota: Error in config file (line 68), ignoring
warnquota: Error in config file (line 69), ignoring
warnquota: Error in config file (line 70), ignoring
warnquota: Warning: Mailer exitted abnormally.
These were the line numbers with the LDAP options above :-(. Google pointed me to an old bug in Fedora that was marked as resolved. I also found out that the quota tools should be compiled with LDAP support for this to work. To be sure that it was actually possible I configured warnquota on my home server that runs Ubuntu 10.04 and also uses LDAP. There, it all worked as expected.
So, my next step was clear: make my own RPM package for
quota. The one installed by CentOS 5.4 is
quota-3.13-1.2.5.el5. These are the steps I took:
- Enable the CentOS source repository by creating the file
etc/yum.repos.d/CentOS-Source.repo with this contents:
name=CentOS $releasever - $basearch - Source
yum update and check that the new repository is listed.
- Install the
sudo yum install yum-utils rpmdevtools.
- Set up a directory to do your build work in. I created the directory
rpmdev-setuptree to create the required sub directories.
- Set the basic build configuration by creating the file
~/.rpmmacros with the following contents:
# Path to top of build area
- Go into the SRPMS directory and download the source package:
yumdownloader --source quota
- In the top level directory run
rpm -i SRPMS/quota-3.13-1.2.5.el5.src.rpm to unpack the package.
SPECS directory now contains the
.spec file that contains the build instructions. The
SOURCES directory contains the source files and patches from Red Hat. In a temporary directory I untar-ed the quotatools source tar.gz file and ran
./configure --help to find out which option I should add to the spec file in order to enable LDAP lookup. The option was:
--enable-ldapmail=yes. The set of configure lines in the spec file now looked like this:
--with-ext2direct=no --enable-rootsbin --enable-ldapmail=yes
In the spec file I also added a changelog entry:
* Mon Oct 18 2010 Lennart Karssen <email@example.com 1:3.13-1.2.6
- Added --enable-ldapmail=try to the ./configure line to enable LDAP
for looking up mail addresses. (Resolves Red Hat Bugzilla 133207,
it is marked as resolved there, but apparently was reintroduced.)
And I also bumped the build version number at the top of the file (the
Release: line). Finally, I added
openldap-devel to the
BuildPreReq line (of course I ran into a compilation error first and then installed the
openldap-devel package :-)).
- Now it’s time to build the package. In the
SPEC directory run:
rpmbuild -bb quota.spec and wait. The RPM package is created in the
- Install the package:
sudo rpm -Uvh RPMS/x86_64/quota-3.13-1.2.6.x86_64.rpm (if you didn’t bump the package version number the
--replacepkgs must be added to ‘upgrade’ to the same version).
And that was it! The package installed cleanly and a test run of
warnquota -s was successful.