shared library "pcre.0" does not exist

Lames

New Member


Messages: 10

Hi,

I'm running freebsd FreeBSD 8.2.

I made a mistake when I updated my port devel/pcre, I did not preserve its old shared library before updating (with portmaster -w devel/pcre).

PCRE is updating in pcre-8.30 but php52-pcre-5.2.17_7 needs shared library pcre.0.

Code:
===>   Compressing manual pages for pcre-8.30
===>   Running ldconfig
/sbin/ldconfig -m /usr/local/lib
===>   Registering installation for pcre-8.30
===>   Returning to build of php52-pcre-5.2.17_7
Error: shared library "pcre.0" does not exist
*** Error code 1
How could I recover this library pcre.0?
 

DutchDaemon

Administrator
Staff member
Administrator
Moderator
Developer

Reaction score: 2,841
Messages: 11,319

Options:
  • Check whether portmaster created a backup package, which should be located in /usr/ports/packages/portmaster-backup as pcre-8.21_1.tbz. If it exists, pkg_delete the installed PCRE, and reinstall this package, and then use the proper portmaster -w command to upgrade PCRE. This will place the old pcre.0 as /usr/local/lib/compat/pkg/libpcre.so.0.
  • The binary package for the older version of PCRE is still available via [cmd=]pkg_add -r pcre-8.21_1[/cmd]. You can pkg_delete the new version, and then revert back to this package. Then upgrade using portmaster -w, as above.
  • Last option, and this is not the way you should be doing it, but you could get away with linking the old library to the new one. As I understand it from /usr/ports/UPDATING all dependent ports will be updated to point to the new library in the near future, so you may be able to keep working in the meantime by [cmd=]cd /usr/local/lib && ln -s libpcre.so.1 libpcre.so.0[/cmd] This may or may not lead to errors. Note that you should make a note of this and remove the link when all dependent packages are upgraded to use the new PCRE. Again: last option, try the previous ones first.
 
OP
OP
L

Lames

New Member


Messages: 10

Probleme dependecies

Hi,

I choose the first option, I have a backup of pcre-8.21_1.tbz.

I have deleted pcre-8.30 whith
Code:
cd /usr/ports/devel/pcre
make deinstall
and
pkg_delete pcre-8.30
then I update PCRE with /usr/port/UPDATING recommendation.

Code:
portmaster -w devel/pcre
but my librairy is unchanged.

Code:
ll /usr/local/lib/compat/pkg/libpcre.so.0 368244 Feb  9 12:00
and php52-pcre-5.2.17_7 always claims pcre.0.

Code:
===>   Registering installation for pcre-8.30
===>   Returning to build of php52-pcre-5.2.17_7
Error: shared library "pcre.0" does not exist
 
OP
OP
L

Lames

New Member


Messages: 10

pcre-8.30 undeleted

Code:
pkg_delete pcre-8.30
pkg_delete: package 'pcre-8.30' is required by these other packages
and may not be deinstalled:
cairo-1.10.2_3,1
gamin-0.1.10_4
gio-fam-backend-2.28.8
glib-2.28.8_4
gobject-introspection-0.10.8
libslang2-2.2.4_1
mc-4.7.5.5_1
munin-master-1.4.6
nginx-1.0.12_1,1
pango-1.28.4
pear-Auth_SASL-1.0.6
pear-Mail-1.2.0,1
pear-Net_SMTP-1.6.1
pear-Net_Socket-1.0.10
php52-dom-5.2.17_6
php52-filter-5.2.17_6
php52-mysqli-5.2.17_6
php52-spl-5.2.17_6
postfix-2.9.0_1,1
rrdtool-1.4.5
thaks a lot for your help
 

gkontos

Daemon

Reaction score: 482
Messages: 2,155

You missed the part where you have to reinstall pcre-8.21_1.tbz before upgrading.
 
OP
OP
L

Lames

New Member


Messages: 10

[SOLVED]: shared library pcre.0

Thanks a lot DutchDaemon and gkontos, I'm updating my port tree, lang/php52 need to be updated.

Then, I update my port.

(could you close my ticket, I don't find the command)
 

sowosammerneger

New Member


Messages: 1

DutchDaemon said:
Options:
  • Last option, and this is not the way you should be doing it, but you could get away with linking the old library to the new one. As I understand it from /usr/ports/UPDATING all dependent ports will be updated to point to the new library in the near future, so you may be able to keep working in the meantime by [cmd=]cd /usr/local/lib && ln -s libpcre.so.1 libpcre.so.0[/cmd] This may or may not lead to errors. Note that you should make a note of this and remove the link when all dependent packages are upgraded to use the new PCRE. Again: last option, try the previous ones first.
Just at the moment, we can't build ImagMagick, because of the missing libpcre.so.0. Creating this link fixes it. Thanks for that, even if it is a dirty way to do the job. :stud
 

fmw

Active Member

Reaction score: 2
Messages: 112

I just proceeded according to /usr/ports/UPDATING, and so far everything seems to work. Now of course, this brings up a few questions:

1. Is there any way to find out which applications still use the old library?
2. How do the applications know they're supposed to use the old one?

Thanks,
Frank,
"ein Auto das nicht fährt ouououououououuouououou" :)
 

kpa

Beastie's Twin

Reaction score: 1,810
Messages: 6,318

1. [pman]pkg_libchk[/pman] in sysutils/bsdadminscripts to find out missing libraries, ldd(1) to see what libraries are used.

2. The library and the version they are using is set to stone at time of linking of the application.
 

Uniballer

Well-Known Member

Reaction score: 63
Messages: 337

Unfortunately, today showed what I think is the major weakness of the current ports system: I removed all ports/packages on an 8-stable system and attempted to rebuild it with portmaster (--packages-if-newer). Gnome2 wouldn't install because some things needed the pcre.0 library. So I tried to build everything from source, and Gnome2 wouldn't build for a different reason (can't remember what it was). So if I didn't have a set of packages I built a while ago I would have been dead in the water. Maybe I could have gotten the ports tree distributed with 9.0-RELEASE and built from that.

Everybody agrees that you can't use HEAD for production, but that is the situation we have with the ports tree. Perhaps something as simple as making snapshots of the ports tree available would help. Having a "known good" snapshot to roll back to when there are problems would be awesome.
 

jb_fvwm2

Daemon

Reaction score: 184
Messages: 1,697

I exited the /pcre upgrade with a tidy set of very long cli including /portmaster, that will save many hours monthly upgrading ports across several machines. So while it may be a difficulty (you may encounter it in a /gettext/ upgrade, for example, if one preplans enough it could be easy as anything, relatively speaking. (Albeit with shell scripting tricks learned from this and the other relevant forum.)
 

cabriofahrer

Active Member

Reaction score: 9
Messages: 185

Well, are the 9-stable-packages compiled for the new pcre by now? Or how do we learn when they will be?
 

jb_fvwm2

Daemon

Reaction score: 184
Messages: 1,697

Code:
ncftp ftp://ftp.freebsd.org/pub/FreeBSD/ports/i386/packages-9-stable/devel 
devel> get pcre- [tab]
It shows pcre-8.30_1.tbz as there. So one can download it today.
 
Top