It’s good that my head is far enough away from my desk that I cannot easily smash it against the desk.
Yumdownloader is “a program for downloading RPMs from Yum repositories.”
Sounds simple enough. You give it a package name, and it should download the RPM for you. It also has an argument “–resolve” that will resolve the dependencies of that package and download those too. Logically, this argument should always behave the same. Take package, resolve dependencies of package, download them all.
Oh ho ho. You forgot that yumdownloader violates the Principle of Least Astonishment. In other words, as this comic so eloquently puts it
!(Go fuck yourself)[http://caphrim.net/tim/wp-content/uploads/2012/02/44fd386b44cf549456318650dfeabb9e_500.jpg]
Did you just tell me to go fuck myself yum? I believe I did Tim.
yumdownloader resolves dependencies based on what is installed on the local machine. It could care less about what the dependencies specified in the RPMs say.
To illustrate the point, use yumdownloader to download a package with dependencies; for instance, perl-Nagios-Plugin. You get something like 5 or so extra packages downloaded because of dependencies. Now, install one of those dependencies and run yumdownloader again. Yumdownloader blithely disregards downloading that dependency.
Boy, I was certainly expecting that!