Monday, July 22, 2013

Installing Old Libraries on Ubuntu

As a Design Services company, we quite often will have to support an old project for a customer that was implemented in an old version of the tools.  This typically requires us to install older versions of the tools when the customer doesn't want to update the design to the new tools for some reason.

I recently had to support a project that was originally implemented in Xilinx ISE v9.1.  Installing this on Ubuntu Server 11.04 64-bit required some extra effort.

When attempting to install Xilinx ISE v9.1 tools on the Builder box (Ubuntu Server 11.04), I received the following error when attempting to run the installer.
/home/builder/ISE_DVD_J.30.5.0/bin/lin64/setup: error while loading shared libraries: cannot open shared object file: No such file or directory
So what’s installed?
$ dpkg --get-selections | grep libstdc++
Ah. Okay, so we need to install libstdc++5.
$ sudo apt-get install libstdc++5
$ dpkg --get-selections | grep libstdc++
libstdc++5 install
libstdc++6 install

$ dpkg -L libstdc++5

$ ll /usr/lib/libstdc++*
lrwxrwxrwx 1 root root 18 2013-03-26 14:03 /usr/lib/ ->
-rw-r--r-- 1 root root 829320 2011-02-19 11:01 /usr/lib/

One thing to make note of – if the applications are old enough to have this problem, they will likely have problems with other libraries such as libXm from the libmotif package. In this case, the compxlib tool required from libmotif3, but later versions of Ubuntu have libmotif4 in the repos. The easiest workaround is to install libmotif4 and sym link the library:
$ sudo apt-get install libmotif4
$ ln -s /usr/lib/ /usr/lib/

No comments:

Post a Comment