Take the 2-minute tour ×
Server Fault is a question and answer site for system and network administrators. It's 100% free, no registration required.

I am looking for a way to have yum install only dependencies for a given package, something like an --prepare-for-install option so I can take a snapshot of the prepared system and test the rpm setup with different options or rebuilds of the package itself on a clean system without having to rely on the rpm uninstall and without downloading the dependencies each time.

share|improve this question
1  
You want to not install the package? That doesn't make a whole lot of sense. What are you really trying to do? –  Michael Hampton Sep 17 '12 at 16:27
1  
Hi @Michael, the purpose of not installing the package seems clear to me from the text: preparing a system for package testing. –  a1an Sep 17 '12 at 21:02
    
Right, that's why it doesn't make any sense. –  Michael Hampton Sep 17 '12 at 21:34
    
Letting aside the constructiveness of discussing what makes sense to whom, how do you test the rpm you develop then? –  a1an Sep 18 '12 at 7:56

3 Answers 3

up vote 5 down vote accepted

This might be really dumb but it should work.

PACKAGE=awstats
yum deplist $PACKAGE | grep provider | awk '{print $2}' | sort | uniq | grep -v $PACKAGE | sed ':a;N;$!ba;s/\n/ /g' | xargs yum -y install
share|improve this answer
    
Works like a charm, who said dumb isn't good :) Would you explain the :a;N;$!ba; part of the sed command for completeness? Thanks –  a1an Sep 18 '12 at 10:30
    
I honestly don't know, but I pulled it from here, stackoverflow.com/a/1252191 –  ablackhat Sep 18 '12 at 17:35
    
Ok, +1 to him also then –  a1an Sep 19 '12 at 8:10
yum install $(repoquery --requires <package>)
share|improve this answer
    
Note that this doesn't account for providers. For instance, I have git18 which provides git; the above command attempts to install git as a dependency anyway. –  Aaron Adams Nov 30 '13 at 17:53

Best option I found until now for my packages is to put an "exit 1" into the %pre scriptlet the first time the package is built but I'm looking for cleaner options, not requiring modification of the package itself.

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.