RE : Failed dependencies on /usr

"ELASRI Patrice SOFRECOM" <[email protected]>
Newsgroups gmane.linux.redhat.rpm.general
Message-ID <8F97125A217C9A4E919BA0B9121C2479A81726@PUEXCBC0.nanterre.francetelecom.fr>
 

 

-----Message d'origine-----
De : [email protected] [mailto:[email protected]] 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 <[email protected]> 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 <[email protected]> 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

_______________________________________________
Rpm-list mailing list
[email protected]
https://www.redhat.com/mailman/listinfo/rpm-list
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.