Ask Your Question
0

where is installed library (libbz2.so.1)

asked 2012-05-16 16:26:03 -0500

netnitzky gravatar image

updated 2014-09-30 09:16:04 -0500

mether gravatar image

Hi, I'm installing OpenCV using ccmake. Firstly the problem was that libbz2.so* libraries was inproper (error: wrong format) thus I installed better ones:

yum install ./bzip2-1.0.6-3.fc16.x86_64.rpm  ./bzip2-devel-1.0.6-3.fc16.x86_64.rpm ./bzip2-libs-1.0.6-3.fc16.x86_64.rpm --setopt=protected_multilib=false

And it was simple progress (no "wrong format" error), but another trouble came.

 make[2]: *** No rule to make target `/lib/libbz2.so.1', needed by `lib/libopencv_highgui.so.2.4.0'.  Stop.
    make[1]: *** [modules/highgui/CMakeFiles/opencv_highgui.dir/all] Error 2

I don't know where these libraries are placed. How could I get to know? How to fix this problem? I suppose i should locate this libraries in /usr/lib, or just create symbolic links.

Thanks for help!

edit retag flag offensive close merge delete

4 Answers

Sort by ยป oldest newest most voted
2

answered 2012-05-17 01:08:42 -0500

ztank1013 gravatar image

Just use yum provides to get the name of the missing pachage. Run

yum provides /lib/libbz2.so.1

and you'll get something like this:

bzip2-libs-1.0.6-3.fc15.i686 : Libraries for applications using bzip2
Repo        : fedora
Matched from:
Filename    : /lib/libbz2.so.1

So what you relly need to install is the mentioned package

bzip2-libs

Run

sudo yum install bzip2-libs-1.0.6-3 -y

and you are done!

If you have further dependencies faliures when you'll re-run make you can go through the same steps (using yum provides) again until the make runs successfully.

edit flag offensive delete link more

Comments

provides is easily one of the best dnf or yum features!

fossum.eric gravatar imagefossum.eric ( 2015-08-05 17:35:23 -0500 )edit
0

answered 2012-05-16 18:29:16 -0500

HoboPrimate gravatar image

You can use locate, which is faster than find to find your file:

locate filename

this will match files which contain 'filename' in their name. If it wasn't found, you may want to shorten the search term to get more results. locate depends on the freshness of a daily updated database of files in the system, so you may want to try updating using:

su -c 'updatedb'

and trying locate again

Of course, there's the method of crawling through the entire filesystem which takes longer:

su -c 'find / -name filename'

but in this case it will only match files with the exact name 'filename'. You can use wildcards like:

su -c 'find / -name filename*'

for example, to find files which begin with 'filename'.

Anyway, this is the process I usually go through, because most times locate finds what I need. And at least I've helped with the first part of your question :)

edit flag offensive delete link more
0

answered 2012-05-20 05:30:37 -0500

FranciscoD_ gravatar image

Uhm:

[root@ankur ~]# repoquery *opencv*
opencv-0:2.3.1-8.fc17.i686
opencv-0:2.3.1-8.fc17.x86_64
opencv-devel-0:2.3.1-8.fc17.i686
opencv-devel-0:2.3.1-8.fc17.x86_64
opencv-devel-docs-0:2.3.1-8.fc17.noarch
opencv-python-0:2.3.1-8.fc17.x86_64
[root@ankur ~]#

So,

yum install opencv

is all you need to install it. Is there a reason you're trying to install from source?

edit flag offensive delete link more
0

answered 2014-06-04 14:06:13 -0500

If you still have problems, you can create a symbolic link.

In my case the following worked

sudo ln -s /usr/lib64/libbz2.so.1 /lib/libbz2.so.1

cheers

edit flag offensive delete link more

Comments

x86_64 and i686 libraries are different. This isn't a good idea.

randomuser gravatar imagerandomuser ( 2014-06-04 14:16:12 -0500 )edit

Question Tools

Stats

Asked: 2012-05-16 16:26:03 -0500

Seen: 22,156 times

Last updated: Jun 04 '14