-----Message d'origine-----
De : rpm-list-***@redhat.com [mailto:rpm-list-***@redhat.com] De la part de Jeff Johnson
Envoyé : mardi 8 janvier 2008 15:01
À : RPM Package Manager
Objet : Re: Failed dependencies on /usr
On Jan 8, 2008 8:26 AM, ELASRI Patrice SOFRECOM <***@sofrecom.com> wrote:
Hi,
I have built a package located by default under /usr/local.
When I try to install it, I'm returned the following error :
$ rpm -U sof-u-2.1.2-1.noarch.rpm
error: Failed dependencies:
/usr is needed by sof-u-2.1.2-1.noarch
If I relocate the package, I'm returned the following error, with dependencies on original paths :
$ rpm -U --define "_autorelocate_path %{nil}" --prefix /usr/local/sofrecom sof-u-2.1.2-1.noarch.rpm
error: Failed dependencies:
/usr is needed by sof-u-2.1.2-1.noarch
/usr/local is needed by sof-u-2.1.2-1.noarch
/usr/local/etc is needed by sof-u-2.1.2-1.noarch
...
In rpm-4.4.7 and later, every file depends on its parent directory.
All of the dependency failures you are seeing are parent directories
that aren't packaged.
There is a --noparentdirs that disables the dependencies on parent
directories.
Another easy persistent fix for your specific problem(s) is
mkdir -p /etc/rpm/sysinfo
echo "/usr" >> /etc/rpm/sysinfoDirnames
echo "/usr/local" >> /etc/rpm/sysinfo/Dirnames
echo "/usr/local/etc" >> /etc/rpm/sysinfo/Dirnames
...
Thanks for these information. Is there a document which talks about it ?
I tried the -noparentdirs option and it works fine.
There is also ( in 4.4.7+?, I fergit) a --orphandirs popt alias that will
display all directories that are not packaged:
rpm -Va --nofiles --orphandirs
that should generate a sort'd uniq'd list of directories that are not packaged.
The _autorelocate_path macro setting is necessary. Otherwise, the package is installed under /emul/noarch-hpux11.23 !!!
I'm using rpm 4.4.7 which I have built on HPUX 11.23 / ia64. The RPM database was initialised with a pseudo package providing usual interpreters ( /bin/sh, /bin/ksh, /bin/perl, ... ).
Ah ia64 multilib.
Expect some problems is all that I can say. The implementation of multilib on ia64
in rpm was done in like 8 hours on a borrowed ia64 developer's box and has never been
properly QA'd to my knowledge.
I'm not so aware about the rpm developments ; I'm just an rpm user. What do you means by multilib ?
About the _autorelocate_path macro setting, I noticed that this one is mandatory when the -prefix option is used, what ever the package architecture. Otherwise, the package is installed under /emul/noarch-hpux11.23, or even under /emul/ia64-hpux11.23 for the architecture dependents packages built on ia64.
SELinux, in particular, is likely to be extremely weird on a multilib/ia64 box
because of the /emul/noarch-hpux11.23 prefix breaking the lookup of
file contexts from SELinux configuration.
I'll be happy to help you sort out any/all multilib/ia64.
Likely <rpm-***@rpm5.org> is a better place to report issues, as only the few & the brave are attempting HP-UX multilib/ia64 relocated installs with rpm-4.4.7+.
If you are interested on, I can report you what I did for building and installing RPM on HP-UX.
73 de Jeff