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@xxxxxxxxxxxxxxxxx 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@xxxxxxxxxxxxx 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@xxxxxxxxxxxxx
http://lists.rpm.org/mailman/listinfo/rpm-list
_______________________________________________
Rpm-list mailing list
Rpm-list@xxxxxxxxxxxxx
http://lists.rpm.org/mailman/listinfo/rpm-list