Ubuntu – Couldn’t find any package by regex libstdc++.so.5 libexpat.so.0 in 32-bit ubuntu 12.04

12.04aptc

While installing a software wink, I got stdc++ and lib expat packages not found.

prayag@prayag:~/wink$ ./installer.sh 

Wink requires that the following packages be installed to run properly. Please install them and try again.

libstdc++.so.5 libexpat.so.0

Then I tried installing above packages via apt-get, but am getting

 prayag@prayag:~/wink$ sudo apt-get install libstdc++.so.5
 Reading package lists... Done
 Building dependency tree       
 Reading state information... Done
 E: Unable to locate package libstdc++.so.5
 E: Couldn't find any package by regex 'libstdc++.so.5'



 prayag@prayag:~/wink$ sudo apt-get install libexpat.so.0 
 Reading package lists... Done 
 Building dependency tree  
 Reading state information... Done 
 E: Unable to locate package libexpat.so.0 
 E: Couldn't find any package by regex 'libexpat.so.0'

How can I get them in 32-bit ubuntu and make the wink installation move on.

Update : As suggested by @Salem, I did

prayag@prayag:~/wink$ sudo apt-get install apt-file
prayag@prayag:~/wink$ apt-file update

## libstdc++
prayag@prayag:~/wink$ apt-file search libstdc++.so.5
libstdc++5: /usr/lib/i386-linux-gnu/libstdc++.so.5
libstdc++5: /usr/lib/i386-linux-gnu/libstdc++.so.5.0.7

prayag@prayag:~/wink$ sudo apt-get install libstdc++5

Similarly I installed libexpat1 and libexpat1-dev.

prayag@prayag:~/wink$ apt-file search libexpat.so
lib64expat1: /usr/lib64/libexpat.so.1
lib64expat1: /usr/lib64/libexpat.so.1.5.2
lib64expat1-dev: /usr/lib64/libexpat.so
libexpat1: /lib/i386-linux-gnu/libexpat.so.1
libexpat1: /lib/i386-linux-gnu/libexpat.so.1.5.2
libexpat1-dev: /usr/lib/i386-linux-gnu/libexpat.so

prayag@prayag:~/wink$ sudo apt-get install libexpat1
prayag@prayag:~/wink$ sudo apt-get install libexpat1-dev

Still wink installer telling me :

prayag@prayag:~/wink$ ./installer.sh 

Wink requires that the following packages be installed to run properly. Please install them and try again.

libexpat.so.0

Best Answer

The Wink error is not very clear, because those are files it needs and not packages you need to install.

Whenever you get some error like "I can't find randomfile.so" you can use apt-file to search for a package that provides it. If you dont have it already you can install it using sudo apt-get install apt-file.

Note

As I am using a 64-bit system, you should get different results from mine. So where I get x86_64-linux-gnu you should get i386-linux-gnu, and you should replace it in each of the commands bellow

In your case I get the following:

$ apt-file search libstdc++.so.5
libstdc++5: /usr/lib/x86_64-linux-gnu/libstdc++.so.5
libstdc++5: /usr/lib/x86_64-linux-gnu/libstdc++.so.5.0.7

So you need to install libstdc++5 package to get that file.

Regarding the second one, there is no exact match on my system:

$ apt-file search libexpat.so
libexpat1: /lib/x86_64-linux-gnu/libexpat.so.1
libexpat1: /lib/x86_64-linux-gnu/libexpat.so.1.5.2
libexpat1-dev: /usr/lib/x86_64-linux-gnu/libexpat.so

So you can try to install libexpat1 and libexpat1-dev and see if Wink accepts it. If not you can try to create a symlink to that file (in a 32-bit system change the path as described above).

$ sudo ln -s /usr/lib/x86_64-linux-gnu/libexpat.so /usr/lib/x86_64-linux-gnu/libexpat.so.0

Please note that this can not work at all or make Wink not work as expected, because you will be using a different version of the library it requires. In the case it does not work you should remove the created symlink:

$ sudo rm /usr/lib/x86_64-linux-gnu/libexpat.so.0
Related Question