On Sun, 15 Dec 2013 17:37:53 +0100
Benjamin Block <[email protected]> wrote:

> Most of the times, when some binary packages on my systems do cause
> something like this, then I just unemerge the package that keeps
> recompiling and emerge it again afterwards. This will cause the
> portage to drop the library-references in question and add new ones.
> 
> So, this should do the trick:
> 
>       emerge -C app-antivirus/avast4workstation
>       emerge -1 app-antivirus/avast4workstation

This will make the message from portage and the old library version go
away, yes. It will also cause the program that used the library
(/opt/avast4workstation/bin/avastgui in OP's case) crash when you try
to run it, due to the old library version not being installed.

The correct solution to this is to add the specific (old) version of the
library to the dependencies (in the ebuild) of the (binary) package that
uses it. This will prevent an upgrade that uninstalls the old library
version. Sometimes the maintainer of the library will add a slotted
version of it, so that non-binary users of it do not have to use the
outdated version.

If the binary package is not an ebuild, you can manually add the newer
library version to package.mask, or make sure that the slot for the
older version is installed if the library is slotted.

Better yet (in all cases), get a more recent version of the binary
package that is built against the newer version of the library.
Complain to the vendor if none is available :-)

The preserve-libs feature in portage is intended to let things keep on
working short-term for source-distributed packages. In that case, the
currently installed program is linked against the old library version,
and when the program is rebuilt (with @preserved-rebuild) it will be
linked against the newer version.

-- 
eroen

Attachment: signature.asc
Description: PGP signature

Reply via email to