I currently have an RPM file with 2-3 dependencies specified in the 'Requires' section. When this application is installed using yum, it works fine and the dependencies are installed if they are missing.

However, I've learned there may be a need to install this application on machines with no network access. So everything needs to be included in the install package.

Am I better off trying to use an off the shelf installer (izPack, etc) or is there a way to bundle everything up and still use RPM/Yum. I'd prefer to stick with the latter solution.

I'm assuming just packaging all RPMS in a directory and running rpm -Uhv on them will suit the purpose, but it seems pretty rough and would make for a sloppy uninstall.

Is it possible to, in my my RPM spec file, create a temporary yum repo that includes anything that may be required at install time. Then clean up that repo when things are finished? Sounds bizarre, but who knows? Any other obvious solutions I'm missing?


1 Answer 1


The yum-utils package contains repoquery, which will answer your question with:

repoquery --requires --recursive --resolve <your packages here>

Note that this lists all packages required, down to glibc and friends, you'd need to prune those before launching your wget (or yumdownloader) to suck the herd down. After you have the set, createrepo will create a local repository with all this stuff, that you should be able to stash into a pendrive (or even a CD/DVD, but check that you can use the repo from there!) and use that to install/update your victims.

BTW, this is Fedora 16, yum-utils-1.1.31-2.fc16.noarch; it might be that previous versions didn't have the --recursive flag, in which case you'll have to whip up a script doing the recursion bit.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .