# libpcre.so.0 problem



## marforic (Feb 16, 2012)

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.


```
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


----------



## twennythree (Feb 16, 2012)

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:

```
portmaster -r pcre
```

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


----------



## frijsdijk (Feb 16, 2012)

Also check /usr/ports/UPDATING!


----------



## twennythree (Feb 16, 2012)

frijsdijk said:
			
		

> Also check /usr/ports/UPDATING !



Good point, it sounds like the safer way to upgrade.


----------



## gkontos (Feb 16, 2012)

Please see this thread for solutions.


----------



## marforic (Feb 16, 2012)

Hi all,

*T*hank 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


----------



## jrm@ (Feb 16, 2012)

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.


----------



## wblock@ (Feb 16, 2012)

Note also that net/avahi-app will not build if an old version is still installed.  So it requires a bit of a leap: deinstall it, then hope that it will build.  I tested this, and it does seem to work, but in the meantime I modified the only port I had left that used avahi, so it wasn't much of a test.


----------



## marforic (Feb 18, 2012)

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


----------



## adriftinitland (Mar 21, 2012)

I did the same thing and this worked for me.


> 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.


----------



## Grell (Mar 24, 2012)

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.


----------



## Ievgen (May 17, 2012)

wblock@ said:
			
		

> Note also that net/avahi-app will not build if an old version is still installed.  So it requires a bit of a leap: deinstall it, then hope that it will build.  I tested this, and it does seem to work, but in the meantime I modified the only port I had left that used avahi, so it wasn't much of a test.



I've just tested it, yes this way works. Many thanks.


----------

