Thursday, 10 December 2009

Shelling out on Ubuntu 9.10 ( Karmic Koala )

Having not really had a chance to do much with Ubuntu recently ( mainly since I crossed over to the Cupertino side with the absolutely awesome Apple Macbook Pro and OSX ), I've got back into the game recently, as I build a play/dev. box on my trusty old 2007-AE7 Thinkpad T60p.

I installed Ubuntu 9.10 Karmic Koala on the beast the other week, and have most recently installed: -

Lotus Mobile Connect 6.1.3.0-1.3
DB2 UDB 9.1.0.5
Lotus Domino 8.5.1
Tivoli Directory Integrator 6.1.1 FP7

( appreciating that all/most of the above are completely UNSUPPORTED by IBM on Ubuntu )

The reason for this is that I'm trying to crack a problem with TDI whereby I want to bring users who are members of a Domino group into Lotus Connections 2.5 via TDI. This doesn't work out of the box, mainly due to the way that Domino groups work when exposed via LDAP.

Therefore, I needed to create a custom TDI Assembly Line, which I've now done. My AL populates a file called collect.dns.

Once the AL has done the job of pulling the users from the group, I then need it to populate those same users into Connections, via the underlying Profiles database.

Rather than reinventing the wheel, I need my AL to call one of the Connections Wizard's underlying scripts - populate_from_dn_file.sh - which takes the contents of the aforementioned collect.dns file and posts it into the Profiles DB.

In order to have my AL call the existing script, I needed to use the Command Line Collector.

However, when I tried to validate that the populate_from_dn_file.sh script worked ( outside TDI ), I got the following error: -

./tdienv.sh: 4: [[: not found
./tdienv.sh: 7: [[: not found
./tdienv.sh: 10: [[: not found
./populate_from_dn_file.sh: 10: [[: not found
./populate_from_dn_file.sh: 14: [[: not found
./populate_from_dn_file.sh: 18: [[: not found

After a quick Google, I discovered that the problem is that the TDI scripts use the SH shell which, for some weird reason on Ubuntu, is actually linked to the /bin/dash shell.

Obvious, heh ? NOT !

The solution ?

sudo mv /bin/sh /bin/sh.bak
sudo ln -s /bin/bash /bin/sh

In essence, we backup the old version of /bin/sh and replace it with a version that links to /bin/bash.

Nice one !

I'll post more on the TDI hacking once I've got it working properly, and tested :-)


2 comments:

Anthony Holmes said...

Did you need to do anything special to install Lotus Mobile Connect? (From memory it was necessary to do some hacking/install extra libraries) to get it working with previous releases of Ubuntu.)

Dave Hay said...

Anthony, nope, it's far more straightforward now than it used to be in the past.

There has been a lot of work done internally within the company to package up apps. such as LMC as DEB files, and we've also developed an internal Ubuntu repository, meaning that apps. can be installed via Synaptic.

As far as I can recall, Ubuntu is NOT a supported client platform, as per: -

http://www-01.ibm.com/support/docview.wss?&uid=swg27015201

but it does work.