This mini-howto describes how to set up KeePass on Centos 6. It requires building mono from source and installing the "portable" version of KeePass. Finally there are a few tweaks that need to be done so that it can execute properly.
Building mono
To build mono, follow the steps described in Installing Mono in CentOS 5.x/6.x with the following modifications:
- You are instructed to add the epel repository. I strongly recommend using the yum priorities plugin and setting the epel repo to lower priority.
- Get the most recent mono source [tarball] from mono source directory The latest version as of this writing is 3.2.0. Also note that it is a bzip2 file. So that changes the steps to
$ wget http://origin-download.mono-project.com/sources/mono/mono-3.2.0.tar.bz2
$ tar jxvf mono-3.2.0.tar.bz2 - I like to save the output of running make and also prefer to run make as an ordinary user instead of root. So I suggest first building mono with make as follows:
$ make 2>&1 | tee make.log
Then you have the make.log file to check if you run into any problems. Now you can become root and do the make install:
$ make install
Install Portable KeePass (ZIP Package)
The next step is to install the portable version of KeePass. Go here. Choose the Professional Edition portable package. After downloading the ZIP file, make a directory for KeePass (I create one under my home directory).
$ mkdir KeePass
$ cd KeePass
$ unzip <path to zip file>/KeePass-2.23.zip
Libray Tweaks
If you try to run KeePass (from the KeePass directory where you unzipped it), you will get an exception like:
System.DllNotFoundException: /usr/local/lib/libgdiplus.so
libgdiplus was one of the packages you installed earlier. Checking the files that were installed:
$ rpm -ql libgdiplus
/usr/lib64/libgdiplus.so.0
/usr/lib64/libgdiplus.so.0.0.0
/usr/share/doc/libgdiplus-1.2.5
/usr/share/doc/libgdiplus-1.2.5/AUTHORS
/usr/share/doc/libgdiplus-1.2.5/COPYING
/usr/share/doc/libgdiplus-1.2.5/MPL-1.1.html
/usr/share/doc/libgdiplus-1.2.5/NEWS
/usr/share/doc/libgdiplus-1.2.5/README
/usr/share/doc/libgdiplus-1.2.5/TODO
$
We need to make a symlink (in the install directory tree -- /usr/local/lib in our case) for libgdiplus.so. Become root and do the following:
# cd /usr/local/lib
# ln -s /usr/lib64/libgdiplus.so.0
# ln -s /usr/lib64/libgdiplus.so.0.0.0
# ln -s /usr/lib64/libgdiplus.so.0.0.0 libgdiplus.so
You will still get a System.DllNotFoundException even after this. The problem is that /usr/local/lib is not in the ls.so.conf.d. So the final steps are:
# cd /etc/ld.so.conf.d
# echo /usr/local/lib > local.conf
# ldconfig
After this KeePass should run and you will hopefully be all set to make your passwords much more secure.
Desktop Setup
Assuming you are using Gnome desktop here's how to add an application menu item to the Applications Menu and optionally to the Panel. First download the KeePass png icon from KeePass icon Put it in the same directory where you unzipped the portable KeePass zipfile. Next install the alacarte menu editor for the Gnome desktop:
# yum install alacarte
You can of course skip that step if you already have alacarte installed. Next -- start (as the desktop user, not root) alacarte
$ alacarte
This will bring up the menu editing window. In the left panel you will see the categories under "Applications". I clicked "Internet", and then press the "+ New Item" button on the right. This will pop up a dialog where you enter the information to start KeePass. Click on the icon button and browse to the png icon. In the "command" field make sure to use the full path to both mono and KeePass.exe. After you are done you should find KeePass in the Applications->Internet menu (or whereever you chose to put it).