Resolving Dependencies

Ramin Rad raminsrad at gmail.com
Thu Jul 14 14:48:16 UTC 2011


That's good info.  But I didn't read in the original message that yum is 
available to Kali.

On 7/14/2011 10:31 AM, Greg_Swift at aotx.uscourts.gov wrote:
> Actually, you want to stick to just the Requires: definitions, this is not
> appropriate work for scriptlets.  A .so.X dependancy is valid, as it is
> something that the package providing it will say it provides.
>
> # yum whatprovides libQtCore.so.4
> Loaded plugins: downloadonly, rhnplugin, security
> Excluding Packages in global exclude list
> Finished
> qt4-4.2.1-1.i386 : The shared library for the Qt GUI toolkit
> Repo        : rhel-x86_64-server-5
> Matched from:
> Other       : libQtCore.so.4
>
> However, you shouldn't have to define these requires, as RPM will usually
> evaluate your code and package to determine most dependancies.
>
> RPM itself will not resolve those dependancies for you, that is where yum
> comes in.  RPM will just tell you what it needs, and you have to go find it
> yourself.  Yum will evaluate the dependancies against all of its available
> packages to find those for you.
>
> Installation of your package will work as long as the following is true:
>
> 1: your package lists its proper requirements
> 2: yum is used to install it
> 3: the system has access to a repository that can meet those requirements.
>
>
> What seems to be happening to you use that you are installing your
> myApplication RPM manually, and it tells you what you need.  Try doing the
> following:
>
> yum install myApplication-1.0-1.x86_64.rpm
>
> -greg
>
> rpm-list-bounces at lists.rpm.org wrote on 07/14/2011 09:17:09 AM:
>
>> The dependencies in RPM are only meaningful when it comes to
>> packages (and virtual resources) that are in the RPM DB.
>>
>> If you say "Requires: libQtCore.so.4", RPM thinks there is another
>> RPM package called libQtCore.so.4 that has to be installed prior to
>> this and it checks its database and it doesn't find it, hence the error.
>>
>> What you really want is file dependency. I am not sure if RPM
>> supports that, but you can simply put something like this in your "%
>> pre" section:
>>
>>
>> ###########
>> %pre
>>
>> if [ ! -e /usr/lib/libQtCore.so.4 ]
>> then
>>    echo "ERROR: /usr/lib/libQtCore.so.4 doesn't exist! Bailing out."
>>    exit 1
>> fi
>>
>> # end of %pre
>> ###########
>>
>> You can write as much script as you want in the %pre section and do
>> all sorts of thing before your package is actually installed.
>>
>> I hope this helps,
>> -ramin
>>
>>
>> On 7/14/2011 10:02 AM, kali c wrote:
>> Hi,
>> I have my application which I want to build a rpm package. The
>> application has some dependencies that has to be installed. It
>> requires few  .so files that has to be present in the application
>> running machine. Say for e.g libQtCore.so.4. The command ldd reveals
>> other dependencies as well. I tried giving those dependencies in the
>> SPEC file under the requires field as Requires: libQtCore.so.4 ....
>>
>> I have also added the liQtCore.so.4 in the %files section with the
>> absolute path. I can build the SPEC file to .rpm without any errors.
>>
>> But I am getting errors regarding those dependencies while installing
> them.
>> Specifically error: Failed dependencies:
>>          libQtCore.so.4 is needed by myApplication-1.0-1.x86_64
>>
>> How I can specify in my SPEC file such that I can install those
>> dependencies even if they are not present in the target system? I
>> need this because not all the dependencies will be available in the
>> target system so that I can specify in some way so that either the
>> entire packages get installed or the required .so files are referred
>> by the application appropriately while installing my application.
>>
>> I am quite new to RPM so sorry if the question is a very basic one.
> _______________________________________________
> Rpm-list mailing list
> Rpm-list at lists.rpm.org
> http://lists.rpm.org/mailman/listinfo/rpm-list
>


More information about the Rpm-list mailing list