[arch-general] pacman's "Depends On"
Rodrigo Rivas
rodrigorivascosta at gmail.com
Sat Apr 25 08:01:57 UTC 2015
On Fri, Apr 24, 2015 at 8:06 AM, Ralf Mardorf
<ralf.mardorf at rocketmail.com> wrote:
> On Fri, 24 Apr 2015 06:41:27 +0200, Ralf Mardorf wrote:
>>On Thu, 23 Apr 2015 22:56:56 +0300, Jesse Jaara wrote:
>>>What you need to do is to create a custom package for the specific
>>>version of libvpx that doesn't conflict with the one from repo, so you
>>>can have both the new version for repo packages and the old version
>>>for whatever reason
>>
>>Yes, I was thinking of simply installing the new package and copying
>>/usr/lib/libvpx.so.1.3.0
>>from a backup and add the links
>>/usr/lib/libvpx.so.1
>>/usr/lib/libvpx.so.1.3
>>manually, instead of building a package for the old version.
>>
>>However, I can't do this for
>>/usr/lib/libvpx.so
>>and the bins, that perhaps aren't needed from the old package.
>
> It works :).
This is because of the so called SONAME. That is the name in a shared
library that will be to look for it when it is used in a program.
Usually, in standard linux packages the SONAME of a shared library
includes only the major version number.
For example, with the latest version:
$ objdump -p /usr/lib/libvpx.so | grep SONAME
SONAME libvpx.so.2
And with an old one, I assume:
$ objdump -p /usr/lib/libvpx.so.1.3.0 | grep SONAME
SONAME libvpx.so.1
You can check the SONAME used by VirtualBox with this command:
$ objdump -p /usr/lib/virtualbox/components/VBoxC.so | grep vpx
NEEDED libvpx.so.2
And check whether the file is found with:
$ ldd /usr/lib/virtualbox/components/VBoxC.so | grep libvpx
libvpx.so.2 => /usr/lib/libvpx.so.2 (0x00007f095d9e8000)
The bottom line is that if the conflict is between different major
version of the library, no problem: just copy "libvpx.so.1" to
/usr/lib/ or /usr/local/lib/.
The "libvpx.so" symbolic link exists because it will be the library
name used to build new programs, but it is not needed in runtime.
HTH
--
Rodrigo
More information about the arch-general
mailing list