Red Hat Bugzilla – Bug 41171
/var/tmp /var/run rpm failes to install apache
Last modified: 2007-04-18 12:33:18 EDT
From Bugzilla Helper:
User-Agent: Mozilla/4.77 [en] (X11; U; Linux 2.2.17-15 alpha)
Description of problem:
trying to install the apache from the rpm tends to do nothing until the
directories /var/tmp and /var/run are created. This is a chroot'd system i
am trying to build from scratch. so without these directories I get no
error messages, and no apache. :-/
Steps to Reproduce:
1. i suppose remove /var/tmp & /var/run
2.rpm -U apache.........
Expected Results: should have expected an error message, rather than
silence on the missing directories.
How are you installing apache in a changeroot? If you've disabled
dependency checks with --nodeps or are you using --force, that's
the problem. There's more to setting up a chroot than installing a
package, you need to install the filesystem package to create
/var/tmp for example...
I have no doubt that is correct, that /var/tmp, and /var/run should be there in
the "chroot'd", as well as a host of all sorts of other files ( libraries, rpm,
perl, grep, bzip2, and on and on and on! ) A lot of the necessary 'apache'
dependencies were installed. Some with --nodeps. I dont think many with
--force. ( BTW all RPM's of the dependent packages was installed in the
But rpm -i apache... would just not install. No error messages, no warnings -
nada. --force did nothing, and -vv did not show anything unusual. I think that
there was some other pkg that also did nothing. The only time i really know if
the pkg is installed, is if i repeat the rpm command, and it tells me the pkg is
Since the whole purpose was to install apache on its own chroot'd directory, I
needed to figure out why it is failing to do so. Installed strace, and saw that
rpm failed to open /var/tmp & /var/run. Created these directories, and away rpm
So were are the error messages from rpm ? I would think that for the case of
installing apache, that the refusal to do so was because /var/run || /var/tmp ||
both was not there. An error message would have been appropriate ( certainly on
the -vv switch listing there shudda been an error message !)
Complaining about lack of error messages when you have installed some
packages with --nodeps does not make much sense IMHO, you've turned
off whatever error messages were already there to warn you of a problem.
You need to create your chroot using a manifest of packages to be installed.
Attempt to install all the packages together *without* --nodeps, add packages
to the manifest until you have everything needed to create an apache chroot.
I think you are confused about the purpose of the nodeps message. I think that
the purpose of the --nodeps feature is to (attempt) install the package
irrespective of the lack of dependencies. The purpose of --force is to force it
to install it even if there is a copy allready installed. The --nodeps is just
not an equivalent to --quiet || --really-really-quiet ( if there was such
There seems to be 2 issues here.
1) dependencies in order for apache to be installed
2) dependencies in order for apache fo be run.
My issue is with #1. Here RPM is clearly in control, and has knowlege that the
package failed to install because of a missing part ( maybe it couldnt execute
rm, chdir, or find /var/tmp or find /really/really/obscure/file.needed). There
are no error messages. There is no feature to print out the rpm/pkg script (
with system responses) as it goes along.
Some folks like to add a -x to the shell script to see why the shell script
(silently) fails to do anything. It is not yet clear to me wether rpm needs
/var/tmp,/var/run or the apache rpm needs it. But an equiv -x feature would
readily point out the /var/tmp || /var/run file is missing. Some means of
addressing the failure, or informing the installer ( maybe with -vvvv ) would be
Yes, there are two issues, but it doesn't matter same the same mechanism
is used (i.e. dependencies) to track pre-requisites in both cases. So, unless
you have installed all the pre-requisite packages (i.e. filesystem package
which includes /var/tmp), a later package will not install correctly, in this
case brecause rpm requires /var/tmp to create and run scripts. BTW later
versions of rpm automagically create whatever is configured as the %_tmppath
directory, you appear to be running an older version of rpm.
Have you tried building your chroot from a manifest as suggested?
Presumably reinstallin a more complete set of packages from a manifest
"works" for you. Reopen this bug if I'm wrong ...