libpcre.so.0 problem

Hi all,

I updated my ports tree and recompiled a few (can't name entirely) ports, among these PCRE went from version 8.21_1 to 8.30. With this update (which I ran with portmaster -w) the new library installed in /usr/local/lib/ is libpcre.so.1.

Now, many packages still need the old libpcre.so.0, which is kept in /usr/local/lib/compat/pkg/.

Although the library is there, and ldconfig has knowledge of it (will show you the output in a second), programs cannot find it.

Code:
root@... [/usr/ports/converters] # ldconfig -r | grep pcre
        132:-lpcreposix.0 => /usr/local/lib/libpcreposix.so.0
        190:-lpcre.1 => /usr/local/lib/libpcre.so.1
        270:-lpcrecpp.0 => /usr/local/lib/libpcrecpp.so.0
        518:-lpcre.0 => /usr/local/lib/compat/pkg/libpcre.so.0
root@... [/usr/ports/converters] # emacs
/libexec/ld-elf.so.1: Shared object "libpcre.so.0" not found, required by "libgtk-x11-2.0.so.0"

Since libpcre.so.0 is just a symbolic link to libpcre.so.1 I can _manually_ create a link called libpcre.so.0 in /usr/local/lib, this, though, gets somehow deleted everytime I upgrade a port, so it's not a solution either.

Can anyone help me out?

Best,

~C
 
I had a similar problem today after using portmaster to upgrade PCRE. ImageMagick stopped working with a missing library error libpcre.so.0. I couldn't recompile ImageMagick from the ports because of the same error.

I was able to fix everything with:
Code:
portmaster -r pcre

This recompiled everything that depends on PCRE using the new library version.
 
Hi all,

Thank you for your answer, they are not conclusive.

I did exactly as specified in /usr/ports/UPDATING (portmaster -w devel/pcre) which keeps the libpcre.so.0 in a different folder directory (as stated in my post).

Also, I already tried all 3 of the solutions presented in the linked post (@gkontos). As I already stated in my first post, even if I try the symbolic linking solution it's only temporary as that link is erased when I run portupgrade again.

@twennythree, thank you for your suggestion. Yesterday I already tried that (portupgrade -r pcre) which recompiles all packages dependent on PCRE, this did not solve the issue, though. In my example I posted a sample run (unsuccessful) of emacs, which depends on libgtk-x11-2.0.so.0 which did not get recompiled by portupgrade.

I can supply you with any info you may need to help me out in the following days (I might be away from the server for a day or two).

Thank you!

Best,

~C
 
frijsdijk said:
Also check /usr/ports/UPDATING !

Unfortunately in this case there was a lag. The new pcre port was available for a few hours, then /usr/ports/UPDATING was updated. This caused some people some grief.

For the minimal amount of rebuilding, I've found plg_libchk from sysutils/bsdadminscripts helpful.

The bump from libvpx-0.9.7 to libvpx-1.0.0 was easier to deal with because less ports depend on it, but also because the warning appeared first/concurrently in /usr/ports/UPDATING and all ports that depend on it seem to have been bumped as well.
 
Hi all,

Just an update. By running pkg_libchk as suggested by @jrm I managed to get a listing of all packages requiring libpcre.so.0 and recompiled them, solving the issue.

Thank you a lot, I consider this issue solved now.

Best,

~C
 
Hey, I am having the same problem but I would rather not start compiling ports as I am (at least for the time being) trying to use mainly packages as suggested by one of the threads in here on staying up to date. My main problems with FreeBSD in the past have been faulty ports or dependencies not matching up, etc... Is there anyway to fix this problem without having to resort to compiling ports? It seems a lot of my packages require libpcre and I am unable to find it.

Thanks in advance.
 
Back
Top