Description of problem: yum does not have support for custom installation directory (--installroot is for something else); most other installation tools, such as InstallSheild on Windows and GNU's "./configure; make; make install;" procedure support custom installation directory. Version-Release number of selected component (if applicable): N/A How reproducible: As per discussion in bug-report https://bugzilla.redhat.com/show_bug.cgi?id=682396 , yum's --installroot feature is _not_ for performing custom installations. GNU's build and installation procedure, viz., "configure ; make; make install" supports installation in a custom directory via the --prefix option to configure: > By default, `make install' will install all the files in > `/usr/local/bin', `/usr/local/lib' etc. You can specify > an installation prefix other than `/usr/local' using > `--prefix', for instance `--prefix=$HOME'. Almost all graphical installation tools on Windows, such as those based on install sheild, offer the user to choose a custom installation location. It would be good if yum supported a similar feature. Additional info:
yum isn't the same kind of tool as those other tools. It doesn't handle local/specific locations for file installs. It uses rpm to install them in the location given in the rpm spec file. ;
To expand: A long time ago rpm create a feature called --relocate ... which kind of does what you want, but there are problems: 1. The packages have to support it, and basically zero rpm packages do so. 2. Nothing can _depend_ on any package that supports relocation, if one were to be created. For example if pkgFOO depends on bash, so it can run /bin/bash, but bash is installed to /opt/bash then pkgFOO will install fine but not work. ...for both of these reasons yum doesn't support relocate, and it is deprecated from rpm as well.
Thanks for presenting RedHat's views; I think I understand it. Regarding (2), after using configure's --prefix option, and after using InstallSheild's installation directory feature, the user is expected to update his PATH and LD_LIBRARY_PATH environment variable. As a specific example, after installing gcc with yum's --installroot option, I modified the softlinks associated with ld and updated my PATH and LD_LIBRARY_PATH in .bashrc (I had also installed kernel-headers and kernel-devel with yum's --installroot option) -- and was able to compile Broadcom's sources for wireless driver -- and the wireless network worked with the newly build drivers -- on Fedora14 on LiveUSB of size 1G and Dell laptop; all the steps are listed here: http://lists.fedoraproject.org/pipermail/users/2011-March/393281.html As a specific example on Windows, ActiveState allows uses to install perl in any directory, and they update the environment variables at the end of the installation process.